OPENSSL-ENV(7ossl)
π NAME
openssl-env β OpenSSL environment variables (this is page OPENSSL-ENV(7ossl) bestie, section 7, the ossl one, we're in the env-var zone π
)
β¨ DESCRIPTION β¨
okay so here's the tea π΅ β the OpenSSL libraries use environment variables to override the compiled-in default paths for all kinds of data. Very "I know a shortcut" of them.
but security moment π¨: to avoid security risks, the environment is usually not consulted when the executable is set-user-ID or set-group-ID. so if you're in setuid/setgid land, don't expect your cute little env vars to be read. them's the rules.
now the actual variables, one by one, no skips, no cap π«Ά
π THE VARIABLES
CTLOG_FILEβ specifies the path to a certificate transparency log list. seeCTLOG_STORE_new(3). π₯OPENSSLβ specifies the path to theopensslexecutable. it's used by the rehash script (peep "Script Configuration" inopenssl-rehash(1)) and by theCA.plscript (peep "NOTES" inCA.pl(1)).OPENSSL_CONF,OPENSSL_CONF_INCLUDEβ specifies the path to a configuration file, and the directory for included files. seeconfig(5). πOPENSSL_CONFIGβ specifies a configuration option and filename for thereqandcacommands invoked by theCA.plscript. seeCA.pl(1).OPENSSL_ENGINESβ specifies the directory from which dynamic engines are loaded. seeopenssl-engine(1). βοΈOPENSSL_MALLOC_FD,OPENSSL_MALLOC_FAILURESβ if built with debugging, this allows memory allocation to fail. seeOPENSSL_malloc(3). (chaos mode, only if you built for it π)OPENSSL_MODULESβ specifies the directory from which cryptographic providers are loaded. equivalently, the generic-provider-pathcommand-line option may be used.OPENSSL_TRACEβ okay so by default the OpenSSL trace feature is disabled statically. to enable it, OpenSSL must be built with tracing support, which you can configure like this:
./config enable-trace
unless OpenSSL tracing support is generally disabled, you enable trace output of specific parts of the OpenSSL libraries, by name. this output usually makes sense only if you know OpenSSL internals well β like, genuinely, it's for the people who live inside the source tree π§.
the value of this environment variable is a comma-separated list of names, and the available names are the ones listed below π
OPENSSL_RUNNING_UNIT_TESTSβ this one is used to flag the fact that unit tests are being run (i.e.make test). it's used to detect when OpenSSL should behave in a special manner during unit tests (i.e. when unit tests are being run on fuzzing builds). it should generally not be set by users π β like, this is not for you, bestie, this is internal business.
π the OPENSSL_TRACE name list β¨
(this list is OPENSSL_TRACE's whole thing β the manpage just parks it down here after OPENSSL_RUNNING_UNIT_TESTS, which is a lil quirky but iconic of it, so we're keeping it exactly where it is π«Ά)
TRACEβ traces the OpenSSL trace API itself. so meta, obsessed. πͺINITβ traces OpenSSL library initialization and cleanup.TLSβ traces the TLS/SSL protocol. πTLS_CIPHERβ traces the ciphers used by the TLS/SSL protocol.CONFβ show details about provider and engine configuration.ENGINE_TABLEβ the function that is used by RSA, DSA (etc) code to select registered ENGINEs, cache defaults and functional references (etc), will generate debugging summaries.ENGINE_REF_COUNTβ reference counts in the ENGINE structure will be monitored with a line of generated for each change.PKCS5V2β traces PKCS#5 v2 key generation.PKCS12_KEYGENβ traces PKCS#12 key generation.PKCS12_DECRYPTβ traces PKCS#12 decryption.X509V3_POLICYβ generates the complete policy tree at various points during X.509 v3 policy evaluation. π³BN_CTXβ traces BIGNUM context operations.CMPβ traces CMP client and server activity.STOREβ traces STORE operations.DECODERβ traces decoder operations.ENCODERβ traces encoder operations.REF_COUNTβ traces decrementing certain ASN.1 structure references.HTTPβ traces the HTTP client and server, such as messages being sent and received. π
π¦ and back to the rest of the variables
OPENSSL_WIN32_UTF8β if set, thenUI_OpenSSL(3)returns UTF-8 encoded strings rather than ones encoded in the current code page, and theopenssl(1)program also transcodes the command-line parameters from the current code page to UTF-8. this environment variable is only checked on Microsoft Windows platforms πͺ.RANDFILEβ the state file for the random number generator. this should not be needed in normal use. seeRAND_load_file(3).SSL_CERT_DIR,SSL_CERT_FILEβ specify the default directory or file containing CA certificates. seeSSL_CTX_load_verify_locations(3). πTSGETβ additional arguments for thetsget(1)command.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. seeOPENSSL_ia32cap(3),OPENSSL_ppccap(3),OPENSSL_riscvcap(3), andOPENSSL_s390xcap(3). π»β¨NO_PROXY,HTTPS_PROXY,HTTP_PROXYβ specify a proxy hostname. seeOSSL_HTTP_parse_url(3).QLOGDIRβ specifies a QUIC qlog output directory. seeopenssl-qlog(7). πΈOSSL_QFILTERβ used to set a QUIC qlog filter specification. seeopenssl-qlog(7).SSLKEYLOGFILEβ used to produce the standard format output file for SSL key logging. optionally set this variable to a filename to log all secrets produced by SSL connections. note, use of the environment variable is predicated on configuring OpenSSL at build time with theenable-sslkeylogfeature. the file format standard can be found athttps://datatracker.ietf.org/doc/draft-ietf-tls-keylogfile/.
π¨ note: the use of SSLKEYLOGFILE poses an explicit security risk. by recording the exchanged keys during an SSL 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. like genuinely, test and debug only, do not ship this, i am begging ππ
π COPYRIGHT
Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.
and that's the whole page, bestie π«Ά this one shipped as version 3.5.6, dated 2026-04-07, and it's the OPENSSL-ENV(7ossl) page β read it, love it, go set your env vars responsibly πβ¨π
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms