H Oracle HTTP Server Module Directives

Modules extend the basic functionality of Oracle HTTP Server and support integration between Oracle HTTP Server and other Oracle Fusion Middleware components. Oracle HTTP Server uses both Oracle developed modules or “plug-ins” and Apache and third party-developed modules. Oracle developed modules have a set of directives that Oracle HTTP Server supports.

This appendix describes the directives available in the Oracle-developed modules:

mod_wl_ohs Module

The mod_wl_ohs module is a key feature of Oracle HTTP Server that enables requests to be proxied from Oracle HTTP Server to Oracle WebLogic Server. This module is generally referred to as the Oracle WebLogic Server proxy plug-in.

The mod_wl_ohs module enhances an Oracle HTTP server installation by allowing Oracle WebLogic Server to handle requests that require dynamic functionality. In other words, you typically use a plug-in where the HTTP server serves static pages such as HTML pages, while Oracle WebLogic Server serves dynamic pages such as HTTP Servlets and Jakarta Server Pages (JSPs). For information on this module's directives, see Parameters for Web Server Plug-Ins in Using Oracle WebLogic Server Proxy Plug-Ins.

mod_certheaders Module

The mod_certheaders module enables reverse proxies using two directives namely, AddCertHeader and SimulateHttps.

This section describes the mod_certheaders directives:

AddCertHeader Directive

Specify which headers should be translated to CGI environment variables. This can be achieved by using the AddCertHeader directive. This directive takes a single argument, which is the CGI environment variable that should be populated from a HTTP header on incoming requests. For example, to populate the SSL_CLIENT_CERT CGI environment variable.

Category Value

Syntax

AddCertHeader environment_variable

Example

AddCertHeader SSL_CLIENT_CERT

Default

None

SimulateHttps Directive

You can use mod_certheaders to instruct Oracle HTTP Server to treat certain requests as if they were received through HTTPS even though they were received through HTTP. This is useful when Oracle HTTP Server is front-ended by a reverse proxy or load balancer, which acts as a termination point for SSL requests, and forwards the requests to Oracle HTTP Server through HTTPS.

Category Value

Syntax

SimulateHttps on|off

Example

SimulateHttps on

Default

off

mod_ossl Module

The mod_ossl module enables strong cryptography for Oracle HTTP Server. It accepts a set of directives such as SSLCARevocationFile, SSLCipherSuite, SSLEngine, and more.

To configure SSL for your Oracle HTTP Server, enter the mod_ossl module directives you want to use in the ssl.conf file.

For a complete list of all the directives supported by mod_ssl module of Apache Web Server, see Apache documentation. Although it is possible to configure all the SSL directives, only the following mod_ossl directives are tested and supported by Oracle HTTP Server 14.1.2.0.0:

SSLCARevocationCheck Directive

Enables certificate revocation list (CRL) checking. At least one of SSLCARevocationFile or SSLCARevocationPath must be configured. When set to chain (recommended), CRL checks are applied to all certificates in the chain, while setting it to leaf limits the checks to the end-entity certificate.

Category Value
Syntax SSLCARevocationCheck chain | leaf | none
Example SSLCARevocationCheck chain
Default SSLCARevocationCheck none
Context Server Config, Virtual Host

SSLCARevocationFile Directive

Specifies the file where you can assemble the Certificate Revocation Lists (CRLs) from CAs (Certificate Authorities) that you accept certificates from. These are used for client authentication. Such a file is the concatenation of various PEM-encoded CRL files in order of preference. This directive can be used alternatively or additionally to SSLCARevocationPath.

Category Value

Syntax

SSLCARevocationFile file_name

Example

