Next: A modul szerkezete, felépítése Up: A mod_SSL projekt Previous: A mod_ssl beszerzése   Tartalomjegyzék


5.8.4.10       A mod_ssl konfigurációs fájlja

A httpd.conf.ssl fájl tartalma a következő:

###########################################################

##                  MOD_SSL CONFIGURATION

###########################################################

 

LoadModule ssl_module        /usr/lib/apache/libssl.so    # Itt töltődik be az ssl modul

Listen 80                                                                          # Ezeken a portokon figyelünk    

Listen 443

 

##  SSL Globális környezet

##

##  All SSL configuration in this context applies both to

##  the main server and all SSL-enabled virtual hosts.

##

 

#   Some MIME-types for downloading Certificates and CRLs

#

AddType application/x-x509-ca-cert .crt                        # A tanúsítvány mint fájl típus

AddType application/x-pkcs7-crl    .crl

 

#   Pass Phrase Dialog:

#   Configure the pass phrase gathering process.

#   The filtering dialog program (`builtin' is a internal

#   terminal dialog) has to provide the pass phrase on stdout.

SSLPassPhraseDialog  builtin                                          # Ezt célszerű így hagyni.

 

#   Inter-Process Session Cache:

#   Configure the SSL Session Cache: First either `none'

#   or `dbm:/path/to/file' for the mechanism to use and

#   second the expiring timeout (in seconds).

SSLSessionCache         dbm:logs/ssl_scache

SSLSessionCacheTimeout  300

 

#   Semaphore:

#   Configure the path to the mutual explusion 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.

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      logs/ssl_engine_log

SSLLogLevel info

 

##

## SSL Virtual Host Context

##

 

# General setup for the virtual host

DocumentRoot /home/httpd/html

#ServerName new.host.name

#ServerAdmin you@your.address

ErrorLog logs/ssl-error_log

TransferLog logs/ssl-access_log

#

#   SSL Engine Switch:

#   Enable/Disable SSL for this virtual host.

SSLEngine on

#

#   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:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

#

#   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.

SSLCertificateFile    conf/server.crt

#

#   Server Private Key:

#   If the key is not combined with the certificate, use this

#   directive to point at the key file.

SSLCertificateKeyFile conf/server.key

#

#   Certificate Authority (CA):

#   Set the CA certificate verification path where to find CA

#   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.

#SSLCACertificatePath    @@ServerRoot@@/conf/ssl.crt

#SSLCACertificateFile    @@ServerRoot@@/conf/ssl.crt/ca-bundle.crt

#

#   Client Authentication (Type):

#   Client certificate verification type and depth.  Types are

#   none, optional, require and optional_no_ca.  Depth is a

#   number which specifies how deeply to verify the certificate

#   issuer chain before deciding the certificate is not valid.

SSLVerifyClient none

SSLVerifyDepth  10

#

#   Access Control:

#   With SSLRequire you can do per-directory access control based

#   on arbitrary complex boolean expressions containing server

#   variable checks and other lookup directives.  The syntax is a

#   mixture between C and Perl.  See the mod_ssl documentation

#   for more details.

#

#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]+$/

#

#   SSL Engine Options:

#   Set various options for the SSL engine.

#   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'.

#   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.

#   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.

#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars

#

#   SSL Protocol Adjustments:

#   The safe and default but still SSL/TLS standard compliant shutdown

#   approach is that mod_ssl sends the close notify alert but doesn't wait for

#   the close notify alert from client. When you need a different shutdown

#   approach you can use one of the following variables:

#   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.

#   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.

#   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.

#SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

#

#   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 logs/ssl_request_log \

#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

#


Next: A modul szerkezete, felépítése Up: A mod_SSL projekt Previous: A mod_ssl beszerzése   Tartalomjegyzék

 
Misóka Zoltán 2000. 10. 05.