| Директива SSLOptions
Description: | Configure various SSL engine run-time options |
Syntax: | SSLOptions [+|-]option ... |
Context: | server config, virtual host, directory, .htaccess |
Override: | Options |
Status: | Extension |
Module: | mod_ssl |
This directive can be used to control various run-time options on a
per-directory basis. Normally, if multiple SSLOptions
could apply to a directory, then the most specific one is taken
completely; the options are not merged. However if all the
options on the SSLOptions directive are preceded by a
plus ( + ) or minus ( - ) symbol, the options
are merged. Any options preceded by a + are added to the
options currently in force, and any options preceded by a
- are removed from the options currently in force.
The available options are:
-
StdEnvVars
When this option is enabled, the standard set of SSL related CGI/SSI
environment variables are created. This per default is disabled for
performance reasons, because the information extraction step is a
rather expensive operation. So one usually enables this option for
CGI and SSI requests only.
-
ExportCertData
When this option is enabled, additional CGI/SSI environment variables are
created: SSL_SERVER_CERT , SSL_CLIENT_CERT and
SSL_CLIENT_CERT_CHAIN_ n (with n = 0,1,2,..).
These contain the PEM-encoded X.509 Certificates of server and client for
the current HTTPS connection and can be used by CGI scripts for deeper
Certificate checking. Additionally all other certificates of the client
certificate chain are provided, too. This bloats up the environment a
little bit which is why you have to use this option to enable it on
demand.
-
FakeBasicAuth
When this option is enabled, the Subject Distinguished Name (DN) of the
Client X509 Certificate is translated into a HTTP Basic Authorization
username. This means that the standard Apache authentication methods can
be used for access control. The user name is just the Subject of the
Client's X509 Certificate (can be determined by running OpenSSL's
openssl x509 command: openssl x509 -noout -subject -in
certificate .crt ). Note that no password is
obtained from the user. Every entry in the user file needs this password:
`` xxj31ZMTZzkVA '', which is the DES-encrypted version of the
word ` password ''. Those who live under MD5-based encryption
(for instance under FreeBSD or BSD/OS, etc.) should use the following MD5
hash of the same word: `` $1$OXLyS...$Owx8s2/m9/gfkcRVXzgoE/ ''.
Note that the AuthBasicFake
directive within mod_auth_basic can be used as a more
general mechanism for faking basic authentication, giving control over the
structure of both the username and password.
-
StrictRequire
This forces forbidden access when SSLRequireSSL or
SSLRequire successfully decided that access should be
forbidden. Usually the default is that in the case where a `` Satisfy
any '' directive is used, and other access restrictions are passed,
denial of access due to SSLRequireSSL or
SSLRequire is overridden (because that's how the Apache
Satisfy mechanism should work.) But for strict access restriction
you can use SSLRequireSSL and/or SSLRequire in
combination with an `` SSLOptions +StrictRequire ''. Then an
additional `` Satisfy Any '' has no chance once mod_ssl has
decided to deny access.
-
OptRenegotiate
This enables optimized SSL connection renegotiation handling when SSL
directives are used in per-directory context. By default a strict
scheme is enabled where every per-directory reconfiguration of
SSL parameters causes a full SSL renegotiation handshake. When this
option is used mod_ssl tries to avoid unnecessary handshakes by doing more
granular (but still safe) parameter checks. Nevertheless these granular
checks sometimes may not be what the user expects, so enable this on a
per-directory basis only, please.
-
LegacyDNStringFormat
This option influences how values of the
SSL_{CLIENT,SERVER}_{I,S}_DN variables are formatted. Since
version 2.3.11, Apache HTTPD uses a RFC 2253 compatible format by
default. This uses commas as delimiters between the attributes, allows the
use of non-ASCII characters (which are converted to UTF8), escapes
various special characters with backslashes, and sorts the attributes
with the "C" attribute last.
If LegacyDNStringFormat is set, the old format will be
used which sorts the "C" attribute first, uses slashes as separators, and
does not handle non-ASCII and special characters in any consistent way.
Example SSLOptions +FakeBasicAuth -StrictRequire
<Files ~ "\.(cgi|shtml)$">
SSLOptions +StdEnvVars -ExportCertData
</Files>
|
 |