]> git.pld-linux.org Git - packages/apache.git/blobdiff - apache-mod_ssl.conf
- rel 4; use currently available (unofficial) fix for latest 'Range' vuln.
[packages/apache.git] / apache-mod_ssl.conf
index 1cabdbb7da4ff3cc7368a1148bc01046531b8350..0867c277e6694efe9e62d85c6c585862091d4c1a 100644 (file)
@@ -1,39 +1,38 @@
-LoadModule ssl_module           lib/apache/mod_ssl.so 
+# $Id$
+LoadModule ssl_module  modules/mod_ssl.so
 
-<IfModule mod_ssl.c>
-#
 # This is the Apache server configuration file providing SSL support.
 # It contains the configuration directives to instruct the server how to
-# serve pages over an https connection. For detailing information about these 
-# directives see <URL:http://httpd.apache.org/docs-2.0/mod/mod_ssl.html>
+# serve pages over an https connection. For detailing information about these
+# directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>
+
+<IfModule mod_ssl.c>
 #
-#   For the moment, see <URL:http://www.modssl.org/docs/> for this info. 
-#   The documents are still being prepared from material donated by the
-#   modssl project.
-# 
-# Do NOT simply read the instructions in here without understanding
-# what they do.  They're here only as hints or reminders.  If you are unsure
-# consult the online docs. You have been warned.  
+# Pseudo Random Number Generator (PRNG):
+# Configure one or more sources to seed the PRNG of the SSL library.
+# The seed data should be of good random quality.
+# WARNING! On some platforms /dev/random blocks if not enough entropy
+# is available. This means you then cannot use the /dev/random device
+# because it would lead to very long connection times (as long as
+# it requires to make more entropy available). But usually those
+# platforms additionally provide a /dev/urandom device which doesn't
+# block. So, if available, use this one instead. Read the mod_ssl User
+# Manual for more details.
 #
-#<IfDefine SSL>
+#SSLRandomSeed startup file:/dev/random  512
+#SSLRandomSeed startup file:/dev/urandom 512
+#SSLRandomSeed connect file:/dev/random  512
+#SSLRandomSeed connect file:/dev/urandom 512
 
-#   Until documentation is completed, please check http://www.modssl.org/
-#   for additional config examples and module docmentation.  Directives
-#   and features of mod_ssl are largely unchanged from the mod_ssl project
-#   for Apache 1.3.
 
 #
-# When we also provide SSL we have to listen to the 
+# When we also provide SSL we have to listen to the
 # standard HTTP port (see above) and to the HTTPS port
 #
-Listen 443
-
-#
-# Dynamic Shared Object (DSO) Support
+# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
+#         Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
 #
-# To be able to use the functionality of a module which was built as a DSO you
-#    ErrorLog logs/dummy-host.example.com-error_log
-#    CustomLog logs/dummy-host.example.com-access_log common
+Listen 443
 
 ##
 ##  SSL Global Context
@@ -42,12 +41,6 @@ Listen 443
 ##  the main server and all SSL-enabled virtual hosts.
 ##
 
-#
-#   Some MIME-types for downloading Certificates and CRLs
-#
-AddType application/x-x509-ca-cert .crt
-AddType application/x-pkcs7-crl    .crl
-
 #   Pass Phrase Dialog:
 #   Configure the pass phrase gathering process.
 #   The filtering dialog program (`builtin' is a internal
@@ -55,76 +48,46 @@ AddType application/x-pkcs7-crl    .crl
 SSLPassPhraseDialog  builtin
 
 #   Inter-Process Session Cache:
-#   Configure the SSL Session Cache: First the mechanism 
+#   Configure the SSL Session Cache: First the mechanism
 #   to use and second the expiring timeout (in seconds).
-#SSLSessionCache        none
-#SSLSessionCache        shmht:logs/ssl_scache(512000)
-#SSLSessionCache        shmcb:logs/ssl_scache(512000)
-SSLSessionCache         dbm:/var/log/httpd/ssl_scache
+#SSLSessionCache                dbm:/var/cache/httpd/ssl_scache
+#SSLSessionCache               shmcb:/var/run/ssl_scache(512000)
+SSLSessionCache                shmcb:/var/cache/httpd/ssl_scache(512000)
 SSLSessionCacheTimeout  300
 
 #   Semaphore:
 #   Configure the path to the mutual exclusion semaphore the
-#   SSL engine uses internally for inter-process synchronization. 
-SSLMutex  file:logs/ssl_mutex
-
-#   Pseudo Random Number Generator (PRNG):
-#   Configure one or more sources to seed the PRNG of the 
-#   SSL library. The seed data should be of good random quality.
-#   WARNING! On some platforms /dev/random blocks if not enough entropy
-#   is available. This means you then cannot use the /dev/random device
-#   because it would lead to very long connection times (as long as
-#   it requires to make more entropy available). But usually those
-#   platforms additionally provide a /dev/urandom device which doesn't
-#   block. So, if available, use this one instead. Read the mod_ssl User
-#   Manual for more details.
-SSLRandomSeed startup builtin
-SSLRandomSeed connect builtin
-#SSLRandomSeed startup file:/dev/random  512
-#SSLRandomSeed startup file:/dev/urandom 512
-#SSLRandomSeed connect file:/dev/random  512
-#SSLRandomSeed connect file:/dev/urandom 512
-
-#   Logging:
-#   The home of the dedicated SSL protocol logfile. Errors are
-#   additionally duplicated in the general error log file.  Put
-#   this somewhere where it cannot be used for symlink attacks on
-#   a real server (i.e. somewhere where only root can write).
-#   Log levels are (ascending order: higher ones include lower ones):
-#   none, error, warn, info, trace, debug.
-SSLLog      /var/log/httpd/ssl_engine_log
-SSLLogLevel info
+#   SSL engine uses internally for inter-process synchronization.
+SSLMutex  file:/var/run/httpd/ssl_mutex
 
 ##
 ## SSL Virtual Host Context
 ##
 
-<VirtualHost _default_:443>
-
-#  General setup for the virtual host
-DocumentRoot "/home/services/httpd/html"
-ServerName new.host.name:443
-ServerAdmin you@your.address
-ErrorLog /var/log/httpd/error_log
-TransferLog /var/log/httpd/access_log
-
+NameVirtualHost *:443
+<VirtualHost *:443>
 #   SSL Engine Switch:
 #   Enable/Disable SSL for this virtual host.
 SSLEngine on
 
+#   Usable SSL protocol flavors:
+#   This directive can be used to control the SSL protocol flavors mod_ssl
+#   should use when establishing its server environment. Clients then can only
+#   connect with one of the provided protocols.
+SSLProtocol all -SSLv2
+
 #   SSL Cipher Suite:
 #   List the ciphers that the client is permitted to negotiate.
 #   See the mod_ssl documentation for a complete list.
-SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+SSLCipherSuite ALL:!ADH:!EXP:!LOW:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
 
 #   Server Certificate:
 #   Point SSLCertificateFile at a PEM encoded certificate.  If
 #   the certificate is encrypted, then you will be prompted for a
-#   pass phrase.  Note that a kill -HUP will prompt again. A test
-#   certificate can be generated with `make certificate' under
-#   built time. Keep in mind that if you've both a RSA and a DSA
-#   certificate you can configure both in parallel (to also allow
-#   the use of DSA ciphers, etc.)
+#   pass phrase.  Note that a kill -HUP will prompt again.  Keep
+#   in mind that if you have both an RSA and a DSA certificate you
+#   can configure both in parallel (to also allow the use of DSA
+#   ciphers, etc.)
 SSLCertificateFile /etc/httpd/ssl/server.crt
 #SSLCertificateFile /etc/httpd/ssl/server-dsa.crt
 
@@ -150,8 +113,8 @@ SSLCertificateKeyFile /etc/httpd/ssl/server.key
 #   certificates for client authentication or alternatively one
 #   huge file containing all of them (file must be PEM encoded)
 #   Note: Inside SSLCACertificatePath you need hash symlinks
-#         to point to the certificate files. Use the provided
-#         Makefile to update the hash symlinks after changes.
+#               to point to the certificate files. Use the provided
+#               Makefile to update the hash symlinks after changes.
 #SSLCACertificatePath /etc/httpd/ssl
 #SSLCACertificateFile /etc/httpd/ssl/ca-bundle.crt
 
@@ -160,8 +123,8 @@ SSLCertificateKeyFile /etc/httpd/ssl/server.key
 #   authentication or alternatively one huge file containing all
 #   of them (file must be PEM encoded)
 #   Note: Inside SSLCARevocationPath you need hash symlinks
-#         to point to the certificate files. Use the provided
-#         Makefile to update the hash symlinks after changes.
+#               to point to the certificate files. Use the provided
+#               Makefile to update the hash symlinks after changes.
 #SSLCARevocationPath /etc/httpd/ssl
 #SSLCARevocationFile /etc/httpd/ssl/ca-bundle.crl
 
@@ -180,51 +143,47 @@ SSLCertificateKeyFile /etc/httpd/ssl/server.key
 #   mixture between C and Perl.  See the mod_ssl documentation
 #   for more details.
 #<Location />
-#SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
-#            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
-#            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
-#            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
-#            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
-#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
+#SSLRequire (  %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
+#                      and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
+#                      and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
+#                      and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
+#                      and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
+#                 or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
 #</Location>
 
 #   SSL Engine Options:
 #   Set various options for the SSL engine.
 #   o FakeBasicAuth:
-#     Translate the client X.509 into a Basic Authorisation.  This means that
-#     the standard Auth/DBMAuth methods can be used for access control.  The
-#     user name is the `one line' version of the client's X.509 certificate.
-#     Note that no password is obtained from the user. Every entry in the user
-#     file needs this password: `xxj31ZMTZzkVA'.
+#       Translate the client X.509 into a Basic Authorisation.  This means that
+#       the standard Auth/DBMAuth methods can be used for access control.  The
+#       user name is the `one line' version of the client's X.509 certificate.
+#       Note that no password is obtained from the user. Every entry in the user
+#       file needs this password: `xxj31ZMTZzkVA'.
 #   o ExportCertData:
-#     This exports two additional environment variables: SSL_CLIENT_CERT and
-#     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
-#     server (always existing) and the client (only existing when client
-#     authentication is used). This can be used to import the certificates
-#     into CGI scripts.
+#       This exports two additional environment variables: SSL_CLIENT_CERT and
+#       SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
+#       server (always existing) and the client (only existing when client
+#       authentication is used). This can be used to import the certificates
+#       into CGI scripts.
 #   o StdEnvVars:
-#     This exports the standard SSL/TLS related `SSL_*' environment variables.
-#     Per default this exportation is switched off for performance reasons,
-#     because the extraction step is an expensive operation and is usually
-#     useless for serving static content. So one usually enables the
-#     exportation for CGI and SSI requests only.
-#   o CompatEnvVars:
-#     This 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.
+#       This exports the standard SSL/TLS related `SSL_*' environment variables.
+#       Per default this exportation is switched off for performance reasons,
+#       because the extraction step is an expensive operation and is usually
+#       useless for serving static content. So one usually enables the
+#       exportation for CGI and SSI requests only.
 #   o StrictRequire:
-#     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
-#     under a "Satisfy any" situation, i.e. when it applies access is denied
-#     and no other module can change it.
+#       This denies access when "SSLRequireSSL" or "SSLRequire" applied even
+#       under a "Satisfy any" situation, i.e. when it applies access is denied
+#       and no other module can change it.
 #   o OptRenegotiate:
-#     This enables optimized SSL connection renegotiation handling when SSL
-#     directives are used in per-directory context. 
-#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
-<Files ~ "\.(cgi|shtml|phtml|php3?)$">
-    SSLOptions +StdEnvVars
-</Files>
-<Directory "//home/services/httpd/cgi-bin">
-    SSLOptions +StdEnvVars
+#       This enables optimized SSL connection renegotiation handling when SSL
+#       directives are used in per-directory context.
+#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
+<FilesMatch "\.(cgi|shtml|phtml|php)$">
+       SSLOptions +StdEnvVars
+</FilesMatch>
+<Directory "/home/services/httpd/cgi-bin">
+       SSLOptions +StdEnvVars
 </Directory>
 
 #   SSL Protocol Adjustments:
@@ -233,35 +192,37 @@ SSLCertificateKeyFile /etc/httpd/ssl/server.key
 #   the close notify alert from client. When you need a different shutdown
 #   approach you can use one of the following variables:
 #   o ssl-unclean-shutdown:
-#     This forces an unclean shutdown when the connection is closed, i.e. no
-#     SSL close notify alert is send or allowed to received.  This violates
-#     the SSL/TLS standard but is needed for some brain-dead browsers. Use
-#     this when you receive I/O errors because of the standard approach where
-#     mod_ssl sends the close notify alert.
+#       This forces an unclean shutdown when the connection is closed, i.e. no
+#       SSL close notify alert is send or allowed to received.  This violates
+#       the SSL/TLS standard but is needed for some brain-dead browsers. Use
+#       this when you receive I/O errors because of the standard approach where
+#       mod_ssl sends the close notify alert.
 #   o ssl-accurate-shutdown:
-#     This forces an accurate shutdown when the connection is closed, i.e. a
-#     SSL close notify alert is send and mod_ssl waits for the close notify
-#     alert of the client. This is 100% SSL/TLS standard compliant, but in
-#     practice often causes hanging connections with brain-dead browsers. Use
-#     this only for browsers where you know that their SSL implementation
-#     works correctly. 
+#       This forces an accurate shutdown when the connection is closed, i.e. a
+#       SSL close notify alert is send and mod_ssl waits for the close notify
+#       alert of the client. This is 100% SSL/TLS standard compliant, but in
+#       practice often causes hanging connections with brain-dead browsers. Use
+#       this only for browsers where you know that their SSL implementation
+#       works correctly.
 #   Notice: Most problems of broken clients are also related to the HTTP
 #   keep-alive facility, so you usually additionally want to disable
 #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
 #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
 #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
 #   "force-response-1.0" for this.
-SetEnvIf User-Agent ".*MSIE.*" \
-         nokeepalive ssl-unclean-shutdown \
-         downgrade-1.0 force-response-1.0
+<IfModule mod_setenvif.c>
+       BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
+</IfModule>
 
 #   Per-Server Logging:
 #   The home of a custom SSL log file. Use this when you want a
 #   compact non-error SSL logfile on a virtual host basis.
-CustomLog /var/log/httpd/ssl_request_log \
-          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
-
-</VirtualHost>                                  
+#<IfModule mod_log_config.c>
+#      CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
+#      # enable common log too, otherwise you be suprised of no access logs
+#      CustomLog logs/access_log common
+#</IfModule>
 
+</VirtualHost>
 
 </IfModule>
This page took 0.043047 seconds and 4 git commands to generate.