Apache HTTP Server Version 2.2
Description: | Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocol support for IBM HTTP Server |
---|---|
Status: | Extension |
Module Identifier: | ibm_ssl_module |
Source File: | mod_ibm_ssl.c |
This module provides SSL and TLS support for IBM HTTP Server. This documentation is a supplement to the IBM Information Center and is primarily oriented towards IBM HTTP Server 8.0 and later. If a directive is not listed, consult the information center.
Example command line invocation to generate a new keystore with a self-signed certificate in it:
$ /opt/IHS80/bin/gskcapicmd -keydb -create -db /opt/IHS80/conf/ihsserverkey.kdb -pw yourpassword -stash
$ /opt/IHS80/bin/gskcapicmd -cert -create -db /opt/IHS80/conf/ihsserverkey.kdb ihsserverkey.kdb -pw yourpassword -label selfsigned -dn "CN=$(hostname)" -default_cert yes -expire 1000
Example IHS configuration to enable SSL with default ciphers:
Listen 0.0.0.0:443 LoadModule ibm_ssl_module modules/mod_ibm_ssl.so <VirtualHost *:443> SSLEnable KeyFile /opt/IHS80/conf/ihsserverkey.kdb </VirtualHost>
Several kinds of tracing are available with this module.
LogLevel
to debug and add
SSLTrace
to the bottom of the global configuration.GSK_TRACE_FILE=/tmp/gsktrace_log GSK_TRACE_FILE_SIZE=104857600 GSK_TRACE_FILE_NUMBER=5 export GSK_TRACE_FILE export GSK_TRACE_FILE_SIZE export GSK_TRACE_FILE_NUMBER
Perform a complete stop and start of the webserver to pickup the environment variable changes.
SSLTrace
directive and log the SSL_HANDSHAKE_TIME environment variable, e.g.:
LogFormat "%h %l %u %t \"%r\" %>s %b %{SSL_HANDSHAKE_TIME}e" common
ECDHE ciphers provide perfect forward secrecy. In 8.0.0.6 and 8.5.0.2 and later, IHS supports Elliptic Curve ciphers and keys, but they are disabled by default prior to PI81589. With PI81589, ECDSA ciphers are enabled by default and are preferred over RSA cipher suites. PI81589 is available in versions 8.0.0.14 and 8.5.5.12 and later.
bin/gskcapicmd
(or gskkyman on z/OS)
and use ECDHE-ECDSA ciphers using SSLCipherSpec.
IHS can be configured to prefer an ECDSA certificate if a client supports it and to fallback to
an RSA certificate otherwise. See SSLServerCert
for more information.
TLS_ECDHE_RSA_WITH_NULL_SHA(C010) TLS_ECDHE_RSA_WITH_RC4_128_SHA(C011) TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA(C012) TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(C013) TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(C014) TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(C027) TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(C028) TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(C02F) TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(C030)
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA(C007) TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA(C008) TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(C009) TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(C00A) TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(C023) TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(C024) TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(C02B) TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(C02C)
SSLProtocolEnable
.
SSLAttributeSet 477 1
activates an SP800-131a
mode in the security library, but ECC ciphers need to be manually added with SSLCipherSpec to
be included. The net effect of this setting may change over time as recommendations evolve.
TLSv1.0 and TLSv1.1 are currently permitted under this setting, but may be removed in the future
SSLProtocolDisable
SSLProtocolEnable
for z/OS specific informationYes, see SSLAttributeSet
with attribute ID 245,
a type of BUFF, and a string value such as:
"GSK_TLS_SIGALG_RSA_WITH_SHA224,GSK_TLS_SIGALG_RSA_WITH_SHA256,GSK_T
LS_SIGALG_RSA_WITH_SHA384,GSK_TLS_SIGALG_RSA_WITH_SHA512,GSK_TLS_SIG
ALG_ECDSA_WITH_SHA224,GSK_TLS_SIGALG_ECDSA_WITH_SHA256,GSK_TLS_SIGAL
G_ECDSA_WITH_SHA384,GSK_TLS_SIGALG_ECDSA_WITH_SHA512"
SSLFIPSEnable
SSLSuiteBMode
Description: | Identifies the keyfile containing certificates and private keys. |
---|---|
Syntax: | KeyFile /path/to/key.kdb [/prompt] | /saf [owner/]saf-keyring-name
|
Default: | unset |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
This directive configures the SSL key file to be used for the enclosing
virtual host. A corresponding stashfile (*.sth
) is automatically used with
the same base name as the specified KeyFile
.
On z/OS, the name of a SAF keyring can be specified following a first argument of /saf
. For more details on the syntax and usafe of SAF keyrings,
see the definition of GSK_KEYRING_FILE in the z/OS Cryptographic Services System SSL Programming
topic in your release of z/OS.
If the second argument is /prompt
, IBM HTTP Server will interactively prompt for the corresponding
password instead of using the stash file referenced above.
Description: | Directly configures underlying GSKit security library settings. |
---|---|
Syntax: | SSLAttributeSet [proxy:]gskit-id val [ENUM|NUMERIC|BUFF|BUFFNULL] |
Default: | none |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | IHS 7.0 only supports setting "enum" types, and doesn't support the "proxy:" prefix. 'BUFFNULL' added in PI76874 |
Sets underlying Tivoli Global Security it (GSKit) configuration. Advanced usage only at the recommendation of IHS support.
These settings are applied after directives such as SSLCipherSpec
and
generally override what was previously set.
Description: | Checks for expired or expiring certificates at startup. |
---|---|
Syntax: | SSLCheckCertificateExpiration days|-1 ["no_expired"] |
Default: | Disabled |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | IHS 8.5.5.10 (PI59374) and later. Not available on z/OS. |
If this directive is specified with a days parameter greater than zero, IHS will check
the validity range of each certificate (personal, issuer, and immediate) in
each configured KeyFile
during SSL initialization.
For each certificate expiring within the specified number of days,
the server will write a ALERT level message to the servers
ErrorLog
with the message ID "SSL0191E".
If this directive is enabled, certificates which have already expired are printed at NOTICE level with message ID "SSL0192E", unless the second parameter is the string "no_expired". To report only expired certificates, specify -1 for the first parameter.
Example:
Listen 443
# Warn about expired certificates, or certificates expiring in the next 30 days
SSLCheckCertificateExpiration 30
<VirtualHost *:443>
SSLEnable
...
</VirtualHost>
Results in: "SSL0191E: Certificate label 'expiresoon' in key store /opt/IHS/conf/key.kdb will expire in 22 days"
Description: | Determines which SSL ciphers should be permitted. |
---|---|
Syntax: | SSLCipherSpec [ALL|SSLv2|SSLv3|TLSv10|TLSv11|TLSv12] [+|-]cipher-shortname|[+|-]cipher-longname ... |
Default: | 8.0 and later: reasonable default ciphers (SSLv2, weak, export, and NULL removed) |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | A separate syntax for z/OS is documented in the next section. |
Note: This manual only discusses the V8R0 and later behavior. For V7 and earlier, refer to the knowledge center from the corresponding release. For z/OS syntax, see the following directive entry.
This directive allows the configuration of the specific SSL ciphers, as well as their order. Each protocol starts with a set of reasonable default ciphers, and this directive can add, remove, or re-order those ciphers.
The first argument specifies the name of a specific SSL protocol whose ciphers will be adjusted, or "ALL" to adjust all protocols for which the following ciphers are applicable. If "ALL" is specified, and a cipher cannot be removed or added due to not being applicable to that protocol, no error is reported. If a specific protocol is specified, and a cipher does not apply to that protocol (for example, a cipher added in TLSv12 applied to TLSv10), startup will fail.
The second argument specifies the cipher to add or remove. Ciphers prefixed with a minus symbol are removed from the current set of ciphers, and ciphers with a plus symbol (or no symbol at all) are added.
Each protocol starts with a default list of ciphers. The cipher list for each protocol is ordered, the server picks the first entry in the cipher list that the client also supports. This list can be changed in several ways:
NONE
."-CBC" is also supported with similar semantics as "-RSA"
After PH51473, the RSA and CBC pseudo-ciphers can be used with a "+" prefix.
The third case is a complicated compromise to tolerate legacy configurations while protecting against "SSLCipherSpec very-old-cipher" disabling more advanced ciphers inadvertently, in future protocols where very-old-cipher is not applicable
The second argument can be repeated, but "NONE" is only accepted in the initial position.
The first time a protocol is changed by this directive, if the cipher argument is not prefixed by a plus or minus symbol, the defaults are discarded and the current cipher becomes the only cipher.
A legacy syntax is supported which includes a single argument (cipher name), however its use is not recommended and may not be combined with the full syntax above. The legacy syntax is likely to counter-intuitively disable ciphers new to TLSv1.2 when common ciphers are configured.
When the legacy syntax is used, the following logic is applied: For each protocol, If the specified cipher is applicable to the protocol, and the protocol is still using the default cipher list, the cipher list is replaced by the specified protocol. If the defaults are not in use (as in for subsequent uses of this directive) then the cipher is added to the current overridden list.
To illustrate the undesirable affects of the legact syntax:
Examples:
# Remove 3DES anywhere it shows up
SSLCipherSpec ALL -SSL_RSA_WITH_3DES_EDE_CBC_SHA
# Replace (no +/-) TLSv12 cipher list
SSLCipherSpec TLSv12 TLS_RSA_WITH_AES_128_GCM_SHA256
SSLCipherSpec TLSv12 TLS_RSA_WITH_AES_256_GCM_SHA384
Normally, this directive is only specified inside a virtual host. In the event it is specified both inside and outside of a virtual host, the virtual hosts configured SSL ciphers will be the union of the two lists.
Description: | Determines which SSL ciphers should be permitted. |
---|---|
Syntax: | SSLCipherSpec cipher-shortname|cipher-longname |
Default: | 8.0 and later: reasonable default ciphers (SSLv2, weak, export, and NULL removed) |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Note: This section describes the behavior on z/OS only. See the preceding entry for other platforms.
This directive allows the configuration of the specific SSL ciphers, as well as their order. When this directive is first specified, the default ciphers are replaced by the specified ciphers. After PI73819, it is possible to express a delta from the defaults.
This directive should be repeated to configure multiple ciphers, with the first listed being preferred for negotiation
Examples:
# Choose new ciphers, similar to late 2016 defaults, but omitting 3DES
SSLCipherSpec TLS_RSA_WITH_AES_128_GCM_SHA256
SSLCipherSpec TLS_RSA_WITH_AES_256_GCM_SHA384
SSLCipherSpec TLS_RSA_WITH_AES_128_CBC_SHA256
SSLCipherSpec TLS_RSA_WITH_AES_256_CBC_SHA256
SSLCipherSpec TLS_RSA_WITH_AES_128_CBC_SHA
SSLCipherSpec TLS_RSA_WITH_AES_256_CBC_SHA
# Omitted:
# SSLCipherSpec SSL_RSA_WITH_3DES_EDE_CBC_SHA
# After PI73819, we can use +/- with "ALL".
# This somewhat contrived example forces TLSv12 and removes the non-SHA2
# ciphers from the defaults. Note: first parm of "ALL" must be used to use +/-
SSLProtocolDisable TLSv10 TLSv11
SSLCipherSpec ALL -TLS_RSA_WITH_AES_128_CBC_SHA -TLS_RSA_WITH_AES_256_CBC_SHA
Normally, this directive is only specified inside a virtual host. In the event it is specified both inside and outside of a virtual host, the virtual hosts configured SSL ciphers will be the union of the two lists.
Description: | Configures IBM HTTP Server to request a client certificate from the browser |
---|---|
Syntax: | SSLClientAuth none|optional|required|required_reset |
Default: | SSLClientAuth none |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
This directive configures if and how IBM HTTP Server will request an SSL certificate from clients. This feature is sometimes referred to as "mutual authentication" because it adds authentication of the client to the typical SSL server authentication.
Description: | Controls server-side support for TLS Compression |
---|---|
Syntax: | SSLCompression ON|OFF |
Default: | SSLCompression OFF |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | Not available on zOS |
This directive can be used to re-enable TLS compression, which was disabled by default in 8.0.0.5 and 8.5.0.1. TLS compression in web browsers is vulnerable to man in the middle attacks when malicious content is introduced.
Description: | DisablesSSL for the enclosing virtual host |
---|---|
Syntax: | SSLDisable |
Default: | unset |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
This directive configures the enclosing virtual host to NOT use
the SSL protocol. This is only necessary in non-SSL virtual hosts in the
unusual case when the base server configuration has been configured for SSL with
SSLEnable
, which is automatically inherited by all
virtual hosts.
Description: | Enables SSL for the enclosing virtual host |
---|---|
Syntax: | SSLEnable |
Default: | unset |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
This directive configures the enclosing virtual host to use the SSL protocol.
SSL0263W can be issued if mod_ibm_ssl goes from being not loaded (via LoadModule
)
to being loaded across an graceful restart. While in general modules may be
removed or added during a graceful restart, mod_ibm_ssl cannot support this sequence.
Description: | Gracefully terminates a process reporting too many fatal handshake errors |
---|---|
Syntax: | SSLFatalErrorLimit failures |
Default: | SSLFatalErrorLimit 0 |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | Requires PH32229 |
In some rare cases, an individual process will stop processing handshakes and return errors such as SSL0209E/SSL0212E/SSL0203E. If this directive is set to non-zero, the process will gracefully exit after seeing the specified number of SSL0209E/SSL0212E/SSL0203E failures.
This directive is NOT inherited from the base server config to virtual hosts.
Description: | Configures an SSL enabled virtual host to NOT use FIPS 140-2 certified ciphers |
---|---|
Syntax: | SSLFIPSDisable |
Default: | SSLFIPSDisable |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | Directive and functionality not available on z/OS until IBM HTTP Server 8.5 |
This directive causes the server to use the default SSL implementation
in the bundled GSKit library. This directive is normally not required unless
SSLFIPSEnable
appears in global server configuration.
Description: | Configures an SSL enabled virtual host to use FIPS 140-2 certified ciphers |
---|---|
Syntax: | SSLFIPSEnable |
Default: | unset |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | Directive and functionality not available on z/OS until IBM HTTP Server 8.5 |
This directive causes the server to automatically use the FIPS 140-2 validated cryptographic modules and ciphers available in the bundled GSKit library.
IBM HTTP Server 8.5 and later on z/OS supports this directive being enabled only
in a global (base configuration, outside of any vhost) context only. On z/OS,
a FIPS compatible KeyFile
must be created with gskkyman for both
IBM HTTP Server and the WAS Plugin. FIPS compatible keystores on z/OS only allow certs with
strong cryptography to be stored inside of them.
Description: | Configures timeout on handshake operations |
---|---|
Syntax: | SSLHandshakeTimeout IO-timeout [end-to-end timeout[ms]] |
Default: | By default, the core Timeout is used for the IO timeout and no end-to-end timeout is used. |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | IHS 8.0.0.6, 8.5.0.2, and later (PM78434) |
This directive can be used to reduce the timeout for SSL handshake I/O operations and to impose an end-to-end timeout on SSL handshakes.
<VirtualHost *:443>
SSLEnable
Timeout 60
SSLHandshakeTimeout 5
</VirtualHost>
<VirtualHost *:443>
SSLEnable
Timeout 60
SSLHandshakeTimeout 2 4000ms
</VirtualHost>
Description: | Enables OCSP caching and specifies the maximum number of elements in the cache. |
---|---|
Syntax: | SSLOCSPCacheSize elements |
Default: | see synopsis |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | PH54894 |
This directive specifies the size of the internal OCSP response cache.
Legend for the fields in /server-status. Note: The output data and format is intended to be human readable and is subject to change i.e. the output format MUST NOT be considered a specification.
Description: | Enables connect() timeout on outobuund OCSP connections |
---|---|
Syntax: | SSLOCSPConnectionTimeout seconds |
Default: | SSLOCSPConnectionTimeout 5 |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | Requires PH01222 |
This directive can specify a timeout for connecting to an OCSP server while validating a client certificate. Prior to PH01222, there was no explicit default, and especially on Windows the connection attempt could have for an extended time if it was not completed or actively refused.
This directive is inherited from the base server config to virtual hosts.
Description: | The SSLOCSPEnable directive enables checking of client certificates through OCSP responders defined in the Authority Information Access (AIA) extension of their certificate. |
---|---|
Syntax: | SSLOCSPEnable |
Default: | not set |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
If SSLOCSPEnable
is set, and an SSL client certificate chain contains an AIA extension, IBM HTTP Server contacts the OCSP responder indicated by the AIA extension to check revocation status of the client certificate. The path portion of the URL is ignored.
If both OCSP and CRL checking is configured, OCSP checking is performed before any CRL checking. CRL checking occurs only if the result of the OCSP checking is unknown or inconclusive.
If both SSLOCSPEnable
and SSLOCSPResponderURL
are configured, the responder defined by SSLOCSPResponderURL
is checked first. If the revocation status is unknown or inconclusive, IBM HTTP Server checks OCSP responders for SSLOCSPEnable
.
Description: | The SSLOCSPResponderURL directive enables checking of client certificates through a statically configured online certificate status protocol (OCSP) responder. |
---|---|
Syntax: | SSLOCSPResponderURL fully-qualified-url |
Default: | not set |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
If SSLOCSPEnable
is set, and an SSL client certificate chain contains an AIA extension, IBM HTTP Server contacts the OCSP responder indicated by the AIA extension to check revocation status of the client certificate. The path portion of the URL is ignored.
If both OCSP and CRL checking is configured, OCSP checking is performed before any CRL checking. CRL checking occurs only if the result of the OCSP checking is unknown or inconclusive.
If both SSLOCSPEnable
and SSLOCSPResponderURL
are configured, the responder defined by SSLOCSPResponderURL
is checked first. If the revocation status is unknown or inconclusive, IBM HTTP Server checks OCSP responders for SSLOCSPEnable
.
Description: | The SSLProtocolDisable directive allows you to disable individual SSL protocols. |
---|---|
Syntax: | SSLProtocolDisable SSLv2|SSLv3|TLSv10|TLSv11|TLSv12 ... |
Default: | see note |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | TLSv11 and TLSv12 only supported in version 8 and later. |
This directive can be used to disable individual SSL protocols. Multiple protocols can be specified, space-separated.
Default protocols using the latest available maintenance: TLSv12
Description: | The SSLProtocolEnable directive allows you to enable individual SSL protocols. |
---|---|
Syntax: | SSLProtocolEnable SSLv2|SSLv3|TLSv10|TLSv11|TLSv12 ... |
Default: | see notes in SSLProtocolDisable |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | 7.0.0.37, 8.0.0.6, 8.5.0.2 and later. TLsv11 and TLSv12 only supported in version 8 and later. |
This directive can be used to enable individual SSL protocols.
Description: | Adds SSL support to outgoing reverse proxy connections |
---|---|
Syntax: | SSLProxyEngine on|off |
Default: | SSLProxyEngine offnone |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
This directive is not supported when IBM HTTP Server is used with WebSphere Application Server. Only the WebSphere WebServer Plug-in is supported
This directive configures IHS to handle https URL's for reverse proxy directives such as
ProxyPass
and RewriteRule
.
A KeyFile
must be set and contain the trust chain for any origin servers.
Description: | Controls IBM HTTP Server support of TLS renegotiation |
---|---|
Syntax: | SSLRenegotiation on|off|LEGACY_AND_RFC5746 |
Default: | SSLRenegotiation off |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | see below |
This directive controls the types of TLS renegotiation permitted by IBM HTTP Server. TLS renegotiation is how clents can initiate a new SSL handshake on an existing secure connection, which is rarely used by normal browser-based clients.
SSLInsecureRenegotiation
directive in IBM HTTP Server 8.0 and later.LEGACY_AND_RFC5746
option depends on IBM HTTP Server 7.0.0.19 and later.Description: | Identifies the certificate label of a personal certificate that the server should use to authenticate to clients. |
---|---|
Syntax: | SSLServerCert [cryptograhic token name:]label-name [[cryptograhic token name:]label-name] |
Default: | unset |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Each KeyFile
may contain multiple personal
certificates (certificates with private keys) as well as a single personal
certificate marked as the default certificate. If you want IBM HTTP Server
to use any certificates other than the default, specify
SSLServerCert
.
Two certificate labels may be specified as a space-delimited list where one certificate must contain an RSA
key and the other must contain an ECDSA key. The server will choose a certificate based on the client's
capabilities. If a client supports both key types, the certificate listed first in
SSLServerCert
is used regardless of how the ciphers are ordered
using SSLCipherSpec
.
SSLServerCert ecc_label rsa_label
Any labels containing spaces must be quoted. Spaces will need to be escaped if more than one label is specified.
SSLServerCert "RSA Label Example"
SSLServerCert "ecc\ label" "rsa\ label"
If cryprographic hardware is in use, this directive is mandatory to
communicate the cryptographic token name (the token name can be obtained using
the crypto hardware vendor's tools such as pkcsconf
:
SSLServerCert mytoken:mycertlabel
Description: | Flag to disable sending a TLS close_notify during Apache socket shutdown |
---|---|
Syntax: | SSLSkipCloseNotif ON|OFF |
Default: | OFF (close_notify is sent) |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | PH30841 |
9.0.5.2 added TLS13 support. Separate from TLS13, IHS began sending the TLS close_notify alert when the underlying Apache connection to the client was closed. This flag disables the new behavior
Description: | Enable/Disable strict CBC Padding |
---|---|
Syntax: | SSLStrictCBCPaddingCheck off|on |
Default: | on |
Context: | server config |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | Distributed Platforms only, PI31516 and higher |
This directive configures strict CBC padding checks in GSKit, primarily to mitigate the POODLE TLS attack (CVE-2014-8730). Turning this directive on is equivalent to using:
SSLAttributeSet 471 1
Note that strict CBC padding is always enabled by default in z/OS.
Description: | Enables the "Suite B" profile for the enclosing virtual host |
---|---|
Syntax: | SSLSuiteBMode 128|192 |
Default: | unset |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | Distributed Platforms only, 8.0.0.6/8.5.0.2 and later only. |
This directive configures the enclosing virtual host to use the "Suite B" profile for TLS. This profile drastically reduces the available signature algorithm and cipher specs that will be used by the server. The set of acceptable algorithms and ciphers is subject to change over time as relevant standards change.
The 128 and 192 arguments refer to the two levels of security discussed in RFC 6460.
SSLAttributeSet
is processed later (with a higher priority).Description: | Enables extended tracing for SSL communication |
---|---|
Syntax: | SSLTrace |
Default: | unset |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
This directive enables extra tracing in the ErrorLog
for various SSL related operations.
SSLTrace
is only useful with LogLevel
set to debug
.
Description: | Specifies how IBM HTTP Server reacts when IBM HTTP Server cannot readily determine the revocation status, which is coming through CRL or OCSP. |
---|---|
Syntax: | SSLUnknownRevocationStatus ignore|log|log_always|deny |
Default: | SSLUnknownRevocationStatus ignore |
Context: | virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Whenever a message is logged for UnknownRevocationStatus, the SSL_UNKNOWNREVOCATION_SUBJECT
variable, an internal SSL environment variable, is set. You can log this variable with the following LogFormat
syntax:
%{SSL_UNKNOWNREVOCATION_SUBJECT}e
You could also use the variable in mod_rewrite expressions when this directive directive has any value other than deny. Use the following variable name in your RewriteCond
directive:
%{ENV:SSL_UNKNOWNREVOCATION_SUBJECT}
Description: | Performs access control based on negotiated TLS version |
---|---|
Syntax: | SSLVersion SSLv2|SSLv3|TLSv1|TLSv1.1|TLSv1.2 |
Default: | Disabled |
Context: | directory |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: | deprecated |
This directive returns an HTTP Forbidden response if the specified TLS version has not been negotiated. It does not cause the connection to be renegotiated, and cannot itself directly cause a customized HTTP response be sent to the client. This directive serves little practical purpose.
Description: | General purpose directive to configure options for the TLSv1.3 protocol. |
---|---|
Syntax: | TLS13Options option[=value] [option[=value] ...] |
Default: | NumTickets = 6, ServerKeyRefresh=608400 |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ibm_ssl |
Compatibility: |
This directive allows the following options to be set for the TLSv1.3 protocol: