2 # This is the Apache server configuration file providing SSL support using.
3 # the mod_nss plugin. It contains the configuration directives to instruct
4 # the server how to serve pages over an https connection.
6 # Do NOT simply read the instructions in here without understanding
7 # what they do. They're here only as hints or reminders. If you are unsure
8 # consult the online docs. You have been warned.
11 #LoadModule nss_module modules/libmodnss.so
14 # When we also provide SSL we have to listen to the
15 # standard HTTP port (see above) and to the HTTPS port
17 # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
18 # Listen directives: "Listen [::]:8443" and "Listen 0.0.0.0:443"
25 ## All SSL configuration in this context applies both to
26 ## the main server and all SSL-enabled virtual hosts.
30 # Some MIME-types for downloading Certificates and CRLs
32 AddType application/x-x509-ca-cert .crt
33 AddType application/x-pkcs7-crl .crl
36 # Configure the pass phrase gathering process.
37 # The filtering dialog program (`builtin' is a internal
38 # terminal dialog) has to provide the pass phrase on stdout.
39 <% if @passwd_file -%>
40 NSSPassPhraseDialog "file:<%= @passwd_file %>"
42 NSSPassPhraseDialog builtin
46 # This helper program stores the token password pins between
48 NSSPassPhraseHelper /usr/sbin/nss_pcache
50 # Configure the SSL Session Cache.
51 # NSSSessionCacheSize is the number of entries in the cache.
52 # NSSSessionCacheTimeout is the SSL2 session timeout (in seconds).
53 # NSSSession3CacheTimeout is the SSL3/TLS session timeout (in seconds).
54 NSSSessionCacheSize 10000
55 NSSSessionCacheTimeout 100
56 NSSSession3CacheTimeout 86400
59 # Pseudo Random Number Generator (PRNG):
60 # Configure one or more sources to seed the PRNG of the SSL library.
61 # The seed data should be of good random quality.
62 # WARNING! On some platforms /dev/random blocks if not enough entropy
63 # is available. Those platforms usually also provide a non-blocking
64 # device, /dev/urandom, which may be used instead.
66 # This does not support seeding the RNG with each connection.
68 NSSRandomSeed startup builtin
69 #NSSRandomSeed startup file:/dev/random 512
70 #NSSRandomSeed startup file:/dev/urandom 512
73 # TLS Negotiation configuration under RFC 5746
75 # Only renegotiate if the peer's hello bears the TLS renegotiation_info
76 # extension. Default off.
79 # Peer must send Signaling Cipher Suite Value (SCSV) or
80 # Renegotiation Info (RI) extension in ALL handshakes. Default: off
81 NSSRequireSafeNegotiation off
84 ## SSL Virtual Host Context
87 <VirtualHost _default_:8443>
89 # General setup for the virtual host
90 #DocumentRoot "/etc/httpd/htdocs"
91 #ServerName www.example.com:8443
92 #ServerAdmin you@example.com
94 # mod_nss can log to separate log files, you can choose to do that if you'd like
95 # LogLevel is not inherited from httpd.conf.
96 ErrorLog "<%= @error_log %>"
97 TransferLog "<%= @transfer_log %>"
101 # Enable/Disable SSL for this virtual host.
105 # List the ciphers that the client is permitted to negotiate.
106 # See the mod_nss documentation for a complete list.
108 # SSL 3 ciphers. SSL 2 is disabled by default.
109 NSSCipherSuite +rsa_rc4_128_md5,+rsa_rc4_128_sha,+rsa_3des_sha,-rsa_des_sha,-rsa_rc4_40_md5,-rsa_rc2_40_md5,-rsa_null_md5,-rsa_null_sha,+fips_3des_sha,-fips_des_sha,-fortezza,-fortezza_rc4_128_sha,-fortezza_null,-rsa_des_56_sha,-rsa_rc4_56_sha,+rsa_aes_128_sha,+rsa_aes_256_sha
111 # SSL 3 ciphers + ECC ciphers. SSL 2 is disabled by default.
113 # Comment out the NSSCipherSuite line above and use the one below if you have
114 # ECC enabled NSS and mod_nss and want to use Elliptical Curve Cryptography
115 #NSSCipherSuite +rsa_rc4_128_md5,+rsa_rc4_128_sha,+rsa_3des_sha,-rsa_des_sha,-rsa_rc4_40_md5,-rsa_rc2_40_md5,-rsa_null_md5,-rsa_null_sha,+fips_3des_sha,-fips_des_sha,-fortezza,-fortezza_rc4_128_sha,-fortezza_null,-rsa_des_56_sha,-rsa_rc4_56_sha,+rsa_aes_128_sha,+rsa_aes_256_sha,-ecdh_ecdsa_null_sha,+ecdh_ecdsa_rc4_128_sha,+ecdh_ecdsa_3des_sha,+ecdh_ecdsa_aes_128_sha,+ecdh_ecdsa_aes_256_sha,-ecdhe_ecdsa_null_sha,+ecdhe_ecdsa_rc4_128_sha,+ecdhe_ecdsa_3des_sha,+ecdhe_ecdsa_aes_128_sha,+ecdhe_ecdsa_aes_256_sha,-ecdh_rsa_null_sha,+ecdh_rsa_128_sha,+ecdh_rsa_3des_sha,+ecdh_rsa_aes_128_sha,+ecdh_rsa_aes_256_sha,-echde_rsa_null,+ecdhe_rsa_rc4_128_sha,+ecdhe_rsa_3des_sha,+ecdhe_rsa_aes_128_sha,+ecdhe_rsa_aes_256_sha
118 # Cryptographic protocols that provide communication security.
119 # NSS handles the specified protocols as "ranges", and automatically
120 # negotiates the use of the strongest protocol for a connection starting
121 # with the maximum specified protocol and downgrading as necessary to the
122 # minimum specified protocol that can be used between two processes.
123 # Since all protocol ranges are completely inclusive, and no protocol in the
124 # middle of a range may be excluded, the entry "NSSProtocol SSLv3,TLSv1.1"
125 # is identical to the entry "NSSProtocol SSLv3,TLSv1.0,TLSv1.1".
126 NSSProtocol SSLv3,TLSv1.0,TLSv1.1
128 # SSL Certificate Nickname:
129 # The nickname of the RSA server certificate you are going to use.
130 NSSNickname Server-Cert
132 # SSL Certificate Nickname:
133 # The nickname of the ECC server certificate you are going to use, if you
134 # have an ECC-enabled version of NSS and mod_nss
135 #NSSECCNickname Server-Cert-ecc
137 # Server Certificate Database:
138 # The NSS security database directory that holds the certificates and
139 # keys. The database consists of 3 files: cert8.db, key3.db and secmod.db.
140 # Provide the directory that these files exist.
141 NSSCertificateDatabase "<%= @httpd_dir -%>/alias"
144 # In order to be able to store multiple NSS databases in one directory
145 # they need unique names. This option sets the database prefix used for
146 # cert8.db and key3.db.
147 #NSSDBPrefix my-prefix-
149 # Client Authentication (Type):
150 # Client certificate verification type. Types are none, optional and
152 #NSSVerifyClient none
155 # Online Certificate Status Protocol (OCSP).
156 # Verify that certificates have not been revoked before accepting them.
160 # Use a default OCSP responder. If enabled this will be used regardless
161 # of whether one is included in a client certificate. Note that the
162 # server certificate is verified during startup.
164 # NSSOCSPDefaultURL defines the service URL of the OCSP responder
165 # NSSOCSPDefaultName is the nickname of the certificate to trust to
166 # sign the OCSP responses.
167 #NSSOCSPDefaultResponder on
168 #NSSOCSPDefaultURL http://example.com/ocsp/status
169 #NSSOCSPDefaultName ocsp-nickname
172 # With SSLRequire you can do per-directory access control based
173 # on arbitrary complex boolean expressions containing server
174 # variable checks and other lookup directives. The syntax is a
175 # mixture between C and Perl. See the mod_nss documentation
178 #NSSRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
179 # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
180 # and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
181 # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
182 # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
183 # or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
186 # SSL Engine Options:
187 # Set various options for the SSL engine.
189 # Translate the client X.509 into a Basic Authorisation. This means that
190 # the standard Auth/DBMAuth methods can be used for access control. The
191 # user name is the `one line' version of the client's X.509 certificate.
192 # Note that no password is obtained from the user. Every entry in the user
193 # file needs this password: `xxj31ZMTZzkVA'.
195 # This exports two additional environment variables: SSL_CLIENT_CERT and
196 # SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
197 # server (always existing) and the client (only existing when client
198 # authentication is used). This can be used to import the certificates
201 # This exports the standard SSL/TLS related `SSL_*' environment variables.
202 # Per default this exportation is switched off for performance reasons,
203 # because the extraction step is an expensive operation and is usually
204 # useless for serving static content. So one usually enables the
205 # exportation for CGI and SSI requests only.
207 # This denies access when "NSSRequireSSL" or "NSSRequire" applied even
208 # under a "Satisfy any" situation, i.e. when it applies access is denied
209 # and no other module can change it.
211 # This enables optimized SSL connection renegotiation handling when SSL
212 # directives are used in per-directory context.
213 #NSSOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
214 <FilesMatch "\.(cgi|shtml|phtml|php3?)$">
215 NSSOptions +StdEnvVars
217 <Directory "/var/www/cgi-bin">
218 NSSOptions +StdEnvVars
221 # Per-Server Logging:
222 # The home of a custom SSL log file. Use this when you want a
223 # compact non-error SSL logfile on a virtual host basis.
224 #CustomLog /home/rcrit/redhat/apache/logs/ssl_request_log \
225 # "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"