A P P E N D I X C |
SSL Configuration Directives for Apache Web Servers |
This appendix lists directives for using Sun Crypto Accelerator 4000 software to configure SSL support for Apache Web Servers. Configure directives in your http.conf file. Refer to the Apache Web Server documentation for more information.
1. SSLPassPhraseDialog exec:program
This directive informs the Apache Web Server that the specified program should be executed to collect the password for key file. program should print the collected password to standard output.
If multiple key files are present, and have common passwords, then program is executed once (each collected password is tried before running program again.)
program is executed with two arguments, the first is the name of the server, in the form servername:port, for example, www.fictional-company.com:443. (Port 443 is the typical port for SSL based web servers.) The second argument is the type of key in the key file (keytype). keytype can be either RSA or DSA.
Note - Because this program can be executed during system startup, be sure to design it to cope with the situation where the console is not a tty device (that is, a tty(3c) returns false). |
The supplied program /opt/SUNWconn/cryptov2/bin/apgetpass can be used for the program executable. This program automatically prompts for the password, suppressing the display of the password as it is entered.
The supplied sslpassword program also automatically searches for passwords in files, which can be used to avoid user interaction when the web server starts up. Passwords for key files are searched for in files named /etc/apache/servername:port.keytype.pass. If this file is not present, then the file /etc/apache/default.pass is used. These password files contain only the unencrypted password on a line by itself.
If not specified, the default behavior uses an internal prompting mechanism. Do not use the default; use the supplied sslpassword program instead, to avoid problems with interaction at system startup.
This directive enables the SSL protocol. It is typically used in a virtual host to enable SSL on a subset of servers. One form commonly used is:
This statement configures the use of SSL for any servers listening on port 443 (the standard HTTPS port). If not present, this protocol is turned off by default.
This directive configures the protocol(s) that the server should use for SSL transactions. The available protocols are listed and described in TABLE C-1:
Updated version of the SSL protocol, supported by most popular web browsers |
|
Update to SSLv3 currently undergoing IETF standardization, with minimal browser support |
|
Using the plus (+) or minus (-) signs, protocols can be added or removed. For example, to disable support for SSLv2, the following directive could be used:
The preceding statement is equivalent to:
Context: Global, virtual host, directory, .htaccess
The SSLCipherSuite directive is used to configure which SSL ciphers are available for use and their preference. In global context or virtual host context, this directive is used during the initial SSL handshake. In per-directory context, it forces an SSL renegotiation to use the named ciphers. The renegotation takes place after the request is read, but before the response is sent.
The cipher-spec is a colon-delimited list of the ciphers described in TABLE C-2. In TABLE C-2, DH refers to Diffie-Hellman and DSS refers to the Digital Signature Standard.
TABLE C-3 lists and describes the aliases that provide macro-like groupings.
The preference of ciphers can be configured using the special characters listed and described in TABLE C-4.
Removes a cipher from the list entirely--it cannot be added again |
|
Adds cipher to list, and pull to current location (possibly demoting it) |
|
The default value of cipher-spec is
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
The default configures all ciphers except anonymous (unauthenticated) Diffie-Hellman, giving preference to ARCFOUR and RSA, and then higher grades of encryption over the lower grades.
This directive specifies the location of the PEM-encoded X.509 certificate file for this server.
This directive specifies the location of the PEM-encoded private key file for this server, corresponding to the certificate configured with the SSLCertificateFile directive.
7. SSLCertificateChainFile file
This directive specifies the location of a file containing the PEM-encoded certificates making up the certification path of the server. You can use the directive to assist clients in verifying the server's certificate when the server's certificate is not directly signed by an authority that the client recognizes.
Certificates in the chain are assumed to be valid for client authentication as well, when client authentication (SSLVerifyClient) is used.
This directive specifies the location of a file containing the concatenation of the certificates for certification authorities (CAs) used for client authentication.
This directive specifies the location of a file containing the concatenation of the certificate revocation lists of CAs used for client authentication.
Context: Global, virtual host, directory, .htaccess
This directive configures the authentication of clients to the server. Note that this is not normally needed for e-commerce applications, but has use in other applications.
Values for level are listed and described in TABLE C-5.
Typically either none or require is used. The default is none.
Context: Global, virtual host, directory, .htaccess
This directive specifies the maximum certificate chain depth that the server will allow for client certificates. A value of 0 means that only self-signed certificates are eligible, whereas a value of 1 means that client certificates must be signed by a CA known directly to the server (through the SSLCACertificateFile). Larger values permit delegation of the CA.
This directive specifies a log file where SSL-specific information will be logged. If not specified (default), then no SSL-specific information will be logged.
This directive specifies the verbosity of the information logged in the SSL log file. Values for level are listed and described in TABLE C-6.
No logging, but error messages are still sent to the standard Apache error log |
|
Context: Global, virtual host, directory, .htaccess
This directive configures SSL runtime options on a per-directory basis. Options can be added to the current configuration by prefixing them with a plus sign (+), or removed using a minus sign (-). If multiple options could apply to a directory, the most restrictive option is used; the options are not merged.
Options are listed and described in TABLE C-7.
This directive forbids access in a given directory unless HTTPS is used. Use the directive to guard against misconfigurations that might otherwise leave a directory's contents available to unauthenticated and unencrypted accesses.
Copyright © 2004, Sun Microsystems, Inc. All rights reserved.