From: Rainer Jung (This directive was You can use the
-This directive points to the PEM-encoded Certificate file for the server and
-optionally also to the corresponding RSA or DSA Private Key file for it
-(contained in the same file). If the contained Private Key is encrypted the
-Pass Phrase dialog is forced at startup time. This directive can be used up to
-three times (referencing different filenames) when both a RSA, a DSA, and an
-ECC based server certificate is used in parallel.
+Custom DH parameters and an EC curve name for ephemeral keys,
+can be added to end of the first file configured using
+
+Finally the the end-entity certificate's private key can also be
+added to the certificate file instead of using a separate
+
+Beginning with version 2.2.30, mod_ssl makes use of
+standardized DH parameters with prime lengths of 2048, 3072, 4096, 6144 and
+8192 bits (from RFC 3526),
+and hands them out to clients based on the length of the certificate's RSA/DSA
+key.
+With Java-based clients in particular (Java 7 or earlier), this may lead
+to handshake failures - see this
+FAQ answer for working around
+such issues.
+
-This directive points to the PEM-encoded Private Key file for the
-server. If the Private Key is not combined with the Certificate in the
-
+ an extended %{format}t
The time, in the form given by format, which should be in
- strftime(3)
format. (potentially localized)strftime(3)
format (potentially localized).
+ If the format starts with begin:
(default) the time is taken
+ at the beginning of the request processing. If it starts with
+ end:
it is the time when the log entry gets written,
+ close to the end of the request processing. In addition to the formats
+ supported by strftime(3)
, the following format tokens are
+ supported:
+
+
+ These tokens can not be combined with each other or
+ sec
number of seconds since the Epoch
+ msec
number of milliseconds since the Epoch
+ usec
number of microseconds since the Epoch
+ msec_frac
millisecond fraction
+ usec_frac
microsecond fraction strftime(3)
+ formatting in the same format string. You can use multiple
+ %{format}t
tokens instead. The extended
+ strftime(3)
tokens are available in 2.2.30 and later.
+
-%T
The time taken to serve the request, in seconds.
+%u
+
+ %{UNIT}T
The time taken to serve the request, in a time unit given by
+ UNIT
. Valid units are ms
for milliseconds,
+ us
for microseconds, and s
for seconds.
+ Using s
gives the same result as %T
+ without any format; using us
gives the same result
+ as %D
. Combining %T
with a unit is
+ available in 2.2.30 and later.
-%u
Remote user (from auth; may be bogus if return status
( %s
) is 401)
+%U
-%U
The URL path requested, not including any query string.
+%v
-%v
The canonical ServerName
of the server serving the request.
+%V
-%V
The server name according to the UseCanonicalName
setting.
+%X
%X
Connection status when response is completed:
@@ -200,16 +226,16 @@
@@ -291,6 +317,16 @@
%c
in late versions of Apache
1.3, but this conflicted with the historical ssl
%{var}c
syntax.)
+%I
-%I
Bytes received, including request and headers, cannot be zero.
You need to enable mod_logio
to use this.
+%O
-%O
Bytes sent, including headers, cannot be zero. You need to
enable mod_logio
to use this.
+%{VARNAME}^ti
-%{VARNAME}^ti
The contents of VARNAME:
trailer line(s)
in the request sent to the server.
+%{VARNAME}^to
%{VARNAME}^to
The contents of VARNAME:
trailer line(s)
in the response sent from the server. "%{User-agent}i"
%{format}t
directive multiple
+ times to build up a time format using the extended format tokens
+ like msec_frac
:
+
+
"%{%d/%b/%Y %T}t.%{msec_frac}t %{%z}t"
Açıklama: Sunucuya yapılan isteklerin günlük kayıtlarının tutulması
diff --git a/docs/manual/mod/mod_ssl.html.en b/docs/manual/mod/mod_ssl.html.en
index d2aa5f60d14..3c746ce0ca6 100644
--- a/docs/manual/mod/mod_ssl.html.en
+++ b/docs/manual/mod/mod_ssl.html.en
@@ -91,6 +91,8 @@ to provide the cryptography engine.
Durum: Temel SSLRequireSSL
SSLSessionCache
SSLSessionCacheTimeout
SSLSessionTicketKeyFile
SSLSessionTickets
SSLStrictSNIVHostCheck
SSLUserName
SSLVerifyClient
Compatibility: ECC support is available in Apache 2.2.26 and later SSLCertificateFile
.
+This is supported in version 2.2.30 or later.
+Such parameters can be generated using the commands
+openssl dhparam
and openssl ecparam
.
+The parameters can be added as-is to the end of the first
+certificate file. Only the first file can be used for custom
+parameters, as they are applied independently of the authentication
+algorithm type.
+SSLCertificateKeyFile
+directive. This practice is highly discouraged. If the private
+key is encrypted, the pass phrase dialog is forced at startup time.
+DH parameter interoperability with primes > 1024 bit
+Example
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
Compatibility: ECC support is available in Apache 2.2.26 and later SSLCertificateFile
, use this additional directive to
-point to the file with the stand-alone Private Key. When
-SSLCertificateFile
is used and the file
-contains both the Certificate and the Private Key this directive need
-not be used. But we strongly discourage this practice. Instead we
-recommend you to separate the Certificate and the Private Key. If the
-contained Private Key is encrypted, the Pass Phrase dialog is forced
-at startup time. This directive can be used up to three times
-(referencing different filenames) when both a RSA, a DSA, and an ECC based
-private key is used in parallel.
+The directive can be used up to three times (referencing different filenames)
+when an RSA, a DSA, and an ECC based private key is used in parallel. For each
+SSLCertificateKeyFile
+directive, there must be a matching SSLCertificateFile
+directive.
+The private key may also be combined with the certificate in the file given by
+SSLCertificateFile
, but this practice
+is highly discouraged.
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
-
: remove cipher from list (can be added later again)!
: kill cipher from list completely (can not be added later again)aNULL
, eNULL
and EXP
+ciphers are always disabledBeginning with version 2.2.30, null and export-grade
+ciphers are always disabled, as mod_ssl unconditionally prepends any supplied
+cipher suite string with !aNULL:!eNULL:!EXP:
at initialization.
A simpler way to look at all of this is to use the ``openssl ciphers
-v
'' command which provides a nice way to successively create the
correct cipher-spec string. The default cipher-spec string
@@ -1812,6 +1863,65 @@ values like 300 in real life.
Description: | Persistent encryption/decryption key for TLS session tickets |
---|---|
Syntax: | SSLSessionTicketKeyFile file-path |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ssl |
Compatibility: | Available in httpd 2.2.30 and later, if using OpenSSL 0.9.8h or later |
Optionally configures a secret key for encrypting and decrypting +TLS session tickets, as defined in +RFC 5077. +Primarily suitable for clustered environments where TLS sessions information +should be shared between multiple nodes. For single-instance httpd setups, +it is recommended to not configure a ticket key file, but to +rely on (random) keys generated by mod_ssl at startup, instead.
+The ticket key file must contain 48 bytes of random data, +preferrably created from a high-entropy source. On a Unix-based system, +a ticket key file can be created as follows:
+ +
+dd if=/dev/random of=/path/to/file.tkey bs=1 count=48
+
Ticket keys should be rotated (replaced) on a frequent basis, +as this is the only way to invalidate an existing session ticket - +OpenSSL currently doesn't allow to specify a limit for ticket lifetimes. +A new ticket key only gets used after restarting the web server. +All existing session tickets become invalid after a restart.
+ +The ticket key file contains sensitive keying material and should
+be protected with file permissions similar to those used for
+SSLCertificateKeyFile
.
Description: | Enable or disable use of TLS session tickets |
---|---|
Syntax: | SSLSessionTickets on|off |
Default: | SSLSessionTickets on |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_ssl |
Compatibility: | Available in httpd 2.2.30 and later, if using OpenSSL 0.9.8f +or later. |
This directive allows to enable or disable the use of TLS session tickets +(RFC 5077).
+TLS session tickets are enabled by default. Using them without restarting +the web server with an appropriate frequency (e.g. daily) compromises perfect +forward secrecy.
+Given those assumptions, at a single point in time we can identify any httpd process on any machine in the cluster from all other httpd processes. The machine's IP address and the pid - of the httpd process are sufficient to do this. So in order to + of the httpd process are sufficient to do this. A httpd process + can handle multiple requests simultaneously if you use a + multi-threaded MPM. In order to identify threads, we use a thread + index Apache httpd uses internally. So in order to generate unique identifiers for requests we need only distinguish between different points in time.
@@ -167,11 +170,13 @@ identifier for each request even still, if you're running NTP then your UTC time will be correct very shortly after reboot. +The UNIQUE_ID
environment variable is
- constructed by encoding the 112-bit (32-bit IP address, 32 bit
- pid, 32 bit time stamp, 16 bit counter) quadruple using the
+ constructed by encoding the 144-bit (32-bit IP address, 32 bit
+ pid, 32 bit time stamp, 16 bit counter, 32 bit thread index)
+ quadruple using the
alphabet [A-Za-z0-9@-]
in a manner similar to MIME
- base64 encoding, producing 19 characters. The MIME base64
+ base64 encoding, producing 24 characters. The MIME base64
alphabet is actually [A-Za-z0-9+/]
however
+
and /
need to be specially encoded
in URLs, which makes them less desirable. All values are
@@ -197,8 +202,7 @@ identifier for each request
issuing the new encodings.
This we believe is a relatively portable solution to this - problem. It can be extended to multithreaded systems like - Windows NT, and can grow with future needs. The identifiers + problem. The identifiers generated have essentially an infinite life-time because future identifiers can be made longer as required. Essentially no communication is required between machines in the cluster (only diff --git a/docs/manual/mod/quickreference.html.de b/docs/manual/mod/quickreference.html.de index 5012eb35e67..c55d1d19207 100644 --- a/docs/manual/mod/quickreference.html.de +++ b/docs/manual/mod/quickreference.html.de @@ -779,6 +779,8 @@ HTTP request Cache
Beginning with version 2.2.30,
+ mod_ssl
will use DH parameters which include primes
+ with lengths of more than 1024 bits. Java 7 and earlier limit their
+ support for DH prime sizes to a maximum of 1024 bits, however.
If your Java-based client aborts with exceptions such as
+ java.lang.RuntimeException: Could not generate DH keypair
and
+ java.security.InvalidAlgorithmParameterException: Prime size must be
+ multiple of 64, and can only range from 512 to 1024 (inclusive)
,
+ and httpd logs tlsv1 alert internal error (SSL alert number 80)
+ (at LogLevel
info
+ or higher), you can either rearrange mod_ssl's cipher list with
+ SSLCipherSuite
+ (possibly in conjunction with SSLHonorCipherOrder
),
+ or you can use custom DH parameters with a 1024-bit prime, which
+ will always have precedence over any of the built-in DH parameters.
To generate custom DH parameters, use the openssl dhparam 1024
+ command. Alternatively, you can use the following standard 1024-bit DH
+ parameters from RFC 2409,
+ section 6.2:
-----BEGIN DH PARAMETERS----- +MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR +Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL +/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC +-----END DH PARAMETERS-----
Add the custom parameters including the "BEGIN DH PARAMETERS" and
+ "END DH PARAMETERS" lines to the end of the first certificate file
+ you have configured using the
+ SSLCertificateFile
directive.