SSLCARevocationFile ${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/crl/ca_bundle.cr

Default

None

SSLCARevocationPath Directive

Specifies the directory where PEM-encoded Certificate Revocation Lists (CRLs) are stored. These CRLs come from the CAs (Certificate Authorities) that you accept certificates from. If a client attempts to authenticate itself with a certificate that is on one of these CRLs, then the certificate is revoked and the client cannot authenticate itself with your server.

This directive must point to a directory that contains the hash value of the CRL. To see the commands that allow you to create the hashes, see orapki in Administering Oracle Fusion Middleware.

Category Value

Syntax

SSLCARevocationPath path/to/CRL_directory/

Example

SSLCARevocationPath ${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/crl 

Default

None

SSLCipherSuite Directive

Specifies the SSL cipher suite that the client can use during the SSL handshake. This directive uses either a comma-separated or colon-separated cipher specification string to identify the cipher suite.

SSLCipherSuite accepts the following prefixes:

  • none: Adds the cipher to the list

  • + : Moves matching ciphers to the current location in list

  • - : Removes the cipher from the list (can be added later)

  • ! : Removes the cipher from the list permanently

Tags are joined with prefixes to form a cipher specification string. Cipher suite tags are listed in Table H-1.

Note:

As of Oracle HTTP Server version 14.1.2.0.0, cipher suites that use Rivest Cipher 4 (RC4) and Triple Data Encryption Standard (3DES) algorithms are not supported due to known security vulnerabilities. These ciphers are removed from the SSLCipherSuite configuration of the default SSL port of Oracle HTTP Server. If Oracle HTTP Server is managed through Enterprise Manager Fusion Middleware Control or WebLogic Scripting Tool, you cannot configure these cipher suites through these tools as these tools do not recognize the insecure RC4 and 3DES ciphers.

If you explicitly add them to the cipher suite configuration, then Oracle HTTP Server will fail to start.

List of deprecated cipher suites:

  • SSL_RSA_WITH_AES_128_CBC_SHA
  • SSL_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384

Note:

The deprecated ciphers are still supported but their use is not encouraged. If you want to use the deprecated ciphers you must manually add them to the configuration files as these ciphers are removed from the default configuration.
  

Table H-* shows the tags you can use in the string to describe the cipher suite you want.

Category Value

Example

SSLCipherSuite ALL:!MD5

In this example, all ciphers are specified except MD5 strength ciphers.

Syntax

SSLCipherSuite cipher-spec

Default

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Table H-1 SSLCipher Suite Tags

Function Tag Meaning

Key exchange

kRSA

RSA key exchange

Key exchange

kECDHE

Elliptic curve Diffie–Hellman Exchange key exchange

Authentication

aRSA

RSA authentication

Data Integrity

SHA

SHA hash function

Data Integrity

SHA256

SHA256 hash function

Data Integrity

SHA384

SHA384 hash function

Aliases

TLSv1.2

All TLS version 1.2 ciphers

Aliases

TLSv1.3

All TLS version 1.3 ciphers

Aliases

MEDIUM

All ciphers with 128-bit encryption

Aliases

HIGH

All ciphers with encryption key size greater than 128 bits

Aliases

AES

All ciphers using AES encryption

Aliases

RSA

All ciphers using RSA for both authentication and key exchange

Aliases

ECDSA

All ciphers using Elliptic Curve Digital Signature Algorithm for authentication

Aliases

ECDHE

All ciphers using Elliptic curve Diffie–Hellman Exchange for key exchange

Aliases

AES-GCM

All ciphers that use Advanced Encryption Standard in Galois/Counter Mode (GCM) for encryption

Table H-2 lists the Cipher Suites supported in Oracle HTTP Server 14.1.2.0.0 .

Note:

All the deprecated ciphers listed under "List of deprecated cipher suites" are still supported for backward compatibility. Oracle does not recommend using them as they are not strong.

Table H-2 Cipher Suites Supported in Oracle HTTP Server 14.1.2.0.0

Cipher Suite Key Exchange Authentication Encryption Data Integrity TLS v1.2 TLS v1.3

SSL_RSA_WITH_AES_128_CBC_SHA

RSA

RSA

AES (128)

SHA

Yes

No

SSL_RSA_WITH_AES_256_CBC_SHA

RSA

RSA

AES (256)

SHA

Yes

No

TLS_AES_128_CCM_SHA256

ECDHE

RSA/ECDSA

AES (128)

SHA256

No

Yes

TLS_AES_128_GCM_SHA256

ECDHE

RSA/ECDSA

AES (128)

SHA256

No

Yes

TLS_AES_256_GCM_SHA384

ECDHE

RSA/ECDSA

AES (256)

SHA384

No

Yes

TLS_CHACHA20_POLY1305_SHA256

ECDHE

RSA/ECDSA

ChaCha20 (256)

SHA256

No

Yes

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

ECDHE

ECDSA

AES (128)

SHA

Yes

No

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

ECDHE

ECDSA

AES (128)

SHA256

Yes

No

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

ECDHE

ECDSA

AES (128)

SHA256

Yes

No

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

ECDHE

ECDSA

AES (256)

SHA

Yes

No

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

ECDHE

ECDSA

AES (256)

SHA384

Yes

No

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

ECDHE

ECDSA

AES (256)

SHA384

Yes

No

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

Ephemeral ECDH with RSA signatures

RSA

AES (128)

SHA

Yes

No

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Ephemeral ECDH with RSA signatures

RSA

AES (128)

SHA256

Yes

No

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

Ephemeral ECDH with RSA signatures

RSA

AES (128)

SHA256

Yes

No

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

Ephemeral ECDH with RSA signatures

RSA

AES (256)

SHA

Yes

No

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

Ephemeral ECDH with RSA signatures

RSA

AES (256)

SHA384

Yes

No

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Ephemeral ECDH with RSA signatures

RSA

AES (256)

SHA384

Yes

No

TLS_RSA_WITH_AES_128_CBC_SHA256

RSA

RSA

AES (128)

SHA256

Yes

No

TLS_RSA_WITH_AES_128_GCM_SHA256

RSA

RSA

AES (128)

SHA256

Yes

No

TLS_RSA_WITH_AES_256_CBC_SHA256

RSA

RSA

AES (256)

SHA256

Yes

No

TLS_RSA_WITH_AES_256_GCM_SHA384

RSA

RSA

AES (256)

SHA384

Yes

No

SSLEngine Directive

Toggles the usage of the SSL Protocol Engine. This is usually used inside a <VirtualHost> section to enable SSL for a particular virtual host. By default, the SSL Protocol Engine is disabled for both the main server and all configured virtual hosts.

Category Value

Syntax

SSLEngine on|off

Example

SSLEngine on

Default

Off

SSLFIPS Directive

This directive toggles the usage of the SSL library FIPS_mode flag. It must be set in the global server context and should not be configured with conflicting settings (SSLFIPS on followed by SSLFIPS off or similar). The mode applies to all SSL library operations.

Category Value

Syntax

SSLFIPS ON | OFF

Example

SSLFIPS ON

Default

Off

Configuring an SSLFIPS change requires that the SSLFIPS on/off directive be set globally in ssl.conf. Virtual level configuration is disabled in SSLFIPS directive. Hence, setting SSLFIPS to virtual directive results in an error.

Note:

Note the following restriction on SSLFIPS:

The following tables describe the cipher suites that work in SSLFIPS mode with various protocols. For instructions on how to implement these cipher suites, see SSLCipherSuite Directive.

Table H-3 lists the cipher suites and protocols that can be used in SSLFIPS mode.

Table H-3 Ciphers Which Work in FIPS Mode

Cipher Name Cipher Works in These Protocols:

TLS_AES_128_CCM_SHA256

TLS 1.3

TLS_AES_128_GCM_SHA256

TLS 1.3

TLS_AES_256_GCM_SHA384

TLS 1.3

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

TLS 1.2

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

TLS 1.2

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

TLS 1.2

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

TLS 1.2

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

TLS 1.2

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

TLS 1.2

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

TLS 1.2

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

TLS 1.2

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

TLS 1.2

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

TLS 1.2

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

TLS 1.2

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

TLS 1.2

TLS_RSA_WITH_AES_128_CBC_SHA256

TLS 1.2

TLS_RSA_WITH_AES_128_GCM_SHA256

TLS 1.2

TLS_RSA_WITH_AES_256_CBC_SHA256

TLS 1.2

TLS_RSA_WITH_AES_256_GCM_SHA384

TLS 1.2

SSL_RSA_WITH_AES_128_CBC_SHA

TLS 1.2

SSL_RSA_WITH_AES_256_CBC_SHA

TLS 1.2

Note:

  • If SSLFIPS is set to ON, and a cipher that does not support FIPS is used at the server, then client requests that use that cipher fail.

  • To use the TLS_ECDHE_ECDSA cipher suite, Oracle HTTP Server requires a wallet created with an ECC user certificate. The TLS_ECDHE_ECDSA cipher suite does not work with RSA certificates.

  • To use the SSL_RSA/TLS_RSA/TLS_ECDHE_RSA cipher suite, Oracle HTTP Server requires a wallet created with an RSA user certificate. The SSL_RSA/TLS_RSA/TLS_ECDHE_RSA cipher suite does not work with ECC certificates.

For more information about how to configure ECC/RSA certificates in a wallet, see Creating and Viewing Oracle Wallets with orapki in Administering Oracle Fusion Middleware.

For instructions about how to implement these cipher suites and corresponding protocols, see SSL Cipher Suite Directive and SSL Protocol.

Table H-4 lists the cipher suites that do not work in SSPFIPS mode.

Table H-4 Ciphers That Do Not Work in SSLFIPS Mode

Cipher Name Description

TLS_CHACHA20_POLY1305_SHA256

Does not work in SSLFIPS mode in TLSv1.3 protocol

SSLHonorCipherOrder Directive

When choosing a cipher during a handshake, normally the client's preference is used. If this directive is enabled, then the server's preference will be used instead.

Category Value

Syntax

SSLHonorCipherOrder ON | OFF

Example

SSLHonorCipherOrder ON 

Default

OFF

The server's preference order can be configured using the SSLCipherSuite directive. When SSLHonorCipherOrder is set to ON, the value of SSLCipherSuite is treated as an ordered list of cipher values.

Cipher values that appear first in this list are preferred by the server over ciphers that appear later in the list.

Example:

SSLCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

SSLHonorCipherOrder ON

In this case, the server will prefer TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 over all of the other ciphers configured in SSLCipherSuite directive as it appears first in the list and chooses this cipher for the SSL connection, if the client supports it.

SSLOptions Directive

Controls various runtime options on a per-directory basis. In general, if multiple options apply to a directory, the most comprehensive option is applied (options are not merged). However, if all of the options in an SSLOptions directive are preceded by a plus ('+') or minus ('-') symbol, then the options are merged. Options preceded by a plus are added to the options currently in force, and options preceded by a minus are removed from the options currently in force.

Accepted values are:

  • StdEnvVars: Creates the standard set of CGI/SSI environment variables that are related to SSL. This is disabled by default because the extraction operation uses a lot of CPU time and usually has no application when serving static content. Typically, you only enable this for CGI/SSI requests.

  • ExportCertData: Enables the following additional CGI/SSI variables:

    SSL_SERVER_CERT

    SSL_CLIENT_CERT

    SSL_CLIENT_CERT_CHAIN_n (where n= 0, 1, 2...)

    These variables contain the Privacy Enhanced Mail (PEM)-encoded X.509 certificates for the server and the client for the current HTTPS connection, and can be used by CGI scripts for deeper certificate checking. All other certificates of the client certificate chain are provided. This option is "Off" by default because there is a performance cost associated with using it.

    SSL_CLIENT_CERT_CHAIN_n variables are in the following order: SSL_CLIENT_CERT_CHAIN_0 is the intermediate CA who signs SSL_CLIENT_CERT. SSL_CLIENT_CERT_CHAIN_1 is the intermediate CA who signs SSL_CLIENT_CERT_CHAIN_0, and so forth, with SSL_CLIENT_ROOT_CERT as the root CA.

  • FakeBasicAuth: Translates the subject distinguished name of the client X.509 certificate into an HTTP basic authorization user name. This means that the standard HTTP server authentication methods can be used for access control. No password is obtained from the user; the string 'password' is substituted.

  • StrictRequire: Denies access when, according to SSLRequireSSL Directive or directives, access should be forbidden. Without StrictRequire, it is possible for a 'Satisfy any' directive setting to override the SSLRequire or SSLRequireSSL directive, allowing access if the client passes the host restriction or supplies a valid user name and password.

    Thus, the combination of SSLRequireSSL or SSLRequire with SSLOptions +StrictRequire gives mod_ossl the ability to override a 'Satisfy any' directive in all cases.

  • CompatEnvVars: Exports obsolete environment variables for backward compatibility to Apache SSL 1.x, mod_ssl 2.0.x, Sioux 1.0, and Stronghold 2.x. Use this to provide compatibility to existing CGI scripts.

  • OptRenegotiate: This enables optimized SSL connection renegotiation handling when SSL directives are used in a per-directory context.

Category Value

Syntax

SSLOptions [+-] StdEnvVars | ExportCertData | FakeBasicAuth | StrictRequire | CompatEnvVars | OptRenegotiate

Example

SSLOptions -StdEnvVars

Default

None

SSLProtocol Directive

Specifies SSL protocol(s) for mod_ossl to use when establishing the server environment. Clients can only connect with one of the specified protocols. Accepted values are:

  • TLSv1.2

  • TLSv1.3

  • All

You can specify multiple values as a space-delimited list. In the syntax, the "-" and "+" symbols have the following meaning:

  • + : Adds the protocol to the list

  • - : Removes the protocol from the list

In the current release, All is defined as +TLSv1.3 +TLSv1.2.

Category Value

Syntax

SSLProtocol [+-] TLSv1.3 | TLSv1.2 | All

Example

SSLProtocol +TLSv1.2 +TLSv1.3

Default

TLSv1.2 TLSv1.3

Note:

  • TLSv1.3 does not offer renegotiations, specifying ciphers for it in a directory context is not allowed.
  • If TLSv1.3 is specified in the SSLProtocol configuration and SSLCipherSuite is set to explicitly configure cipher suites, but the provided list does not include any TLSv1.3 cipher suites, then Oracle HTTP Server will automatically activate the following default TLSv1.3 ciphers on startup:
    • TLS_AES_128_GCM_SHA256
    • TLS_AES_256_GCM_SHA384
    • TLS_CHACHA20_POLY1305_SHA256
  • When the mod_ossl directive is configured inside a Location block, it automatically forces a renegotiation from the server side to meet the new SSL configuration.

SSLProxyCheckPeerName Directive

This directive configures host name checking for server certificates when mod_ossl is acting as an SSL client. The check will succeed if the host name from the request URI matches one of the CN attributes of the certificate's subject, or matches the subjectAltName extension. If the check fails, the SSL request is aborted and a 502 status code (Bad Gateway) is returned.

Wildcard matching is supported for specific cases: an subjectAltName entry of type dNSName, or CN attributes starting with *. will match with any host name of the same number of name elements and the same suffix. For example, *.example.org will match foo.example.org, but will not match foo.bar.example.org, because the number of elements in the respective host names differs.

Category Value
Syntax SSLProxyCheckPeerName on | off
Example SSLProxyCheckPeerName on
Default on
Context Server Config, Virtual Host, Proxy Section

SSLProxyCipherSuite Directive

Specifies the SSL cipher suite that the proxy can use during the SSL handshake. This directive uses a colon-separated cipher specification string to identify the cipher suite. Table H-1 shows the tags to use in the string to describe the cipher suite you want. SSLProxyCipherSuite accepts the following values:

  • none: Adds the cipher to the list

  • + : Adds the cipher to the list and places it in the correct location in the list

  • - : Removes the cipher from the list (which can be added later)

  • ! : Removes the cipher from the list permanently

Tags are joined with prefixes to form a cipher specification string. Tags are joined together with prefixes to form a cipher specification string. The SSLProxyCipherSuite directive uses the same tags as the SSLCipherSuite directive. For a list of supported suite tags, see Table H-1.

Category Value

Example

SSLProxyCipherSuite ALL:!MD5

In this example, all ciphers are specified except MD5 strength ciphers.

Syntax

SSLProxyCipherSuite cipher-spec

Default

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

The SSLProxyCipherSuite directive uses the same cipher suites as the SSLCipherSuite directive. For a list of the supported Cipher Suites, see Table H-2.

SSLProxyEngine Directive

Enables or disables the SSL/TLS protocol engine for proxy. SSLProxyEngine is usually used inside a <VirtualHost> section to enable SSL/TLS for proxy usage in a particular virtual host. By default, the SSL/TLS protocol engine is disabled for proxy both for the main server and all configured virtual hosts.

SSLProxyEngine should not be included in a virtual host that will be acting as a forward proxy (by using Proxy or ProxyRequest directives). SSLProxyEngine is not required to enable a forward proxy server to proxy SSL/TLS requests.

Category Value

Syntax

SSLProxyEngine ON | OFF

Example

SSLProxyEngine on

Default

Disable

SSLProxyProtocol Directive

Specifies SSL protocol(s) for mod_ossl to use when establishing a proxy connection in the server environment. Proxies can only connect with one of the specified protocols. Accepted values are:

  • TLSv1.2

  • TLSv1.3

  • All

You can specify multiple values as a space-delimited list. In the syntax, the "-" and "+" symbols have the following meaning:

  • + : Adds the protocol to the list

  • - : Removes the protocol from the list

In the current release All is defined as +TLSv1.3 +TLSv1.2.

Category Value

Syntax

SSLProxyProtocol [+-] TLSv1.3 | TLSv1.2 | All

Example

SSLProxyProtocol +TLSv1.3 +TLSv1.2

Default

ALL

SSLProxyWallet Directive

Specifies the location of the wallet with its WRL, specified as a filepath, that a proxy connection needs to use.

Category Value

Syntax

SSLProxyWallet file:path to wallet

Example

SSLProxyWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/proxy"

Default

None

SSLRequire Directive

Note:

SSLRequire is deprecated and must be replaced with Require expression. See Require expr in the Apache HTTP Server documentation for more information.

Denies access unless an arbitrarily complex boolean expression is true.

Category Value

Syntax

SSLRequire expression

Example

SSLRequire word ">=" word |word "ge" word

Default

None

Understanding the Expression Variable

The expression variable must match the following syntax (given as a BNF grammar notation):

expr ::= "true" | "false"
"!" expr
expr "&&" expr
expr "||" expr
"(" expr ")"

comp ::=word "==" word | word "eq" word
word "!=" word |word "ne" word
word "<" word |word "lt" word
word "<=" word |word "le" word
word ">" word |word "gt" word
word ">=" word |word "ge" word
word "=~" regex
word "!~" regex
wordlist ::= word
wordlist "," word

word ::= digit
cstring
variable
function

digit ::= [0-9]+

cstring ::= "..."

variable ::= "%{varname}"

Table H-5 and Table H-6 list standard and SSL variables. These are valid values for varname.

function ::= funcname "(" funcargs ")"

For funcname, the following function is available:

file(filename)

The file function takes one string argument, the filename, and expands to the contents of the file. This is useful for evaluating the file's contents against a regular expression.

Table H-5 lists the standard variables for SSLRequire Directive varname.

Table H-5 Standard Variables for SSLRequire Varname

Standard Variables Standard Variables Standard Variables

HTTP_USER_AGENT

PATH_INFO

AUTH_TYPE

HTTP_REFERER

QUERY_STRING

SERVER_SOFTWARE

HTTP_COOKIE

REMOTE_HOST

API_VERSION

HTTP_FORWARDED

REMOTE_IDENT

TIME_YEAR

HTTP_HOST

IS_SUBREQ

TIME_MON

HTTP_PROXY_CONNECTION

DOCUMENT_ROOT

TIME_DAY

HTTP_ACCEPT

SERVER_ADMIN

TIME_HOUR

HTTP:headername

SERVER_NAME

TIME_MIN

THE_REQUEST

SERVER_PORT

TIME_SEC

REQUEST_METHOD

SERVER_PROTOCOL

TIME_WDAY

REQUEST_SCHEME

REMOTE_ADDR

TIME

REQUEST_URI

REMOTE_USER

ENV:variablename

REQUEST_FILENAME

 

 

Table H-6 lists the SSL variables for SSLRequire Directive varname.

Table H-6 SSL Variables for SSLRequire Varname

SSL Variables SSL Variables SSL Variables

HTTPS

SSL_PROTOCOL

SSL_CIPHER_ALGKEYSIZE

SSL_CIPHER

SSL_CIPHER_EXPORT

SSL_VERSION_INTERFACE

SSL_CIPHER_USEKEYSIZE

SSL_VERSION_LIBRARY

SSL_SESSION_ID

SSL_CLIENT_V_END

SSL_CLIENT_M_SERIAL

SSL_CLIENT_V_START

SSL_CLIENT_S_DN_ST

SSL_CLIENT_S_DN

SSL_CLIENT_S_DN_C

SSL_CLIENT_S_DN_CN

SSL_CLIENT_S_DN_O

SSL_CLIENT_S_DN_OU

SSL_CLIENT_S_DN_G

SSL_CLIENT_S_DN_T

SSL_CLIENT_S_DN_I

SSL_CLIENT_S_DN_UID

SSL_CLIENT_S_DN_S

SSL_CLIENT_S_DN_D

SSL_CLIENT_I_DN_C

SSL_CLIENT_S_DN_Email

SSL_CLIENT_I_DN

SSL_CLIENT_I_DN_O

SSL_CLIENT_I_DN_ST

SSL_CLIENT_I_DN_L

SSL_CLIENT_I_DN_T

SSL_CLIENT_I_DN_OU

SSL_CLIENT_I_DN_CN

SSL_CLIENT_I_DN_S

SSL_CLIENT_I_DN_I

SSL_CLIENT_I_DN_G

SSL_CLIENT_I_DN_Email

SSL_CLIENT_I_DN_D

SSL_CLIENT_I_DN_UID

SSL_CLIENT_CERT

SSL_CLIENT_CERT_CHAIN_n

SSL_CLIENT_ROOT_CERT

SSL_CLIENT_VERIFY

SSL_CLIENT_M_VERSION

SSL_SERVER_M_VERSION

SSL_SERVER_V_START

SSL_SERVER_V_END

SSL_SERVER_M_SERIAL

SSL_SERVER_S_DN_C

SSL_SERVERT_S_DN_ST

SSL_SERVER_S_DN

SSL_SERVER_S_DN_OU

SSL_SERVER_S_DN_CN

SSL_SERVER_S_DN_O

SSL_SERVER_S_DN_I

SSL_SERVER_S_DN_G

SSL_SERVER_S_DN_T

SSL_SERVER_S_DN_D

SSL_SERVER_S_DN_UID

SSL_SERVER_S_DN_S

SSL_SERVER_I_DN

SSL_SERVER_I_DN_C

SSL_SERVER_S_DN_Email

SSL_SERVER_I_DN_L

SSL_SERVER_I_DN_O

SSL_SERVER_I_DN_ST

SSL_SERVER_I_DN_CN

SSSL_SERVER_I_DN_T

SSL_SERVER_I_DN_OU

SSL_SERVER_I_DN_G

SSL_SERVER_I_DN_I

 

SSLRequireSSL Directive

Denies access to clients not using SSL. This is a useful directive for absolute protection of a SSL-enabled virtual host or directories in which configuration errors could create security vulnerabilities.

Category Value

Syntax

SSLRequireSSL

Example

SSLRequireSSL

Default

None

SSLSessionCache Directive

Specifies the global/interprocess session cache storage type. The cache provides an optional way to speed up parallel request processing. The accepted values are:

  • none: disables the global/interprocess session cache. Produces no impact on functionality, but makes a major difference in performance.

  • shmcb:/path/to/datafile[bytes]: Uses a high-performance Shared Memory Cyclic Buffer (SHMCB) session cache to synchronize the local SSL memory caches of the server processes. Note: in this shm setting, no log files are created under /path/to/datafile on local disk.

Category Value

Syntax

SSLSessionCache none | shmcb:/path/to/datafile[bytes]

Examples

SSLSessionCache "shmcb:${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/ssl_scache(512000)"

Default

SSLSessionCache shmcb:/path/to/datafile[bytes]

SSLSessionCacheTimeout Directive

Specifies the number of seconds before a SSL session in the session cache expires.

Category Value

Syntax

SSLSessionCacheTimeout seconds

Example

SSLSessionCacheTimeout 120

Default

300

SSLStrictSNIVHost Directive

This directive sets whether a non-SNI client is allowed to access a name-based virtual host. If set to on in the default name-based virtual host, clients that are SNI unaware will not be allowed to access any virtual host belonging to this particular IP / port combination. If set to on in any other virtual host, SNI unaware clients are not allowed to access this particular virtual host.

Category Value
Syntax SSLStrictSNIVHostCheck on | off
Example SSLStrictSNIVHostCheck on
Default off
Context Server Config, Virtual Host

SSLVerifyClient Directive

Specifies whether a client must present a certificate when connecting. The accepted values are:

  • none: No client certificate is required

  • optional: Client can present a valid certificate

  • require: Client must present a valid certificate

Category Value

Syntax

SSLVerifyClient none | optional | require

Example

SSLVerifyClient optional

Default

None

Note:

The level optional_no_ca included with mod_ssl (in which the client can present a valid certificate, but it need not be verifiable) is not supported in mod_ossl.

SSLWallet Directive

Specifies the location of the wallet with its WRL, specified as a filepath.

Category Value

Syntax

SSLWallet file:path to wallet directory

file:path may also be expressed simply as path.

Example

SSLWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/default"

Default

This is the default

Note:

If the wallet has a certificate/certificate request signed with the MD5 algorithm, Oracle HTTP Server will fail to start.