.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "OPENSSL-ENV 7ossl"
.TH OPENSSL-ENV 7ossl "2025-09-30" "3.5.4" "OpenSSL"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
openssl\-env \- OpenSSL environment variables
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The OpenSSL libraries use environment variables to override the
compiled-in default paths for various data.
To avoid security risks, the environment is usually not consulted when
the executable is set-user-ID or set-group-ID.
.IP "\fB\s-1CTLOG_FILE\s0\fR" 4
.IX Item "CTLOG_FILE"
Specifies the path to a certificate transparency log list.
See \fBCTLOG_STORE_new\fR\|(3).
.IP "\fB\s-1OPENSSL\s0\fR" 4
.IX Item "OPENSSL"
Specifies the path to the \fBopenssl\fR executable. Used by
the \fBrehash\fR script (see \*(L"Script Configuration\*(R" in \fBopenssl\-rehash\fR\|(1))
and by the \fB\s-1CA\s0.pl\fR script (see \*(L"\s-1NOTES\*(R"\s0 in \s-1\fBCA\s0.pl\fR\|(1)
.IP "\fB\s-1OPENSSL_CONF\s0\fR, \fB\s-1OPENSSL_CONF_INCLUDE\s0\fR" 4
.IX Item "OPENSSL_CONF, OPENSSL_CONF_INCLUDE"
Specifies the path to a configuration file and the directory for
included files.
See \fBconfig\fR\|(5).
.IP "\fB\s-1OPENSSL_CONFIG\s0\fR" 4
.IX Item "OPENSSL_CONFIG"
Specifies a configuration option and filename for the \fBreq\fR and \fBca\fR
commands invoked by the \fB\s-1CA\s0.pl\fR script.
See \s-1\fBCA\s0.pl\fR\|(1).
.IP "\fB\s-1OPENSSL_ENGINES\s0\fR" 4
.IX Item "OPENSSL_ENGINES"
Specifies the directory from which dynamic engines are loaded.
See \fBopenssl\-engine\fR\|(1).
.IP "\fB\s-1OPENSSL_MALLOC_FD\s0\fR, \fB\s-1OPENSSL_MALLOC_FAILURES\s0\fR" 4
.IX Item "OPENSSL_MALLOC_FD, OPENSSL_MALLOC_FAILURES"
If built with debugging, this allows memory allocation to fail.
See \fBOPENSSL_malloc\fR\|(3).
.IP "\fB\s-1OPENSSL_MODULES\s0\fR" 4
.IX Item "OPENSSL_MODULES"
Specifies the directory from which cryptographic providers are loaded.
Equivalently, the generic \fB\-provider\-path\fR command-line option may be used.
.IP "\fB\s-1OPENSSL_TRACE\s0\fR" 4
.IX Item "OPENSSL_TRACE"
By default the OpenSSL trace feature is disabled statically.
To enable it, OpenSSL must be built with tracing support,
which may be configured like this: \f(CW\*(C`./config enable\-trace\*(C'\fR
.Sp
Unless OpenSSL tracing support is generally disabled,
enable trace output of specific parts of OpenSSL libraries, by name.
This output usually makes sense only if you know OpenSSL internals well.
.Sp
The value of this environment varialble is a comma-separated list of names,
with the following available:
.RS 4
.IP "\fB\s-1TRACE\s0\fR" 4
.IX Item "TRACE"
Traces the OpenSSL trace \s-1API\s0 itself.
.IP "\fB\s-1INIT\s0\fR" 4
.IX Item "INIT"
Traces OpenSSL library initialization and cleanup.
.IP "\fB\s-1TLS\s0\fR" 4
.IX Item "TLS"
Traces the \s-1TLS/SSL\s0 protocol.
.IP "\fB\s-1TLS_CIPHER\s0\fR" 4
.IX Item "TLS_CIPHER"
Traces the ciphers used by the \s-1TLS/SSL\s0 protocol.
.IP "\fB\s-1CONF\s0\fR" 4
.IX Item "CONF"
Show details about provider and engine configuration.
.IP "\fB\s-1ENGINE_TABLE\s0\fR" 4
.IX Item "ENGINE_TABLE"
The function that is used by \s-1RSA, DSA\s0 (etc) code to select registered
ENGINEs, cache defaults and functional references (etc), will generate
debugging summaries.
.IP "\fB\s-1ENGINE_REF_COUNT\s0\fR" 4
.IX Item "ENGINE_REF_COUNT"
Reference counts in the \s-1ENGINE\s0 structure will be monitored with a line
of generated for each change.
.IP "\fB\s-1PKCS5V2\s0\fR" 4
.IX Item "PKCS5V2"
Traces PKCS#5 v2 key generation.
.IP "\fB\s-1PKCS12_KEYGEN\s0\fR" 4
.IX Item "PKCS12_KEYGEN"
Traces PKCS#12 key generation.
.IP "\fB\s-1PKCS12_DECRYPT\s0\fR" 4
.IX Item "PKCS12_DECRYPT"
Traces PKCS#12 decryption.
.IP "\fBX509V3_POLICY\fR" 4
.IX Item "X509V3_POLICY"
Generates the complete policy tree at various points during X.509 v3
policy evaluation.
.IP "\fB\s-1BN_CTX\s0\fR" 4
.IX Item "BN_CTX"
Traces \s-1BIGNUM\s0 context operations.
.IP "\fB\s-1CMP\s0\fR" 4
.IX Item "CMP"
Traces \s-1CMP\s0 client and server activity.
.IP "\fB\s-1STORE\s0\fR" 4
.IX Item "STORE"
Traces \s-1STORE\s0 operations.
.IP "\fB\s-1DECODER\s0\fR" 4
.IX Item "DECODER"
Traces decoder operations.
.IP "\fB\s-1ENCODER\s0\fR" 4
.IX Item "ENCODER"
Traces encoder operations.
.IP "\fB\s-1REF_COUNT\s0\fR" 4
.IX Item "REF_COUNT"
Traces decrementing certain \s-1ASN.1\s0 structure references.
.IP "\fB\s-1HTTP\s0\fR" 4
.IX Item "HTTP"
Traces the \s-1HTTP\s0 client and server, such as messages being sent and received.
.RE
.RS 4
.RE
.IP "\fB\s-1OPENSSL_WIN32_UTF8\s0\fR" 4
.IX Item "OPENSSL_WIN32_UTF8"
If set, then \fBUI_OpenSSL\fR\|(3) returns \s-1UTF\-8\s0 encoded strings, rather than
ones encoded in the current code page, and
the \fBopenssl\fR\|(1) program also transcodes the command-line parameters
from the current code page to \s-1UTF\-8.\s0
This environment variable is only checked on Microsoft Windows platforms.
.IP "\fB\s-1RANDFILE\s0\fR" 4
.IX Item "RANDFILE"
The state file for the random number generator.
This should not be needed in normal use.
See \fBRAND_load_file\fR\|(3).
.IP "\fB\s-1SSL_CERT_DIR\s0\fR, \fB\s-1SSL_CERT_FILE\s0\fR" 4
.IX Item "SSL_CERT_DIR, SSL_CERT_FILE"
Specify the default directory or file containing \s-1CA\s0 certificates.
See \fBSSL_CTX_load_verify_locations\fR\|(3).
.IP "\fB\s-1TSGET\s0\fR" 4
.IX Item "TSGET"
Additional arguments for the \fBtsget\fR\|(1) command.
.IP "\fBOPENSSL_ia32cap\fR, \fBOPENSSL_sparcv9cap\fR, \fBOPENSSL_ppccap\fR, \fBOPENSSL_armcap\fR, \fBOPENSSL_s390xcap\fR, \fBOPENSSL_riscvcap\fR" 4
.IX Item "OPENSSL_ia32cap, OPENSSL_sparcv9cap, OPENSSL_ppccap, OPENSSL_armcap, OPENSSL_s390xcap, OPENSSL_riscvcap"
OpenSSL supports a number of different algorithm implementations for
various machines and, by default, it determines which to use based on the
processor capabilities and run time feature enquiry.  These environment
variables can be used to exert more control over this selection process.
See \fBOPENSSL_ia32cap\fR\|(3), \fBOPENSSL_s390xcap\fR\|(3) and \fBOPENSSL_riscvcap\fR\|(3).
.IP "\fB\s-1NO_PROXY\s0\fR, \fB\s-1HTTPS_PROXY\s0\fR, \fB\s-1HTTP_PROXY\s0\fR" 4
.IX Item "NO_PROXY, HTTPS_PROXY, HTTP_PROXY"
Specify a proxy hostname.
See \fBOSSL_HTTP_parse_url\fR\|(3).
.IP "\fB\s-1QLOGDIR\s0\fR" 4
.IX Item "QLOGDIR"
Specifies a \s-1QUIC\s0 qlog output directory. See \fBopenssl\-qlog\fR\|(7).
.IP "\fB\s-1OSSL_QFILTER\s0\fR" 4
.IX Item "OSSL_QFILTER"
Used to set a \s-1QUIC\s0 qlog filter specification. See \fBopenssl\-qlog\fR\|(7).
.IP "\fB\s-1SSLKEYLOGFILE\s0\fR" 4
.IX Item "SSLKEYLOGFILE"
Used to produce the standard format output file for \s-1SSL\s0 key logging.  Optionally
set this variable to a filename to log all secrets produced by \s-1SSL\s0 connections.
Note, use of the environment variable is predicated on configuring OpenSSL at
build time with the enable-sslkeylog feature.  The file format standard can be
found at <https://datatracker.ietf.org/doc/draft\-ietf\-tls\-keylogfile/>.
Note: the use of \fB\s-1SSLKEYLOGFILE\s0\fR poses an explicit security risk.  By recording
the exchanged keys during an \s-1SSL\s0 session, it allows any available party with
read access to the file to decrypt application traffic sent over that session.
Use of this feature should be restricted to test and debug environments only.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2019\-2024 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the \*(L"License\*(R").  You may not use
this file except in compliance with the License.  You can obtain a copy
in the file \s-1LICENSE\s0 in the source distribution or at
<https://www.openssl.org/source/license.html>.
