mod_ssl.html.en revision e7939daf37fd0b91dff4506bde6c9be22046fa21
97a9a944b5887e91042b019776c41d5dd74557aferikabele<?xml version="1.0" encoding="ISO-8859-1"?>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
97a9a944b5887e91042b019776c41d5dd74557aferikabele<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive This file is generated from xml source: DO NOT EDIT
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fe64b2ba25510d8c9dba5560a2d537763566cf40nd -->
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<title>mod_ssl - Apache HTTP Server</title>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<link href="/images/favicon.ico" rel="shortcut icon" /></head>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<body>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div id="page-header">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p class="apache">Apache HTTP Server Version 2.1</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<img alt="" src="/images/feather.gif" /></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div id="path">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs-project/">Documentation</a> &gt; <a href="../">Version 2.1</a> &gt; <a href="./">Modules</a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div id="page-content">
a63f0ab647ad2ab72efc9bea7a66e24e9ebc5cc2nd<div id="preamble"><h1>Apache Module mod_ssl</h1>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="toplang">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p><span>Available Languages: </span><a href="/en/mod/mod_ssl.html" title="English">&nbsp;en&nbsp;</a></p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Strong cryptography using the Secure Sockets
fe64b2ba25510d8c9dba5560a2d537763566cf40ndLayer (SSL) and Transport Layer Security (TLS) protocols</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>ssl_module</td></tr>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>mod_ssl.c</td></tr></table>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<h3>Summary</h3>
58699879a562774640b95e9eedfd891f336e38c2nd
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<p>This module provides SSL v2/v3 and TLS v1 support for the Apache
117c1f888a14e73cdd821dc6c23eb0411144a41cndHTTP Server. It was contributed by Ralf S. Engeschall based on his
117c1f888a14e73cdd821dc6c23eb0411144a41cndmod_ssl project and originally derived from work by Ben Laurie.</p>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<p>This module relies on <a href="http://www.openssl.org/">OpenSSL</a>
117c1f888a14e73cdd821dc6c23eb0411144a41cndto provide the cryptography engine.</p>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<p>Further details, discussion, and examples are provided in the
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<a href="/ssl/">SSL documentation</a>.</p>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd</div>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<div id="quickview"><h3 class="directives">Directives</h3>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<ul id="toc">
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcacertificatefile">SSLCACertificateFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcacertificatepath">SSLCACertificatePath</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcarevocationfile">SSLCARevocationFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcarevocationpath">SSLCARevocationPath</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcertificatechainfile">SSLCertificateChainFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcertificatefile">SSLCertificateFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslciphersuite">SSLCipherSuite</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslcryptodevice">SSLCryptoDevice</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslengine">SSLEngine</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslhonorcipherorder">SSLHonorCipherOrder</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslmutex">SSLMutex</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#ssloptions">SSLOptions</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslpassphrasedialog">SSLPassPhraseDialog</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslprotocol">SSLProtocol</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxyciphersuite">SSLProxyCipherSuite</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxyengine">SSLProxyEngine</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxyprotocol">SSLProxyProtocol</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxyverify">SSLProxyVerify</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslproxyverifydepth">SSLProxyVerifyDepth</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslrandomseed">SSLRandomSeed</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslrequire">SSLRequire</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslrequiressl">SSLRequireSSL</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslsessioncache">SSLSessionCache</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslsessioncachetimeout">SSLSessionCacheTimeout</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslusername">SSLUserName</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslverifyclient">SSLVerifyClient</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#sslverifydepth">SSLVerifyDepth</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd</ul>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<h3>Topics</h3>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<ul id="topics">
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#envvars">Environment Variables</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/down.gif" /> <a href="#logformats">Custom Log Formats</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd</ul></div>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<div class="section">
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<h2><a name="envvars" id="envvars">Environment Variables</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>This module provides a lot of SSL information as additional environment
fe64b2ba25510d8c9dba5560a2d537763566cf40ndvariables to the SSI and CGI namespace. The generated variables are listed in
fe64b2ba25510d8c9dba5560a2d537763566cf40ndthe table below. For backward compatibility the information can
fe64b2ba25510d8c9dba5560a2d537763566cf40ndbe made available under different names, too. Look in the <a href="/ssl/ssl_compat.html">Compatibility</a> chapter for details on the
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcompatibility variables.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="bordered">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <th>Variable Name:</th>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <th>Value Type:</th>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <th>Description:</th>
c985aca104389df30d6ec0a637ce0ccaac904362nd</tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>HTTPS</code></td> <td>flag</td> <td>HTTPS is being used.</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_PROTOCOL</code></td> <td>string</td> <td>The SSL protocol version (SSLv2, SSLv3, TLSv1)</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SESSION_ID</code></td> <td>string</td> <td>The hex-encoded SSL session id</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CIPHER</code></td> <td>string</td> <td>The cipher specification name</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CIPHER_EXPORT</code></td> <td>string</td> <td><code>true</code> if cipher is an export cipher</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CIPHER_USEKEYSIZE</code></td> <td>number</td> <td>Number of cipher bits (actually used)</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td> <td>number</td> <td>Number of cipher bits (possible)</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_VERSION_INTERFACE</code></td> <td>string</td> <td>The mod_ssl program version</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_VERSION_LIBRARY</code></td> <td>string</td> <td>The OpenSSL program version</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_M_VERSION</code></td> <td>string</td> <td>The version of the client certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_M_SERIAL</code></td> <td>string</td> <td>The serial of the client certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_S_DN</code></td> <td>string</td> <td>Subject DN in client's certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>string</td> <td>Component of client's Subject DN</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_I_DN</code></td> <td>string</td> <td>Issuer DN of client's certificate</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_CLIENT_I_DN_</code><em>x509</em></td> <td>string</td> <td>Component of client's Issuer DN</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_V_START</code></td> <td>string</td> <td>Validity of client's certificate (start time)</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_V_END</code></td> <td>string</td> <td>Validity of client's certificate (end time)</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_A_SIG</code></td> <td>string</td> <td>Algorithm used for the signature of client's certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_A_KEY</code></td> <td>string</td> <td>Algorithm used for the public key of client's certificate</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_CLIENT_CERT</code></td> <td>string</td> <td>PEM-encoded client certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em></td> <td>string</td> <td>PEM-encoded certificates in client certificate chain</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_CLIENT_VERIFY</code></td> <td>string</td> <td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> or <code>FAILED:</code><em>reason</em></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SERVER_M_VERSION</code></td> <td>string</td> <td>The version of the server certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SERVER_M_SERIAL</code></td> <td>string</td> <td>The serial of the server certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SERVER_S_DN</code></td> <td>string</td> <td>Subject DN in server's certificate</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_SERVER_S_DN_</code><em>x509</em></td> <td>string</td> <td>Component of server's Subject DN</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SERVER_I_DN</code></td> <td>string</td> <td>Issuer DN of server's certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SERVER_I_DN_</code><em>x509</em></td> <td>string</td> <td>Component of server's Issuer DN</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SERVER_V_START</code></td> <td>string</td> <td>Validity of server's certificate (start time)</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_SERVER_V_END</code></td> <td>string</td> <td>Validity of server's certificate (end time)</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_SERVER_A_SIG</code></td> <td>string</td> <td>Algorithm used for the signature of server's certificate</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SSL_SERVER_A_KEY</code></td> <td>string</td> <td>Algorithm used for the public key of server's certificate</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>SSL_SERVER_CERT</code></td> <td>string</td> <td>PEM-encoded server certificate</td></tr>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess</table>
fb77c505254b6e9c925e23e734463e87574f8f40kess
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p><em>x509</em> specifies a component of an X.509 DN; one of
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>. In Apache 2.1 and
06ba4a61654b3763ad65f52283832ebf058fdf1cslivelater, <em>x509</em> may also include a numeric <code>_n</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslivesuffix. If the DN in question contains multiple attributes of the
fb77c505254b6e9c925e23e734463e87574f8f40kesssame name, this suffix is used as an index to select a particular
fb77c505254b6e9c925e23e734463e87574f8f40kessattribute. For example, where the server certificate subject DN
06ba4a61654b3763ad65f52283832ebf058fdf1csliveincluded two OU fields, <code>SSL_SERVER_S_DN_OU_0</code> and
fb77c505254b6e9c925e23e734463e87574f8f40kess<code>SSL_SERVER_S_DN_OU_1</code> could be used to reference each.</p>
fb77c505254b6e9c925e23e734463e87574f8f40kess
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="section">
130d299c4b2b15be45532a176604c71fdc7bea5bnd<h2><a name="logformats" id="logformats">Custom Log Formats</a></h2>
130d299c4b2b15be45532a176604c71fdc7bea5bnd
130d299c4b2b15be45532a176604c71fdc7bea5bnd<p>When <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> is built into Apache or at least
130d299c4b2b15be45532a176604c71fdc7bea5bndloaded (under DSO situation) additional functions exist for the <a href="mod_log_config.html#formats">Custom Log Format</a> of
130d299c4b2b15be45532a176604c71fdc7bea5bnd<code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code>. First there is an
ef8e89e090461194ecadd31e8796a2c51e0531a2kessadditional ``<code>%{</code><em>varname</em><code>}x</code>''
130d299c4b2b15be45532a176604c71fdc7bea5bndeXtension format function which can be used to expand any variables
130d299c4b2b15be45532a176604c71fdc7bea5bndprovided by any module, especially those provided by mod_ssl which can
130d299c4b2b15be45532a176604c71fdc7bea5bndyou find in the above table.</p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndFor backward compatibility there is additionally a special
fe64b2ba25510d8c9dba5560a2d537763566cf40nd``<code>%{</code><em>name</em><code>}c</code>'' cryptography format function
fe64b2ba25510d8c9dba5560a2d537763566cf40ndprovided. Information about this function is provided in the <a href="/ssl/ssl_compat.html">Compatibility</a> chapter.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndCustomLog logs/ssl_request_log \
fe64b2ba25510d8c9dba5560a2d537763566cf40nd "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</code></p></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLCACertificateFile" id="SSLCACertificateFile">SSLCACertificateFile</a> <a name="sslcacertificatefile" id="sslcacertificatefile">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA Certificates
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessfor Client Auth</td></tr>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCACertificateFile <em>file-path</em></code></td></tr>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndThis directive sets the <em>all-in-one</em> file where you can assemble the
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndCertificates of Certification Authorities (CA) whose <em>clients</em> you deal
06ba4a61654b3763ad65f52283832ebf058fdf1cslivewith. These are used for Client Authentication. Such a file is simply the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveconcatenation of the various PEM-encoded Certificate files, in order of
06ba4a61654b3763ad65f52283832ebf058fdf1cslivepreference. This can be used alternatively and/or additionally to
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLCACertificateFile /usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</code></p></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd
130d299c4b2b15be45532a176604c71fdc7bea5bnd</div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="directive-section"><h2><a name="SSLCACertificatePath" id="SSLCACertificatePath">SSLCACertificatePath</a> <a name="sslcacertificatepath" id="sslcacertificatepath">Directive</a></h2>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<table class="directive">
130d299c4b2b15be45532a176604c71fdc7bea5bnd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded CA Certificates for
130d299c4b2b15be45532a176604c71fdc7bea5bndClient Auth</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCACertificatePath <em>directory-path</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive sets the directory where you keep the Certificates of
fe64b2ba25510d8c9dba5560a2d537763566cf40ndCertification Authorities (CAs) whose clients you deal with. These are used to
fe64b2ba25510d8c9dba5560a2d537763566cf40ndverify the client certificate on Client Authentication.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThe files in this directory have to be PEM-encoded and are accessed through
fe64b2ba25510d8c9dba5560a2d537763566cf40ndhash filenames. So usually you can't just place the Certificate files
fe64b2ba25510d8c9dba5560a2d537763566cf40ndthere: you also have to create symbolic links named
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<em>hash-value</em><code>.N</code>. And you should always make sure this directory
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcontains the appropriate symbolic links. Use the <code>Makefile</code> which
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcomes with mod_ssl to accomplish this task.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLCACertificatePath /usr/local/apache2/conf/ssl.crt/
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</code></p></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLCARevocationFile" id="SSLCARevocationFile">SSLCARevocationFile</a> <a name="sslcarevocationfile" id="sslcarevocationfile">Directive</a></h2>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<table class="directive">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA CRLs for
06ba4a61654b3763ad65f52283832ebf058fdf1csliveClient Auth</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCARevocationFile <em>file-path</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndThis directive sets the <em>all-in-one</em> file where you can
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndassemble the Certificate Revocation Lists (CRL) of Certification
fe64b2ba25510d8c9dba5560a2d537763566cf40ndAuthorities (CA) whose <em>clients</em> you deal with. These are used
fe64b2ba25510d8c9dba5560a2d537763566cf40ndfor Client Authentication. Such a file is simply the concatenation of
fe64b2ba25510d8c9dba5560a2d537763566cf40ndthe various PEM-encoded CRL files, in order of preference. This can be
fe64b2ba25510d8c9dba5560a2d537763566cf40ndused alternatively and/or additionally to <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code>.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLCARevocationFile /usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl
fb77c505254b6e9c925e23e734463e87574f8f40kess</code></p></div>
fb77c505254b6e9c925e23e734463e87574f8f40kess
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLCARevocationPath" id="SSLCARevocationPath">SSLCARevocationPath</a> <a name="sslcarevocationpath" id="sslcarevocationpath">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
c985aca104389df30d6ec0a637ce0ccaac904362nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded CA CRLs for
fe64b2ba25510d8c9dba5560a2d537763566cf40ndClient Auth</td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCARevocationPath <em>directory-path</em></code></td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess</table>
fb77c505254b6e9c925e23e734463e87574f8f40kess<p>
fb77c505254b6e9c925e23e734463e87574f8f40kessThis directive sets the directory where you keep the Certificate Revocation
fb77c505254b6e9c925e23e734463e87574f8f40kessLists (CRL) of Certification Authorities (CAs) whose clients you deal with.
58699879a562774640b95e9eedfd891f336e38c2ndThese are used to revoke the client certificate on Client Authentication.</p>
58699879a562774640b95e9eedfd891f336e38c2nd<p>
58699879a562774640b95e9eedfd891f336e38c2ndThe files in this directory have to be PEM-encoded and are accessed through
58699879a562774640b95e9eedfd891f336e38c2ndhash filenames. So usually you have not only to place the CRL files there.
58699879a562774640b95e9eedfd891f336e38c2ndAdditionally you have to create symbolic links named
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<em>hash-value</em><code>.rN</code>. And you should always make sure this directory
6b64034fa2a644ba291c484c0c01c7df5b8d982ckesscontains the appropriate symbolic links. Use the <code>Makefile</code> which
58699879a562774640b95e9eedfd891f336e38c2ndcomes with <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> to accomplish this task.</p>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<div class="example"><h3>Example</h3><p><code>
58699879a562774640b95e9eedfd891f336e38c2ndSSLCARevocationPath /usr/local/apache2/conf/ssl.crl/
58699879a562774640b95e9eedfd891f336e38c2nd</code></p></div>
fb77c505254b6e9c925e23e734463e87574f8f40kess
fb77c505254b6e9c925e23e734463e87574f8f40kess</div>
fb77c505254b6e9c925e23e734463e87574f8f40kess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
58699879a562774640b95e9eedfd891f336e38c2nd<div class="directive-section"><h2><a name="SSLCertificateChainFile" id="SSLCertificateChainFile">SSLCertificateChainFile</a> <a name="sslcertificatechainfile" id="sslcertificatechainfile">Directive</a></h2>
58699879a562774640b95e9eedfd891f336e38c2nd<table class="directive">
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of PEM-encoded Server CA Certificates</td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCertificateChainFile <em>file-path</em></code></td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
58699879a562774640b95e9eedfd891f336e38c2nd</table>
58699879a562774640b95e9eedfd891f336e38c2nd<p>
58699879a562774640b95e9eedfd891f336e38c2ndThis directive sets the optional <em>all-in-one</em> file where you can
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessassemble the certificates of Certification Authorities (CA) which form the
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndcertificate chain of the server certificate. This starts with the issuing CA
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndcertificate of of the server certificate and can range up to the root CA
6b64034fa2a644ba291c484c0c01c7df5b8d982ckesscertificate. Such a file is simply the concatenation of the various
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessPEM-encoded CA Certificate files, usually in certificate chain order.</p>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<p>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessThis should be used alternatively and/or additionally to <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> for explicitly
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndconstructing the server certificate chain which is sent to the browser
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndin addition to the server certificate. It is especially useful to
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndavoid conflicts with CA certificates when using client
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndauthentication. Because although placing a CA certificate of the
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndserver certificate chain into <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> has the same effect
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndfor the certificate chain construction, it has the side-effect that
4a7affccb2f1f5b94cab395e1bf3825aed715ebcndclient certificates issued by this same CA certificate are also
ec9b02c6869b75575ada34c800672162833a2c06ndaccepted on client authentication. That's usually not one expect.</p>
58699879a562774640b95e9eedfd891f336e38c2nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndBut be careful: Providing the certificate chain works only if you are using a
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<em>single</em> (either RSA <em>or</em> DSA) based server certificate. If you are
fe64b2ba25510d8c9dba5560a2d537763566cf40ndusing a coupled RSA+DSA certificate pair, this will work only if actually both
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcertificates use the <em>same</em> certificate chain. Else the browsers will be
fe64b2ba25510d8c9dba5560a2d537763566cf40ndconfused in this situation.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLCertificateChainFile /usr/local/apache2/conf/ssl.crt/ca.crt
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</code></p></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLCertificateFile" id="SSLCertificateFile">SSLCertificateFile</a> <a name="sslcertificatefile" id="sslcertificatefile">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Server PEM-encoded X.509 Certificate file</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCertificateFile <em>file-path</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fb77c505254b6e9c925e23e734463e87574f8f40kessThis directive points to the PEM-encoded Certificate file for the server and
fb77c505254b6e9c925e23e734463e87574f8f40kessoptionally also to the corresponding RSA or DSA Private Key file for it
fb77c505254b6e9c925e23e734463e87574f8f40kess(contained in the same file). If the contained Private Key is encrypted the
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessPass Phrase dialog is forced at startup time. This directive can be used up to
06ba4a61654b3763ad65f52283832ebf058fdf1cslivetwo times (referencing different filenames) when both a RSA and a DSA based
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessserver certificate is used in parallel.</p>
10673857794a4b3d9568ca2d983722a87ed352f1rbowen<div class="example"><h3>Example</h3><p><code>
fb77c505254b6e9c925e23e734463e87574f8f40kessSSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
f4f4505fedd39d92f787066b0ba8ec912e778784nd</code></p></div>
10673857794a4b3d9568ca2d983722a87ed352f1rbowen
10673857794a4b3d9568ca2d983722a87ed352f1rbowen</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fb77c505254b6e9c925e23e734463e87574f8f40kess<div class="directive-section"><h2><a name="SSLCertificateKeyFile" id="SSLCertificateKeyFile">SSLCertificateKeyFile</a> <a name="sslcertificatekeyfile" id="sslcertificatekeyfile">Directive</a></h2>
fb77c505254b6e9c925e23e734463e87574f8f40kess<table class="directive">
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Server PEM-encoded Private Key file</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCertificateKeyFile <em>file-path</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis directive points to the PEM-encoded Private Key file for the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveserver. If the Private Key is not combined with the Certificate in the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<code class="directive">SSLCertificateFile</code>, use this additional directive to
06ba4a61654b3763ad65f52283832ebf058fdf1cslivepoint to the file with the stand-alone Private Key. When
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<code class="directive">SSLCertificateFile</code> is used and the file
06ba4a61654b3763ad65f52283832ebf058fdf1cslivecontains both the Certificate and the Private Key this directive need
06ba4a61654b3763ad65f52283832ebf058fdf1cslivenot be used. But we strongly discourage this practice. Instead we
1f53e295ebd19aed1767d12da7abfab9936c148cjerenkrantzrecommend you to separate the Certificate and the Private Key. If the
1f53e295ebd19aed1767d12da7abfab9936c148cjerenkrantzcontained Private Key is encrypted, the Pass Phrase dialog is forced
cb3a1082aec4b3b4f4ed238c93c3cc54933a7f0endat startup time. This directive can be used up to two times
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess(referencing different filenames) when both a RSA and a DSA based
1f53e295ebd19aed1767d12da7abfab9936c148cjerenkrantzprivate key is used in parallel.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
97a9a944b5887e91042b019776c41d5dd74557aferikabele</div>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<div class="directive-section"><h2><a name="SSLCipherSuite" id="SSLCipherSuite">SSLCipherSuite</a> <a name="sslciphersuite" id="sslciphersuite">Directive</a></h2>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<table class="directive">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cipher Suite available for negotiation in SSL
06ba4a61654b3763ad65f52283832ebf058fdf1cslivehandshake</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCipherSuite <em>cipher-spec</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP</code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele</table>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis complex directive uses a colon-separated <em>cipher-spec</em> string
06ba4a61654b3763ad65f52283832ebf058fdf1csliveconsisting of OpenSSL cipher specifications to configure the Cipher Suite the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveclient is permitted to negotiate in the SSL handshake phase. Notice that this
06ba4a61654b3763ad65f52283832ebf058fdf1cslivedirective can be used both in per-server and per-directory context. In
cb3a1082aec4b3b4f4ed238c93c3cc54933a7f0endper-server context it applies to the standard SSL handshake when a connection
06ba4a61654b3763ad65f52283832ebf058fdf1csliveis established. In per-directory context it forces a SSL renegotation with the
06ba4a61654b3763ad65f52283832ebf058fdf1cslivereconfigured Cipher Suite after the HTTP request was read but before the HTTP
06ba4a61654b3763ad65f52283832ebf058fdf1csliveresponse is sent.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveAn SSL cipher specification in <em>cipher-spec</em> is composed of 4 major
97a9a944b5887e91042b019776c41d5dd74557aferikabeleattributes plus a few extra minor ones:</p>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<ul>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><em>Key Exchange Algorithm</em>:<br />
06ba4a61654b3763ad65f52283832ebf058fdf1cslive RSA or Diffie-Hellman variants.
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><em>Authentication Algorithm</em>:<br />
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd RSA, Diffie-Hellman, DSS or none.
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</li>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<li><em>Cipher/Encryption Algorithm</em>:<br />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd DES, Triple-DES, RC4, RC2, IDEA or none.
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><em>MAC Digest Algorithm</em>:<br />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd MD5, SHA or SHA1.
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</ul>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>An SSL cipher can also be an export cipher and is either a SSLv2 or SSLv3/TLSv1
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcipher (here TLSv1 is equivalent to SSLv3). To specify which ciphers to use,
fe64b2ba25510d8c9dba5560a2d537763566cf40ndone can either specify all the Ciphers, one at a time, or use aliases to
fe64b2ba25510d8c9dba5560a2d537763566cf40ndspecify the preference and order for the ciphers (see <a href="#table1">Table
fe64b2ba25510d8c9dba5560a2d537763566cf40nd1</a>).</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="bordered">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th>Tag</th> <th>Description</th></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td colspan="2"><em>Key Exchange Algorithm:</em></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>kRSA</code></td> <td>RSA key exchange</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>kDHr</code></td> <td>Diffie-Hellman key exchange with RSA key</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>kDHd</code></td> <td>Diffie-Hellman key exchange with DSA key</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>kEDH</code></td> <td>Ephemeral (temp.key) Diffie-Hellman key exchange (no cert)</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td colspan="2"><em>Authentication Algorithm:</em></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>aNULL</code></td> <td>No authentication</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>aRSA</code></td> <td>RSA authentication</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>aDSS</code></td> <td>DSS authentication</td> </tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><td><code>aDH</code></td> <td>Diffie-Hellman authentication</td></tr>
cb3a1082aec4b3b4f4ed238c93c3cc54933a7f0end<tr><td colspan="2"><em>Cipher Encoding Algorithm:</em></td></tr>
cb3a1082aec4b3b4f4ed238c93c3cc54933a7f0end<tr><td><code>eNULL</code></td> <td>No encoding</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>DES</code></td> <td>DES encoding</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>3DES</code></td> <td>Triple-DES encoding</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>RC4</code></td> <td>RC4 encoding</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>RC2</code></td> <td>RC2 encoding</td> </tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><td><code>IDEA</code></td> <td>IDEA encoding</td> </tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><td colspan="2"><em>MAC Digest Algorithm</em>:</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><td><code>MD5</code></td> <td>MD5 hash function</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>SHA1</code></td> <td>SHA1 hash function</td></tr>
1c9f7cdf2e1bc8313e559a96638c3c36e3143791yoshiki<tr><td><code>SHA</code></td> <td>SHA hash function</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td colspan="2"><em>Aliases:</em></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>SSLv2</code></td> <td>all SSL version 2.0 ciphers</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>SSLv3</code></td> <td>all SSL version 3.0 ciphers</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>TLSv1</code></td> <td>all TLS version 1.0 ciphers</td> </tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><td><code>EXP</code></td> <td>all export ciphers</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>EXPORT40</code></td> <td>all 40-bit export ciphers only</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>EXPORT56</code></td> <td>all 56-bit export ciphers only</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>LOW</code></td> <td>all low strength ciphers (no export, single DES)</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>MEDIUM</code></td> <td>all ciphers with 128 bit encryption</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>HIGH</code></td> <td>all ciphers using Triple-DES</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>RSA</code></td> <td>all ciphers using RSA key exchange</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>DH</code></td> <td>all ciphers using Diffie-Hellman key exchange</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>EDH</code></td> <td>all ciphers using Ephemeral Diffie-Hellman key exchange</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>ADH</code></td> <td>all ciphers using Anonymous Diffie-Hellman key exchange</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>DSS</code></td> <td>all ciphers using DSS authentication</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>NULL</code></td> <td>all ciphers using no encryption</td> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveNow where this becomes interesting is that these can be put together
06ba4a61654b3763ad65f52283832ebf058fdf1csliveto specify the order and ciphers you wish to use. To speed this up
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessthere are also aliases (<code>SSLv2, SSLv3, TLSv1, EXP, LOW, MEDIUM,
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHIGH</code>) for certain groups of ciphers. These tags can be joined
97a9a944b5887e91042b019776c41d5dd74557aferikabeletogether with prefixes to form the <em>cipher-spec</em>. Available
cb3a1082aec4b3b4f4ed238c93c3cc54933a7f0endprefixes are:</p>
cb3a1082aec4b3b4f4ed238c93c3cc54933a7f0end<ul>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li>none: add cipher to list</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>+</code>: add ciphers to list and pull them to current location in list</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>-</code>: remove cipher from list (can be added later again)</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>!</code>: kill cipher from list completely (can <strong>not</strong> be added later again)</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</ul>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>A simpler way to look at all of this is to use the ``<code>openssl ciphers
fe64b2ba25510d8c9dba5560a2d537763566cf40nd-v</code>'' command which provides a nice way to successively create the
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcorrect <em>cipher-spec</em> string. The default <em>cipher-spec</em> string
fe64b2ba25510d8c9dba5560a2d537763566cf40ndis ``<code>ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP</code>'' which
fe64b2ba25510d8c9dba5560a2d537763566cf40ndmeans the following: first, remove from consideration any ciphers that do not
fe64b2ba25510d8c9dba5560a2d537763566cf40ndauthenticate, i.e. for SSL only the Anonymous Diffie-Hellman ciphers. Next,
fb77c505254b6e9c925e23e734463e87574f8f40kessuse ciphers using RC4 and RSA. Next include the high, medium and then the low
fe64b2ba25510d8c9dba5560a2d537763566cf40ndsecurity ciphers. Finally <em>pull</em> all SSLv2 and export ciphers to the
fb77c505254b6e9c925e23e734463e87574f8f40kessend of the list.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><pre>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd$ openssl ciphers -v 'ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP'
fe64b2ba25510d8c9dba5560a2d537763566cf40ndNULL-SHA SSLv3 Kx=RSA Au=RSA Enc=None Mac=SHA1
fe64b2ba25510d8c9dba5560a2d537763566cf40ndNULL-MD5 SSLv3 Kx=RSA Au=RSA Enc=None Mac=MD5
c985aca104389df30d6ec0a637ce0ccaac904362ndEDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
fe64b2ba25510d8c9dba5560a2d537763566cf40nd... ... ... ... ...
70ada6b79498c38ab85985a3d30ee11248ce897byoshikiEXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
fb77c505254b6e9c925e23e734463e87574f8f40kessEXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export
fb77c505254b6e9c925e23e734463e87574f8f40kessEXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess</pre></div>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<p>The complete list of particular RSA &amp; DH ciphers for SSL is given in <a href="#table2">Table 2</a>.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</code></p></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="bordered">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th>Cipher-Tag</th> <th>Protocol</th> <th>Key Ex.</th> <th>Auth.</th> <th>Enc.</th> <th>MAC</th> <th>Type</th> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td colspan="7"><em>RSA Ciphers:</em></td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>3DES(168)</td> <td>SHA1</td> <td /> </tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><td><code>DES-CBC3-MD5</code></td> <td>SSLv2</td> <td>RSA</td> <td>RSA</td> <td>3DES(168)</td> <td>MD5</td> <td /> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>IDEA-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>IDEA(128)</td> <td>SHA1</td> <td /> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>RC4-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>RC4(128)</td> <td>SHA1</td> <td /> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>RC4-MD5</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>RC4(128)</td> <td>MD5</td> <td /> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>IDEA-CBC-MD5</code></td> <td>SSLv2</td> <td>RSA</td> <td>RSA</td> <td>IDEA(128)</td> <td>MD5</td> <td /> </tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><td><code>RC2-CBC-MD5</code></td> <td>SSLv2</td> <td>RSA</td> <td>RSA</td> <td>RC2(128)</td> <td>MD5</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>RC4-MD5</code></td> <td>SSLv2</td> <td>RSA</td> <td>RSA</td> <td>RC4(128)</td> <td>MD5</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>DES-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>DES(56)</td> <td>SHA1</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>RC4-64-MD5</code></td> <td>SSLv2</td> <td>RSA</td> <td>RSA</td> <td>RC4(64)</td> <td>MD5</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>DES-CBC-MD5</code></td> <td>SSLv2</td> <td>RSA</td> <td>RSA</td> <td>DES(56)</td> <td>MD5</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-RC2-CBC-MD5</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>RC2(40)</td> <td>MD5</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-RC4-MD5</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>RC4(40)</td> <td>MD5</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-RC2-CBC-MD5</code></td> <td>SSLv2</td> <td>RSA(512)</td> <td>RSA</td> <td>RC2(40)</td> <td>MD5</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-RC4-MD5</code></td> <td>SSLv2</td> <td>RSA(512)</td> <td>RSA</td> <td>RC4(40)</td> <td>MD5</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>NULL-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>None</td> <td>SHA1</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>NULL-MD5</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>None</td> <td>MD5</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td colspan="7"><em>Diffie-Hellman Ciphers:</em></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>ADH-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>3DES(168)</td> <td>SHA1</td> <td /> </tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><td><code>ADH-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>DES(56)</td> <td>SHA1</td> <td /> </tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><td><code>ADH-RC4-MD5</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>RC4(128)</td> <td>MD5</td> <td /> </tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><td><code>EDH-RSA-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>RSA</td> <td>3DES(168)</td> <td>SHA1</td> <td /> </tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><td><code>EDH-DSS-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>DSS</td> <td>3DES(168)</td> <td>SHA1</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EDH-RSA-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>RSA</td> <td>DES(56)</td> <td>SHA1</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EDH-DSS-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>DSS</td> <td>DES(56)</td> <td>SHA1</td> <td /> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-EDH-RSA-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>RSA</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-EDH-DSS-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>DSS</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-ADH-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>None</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><td><code>EXP-ADH-RC4-MD5</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>None</td> <td>RC4(40)</td> <td>MD5</td> <td> export</td> </tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess</table>
fb77c505254b6e9c925e23e734463e87574f8f40kess
fb77c505254b6e9c925e23e734463e87574f8f40kess</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLCryptoDevice" id="SSLCryptoDevice">SSLCryptoDevice</a> <a name="sslcryptodevice" id="sslcryptodevice">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable use of a cryptographic hardware accelerator</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLCryptoDevice <em>engine</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLCryptoDevice builtin</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available if mod_ssl is built using <code>-DSSL_ENGINE_EXPERIMENTAL</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive enables use of a cryptographic hardware accelerator
fe64b2ba25510d8c9dba5560a2d537763566cf40ndboard to offload some of the SSL processing overhead. This directive
06ba4a61654b3763ad65f52283832ebf058fdf1cslivecan only be used if the SSL toolkit is built with "engine" support;
06ba4a61654b3763ad65f52283832ebf058fdf1csliveOpenSSL 0.9.7 and later releases have "engine" support by default, the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveseparate "-engine" releases of OpenSSL 0.9.6 must be used.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>To discover which engine names are supported, run the command
06ba4a61654b3763ad65f52283832ebf058fdf1cslive"<code>openssl engine</code>".</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="example"><h3>Example</h3><p><code>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd# For a Broadcom accelerator:<br />
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSLCryptoDevice ubsec
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</code></p></div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess</div>
fb77c505254b6e9c925e23e734463e87574f8f40kess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLEngine" id="SSLEngine">SSLEngine</a> <a name="sslengine" id="sslengine">Directive</a></h2>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<table class="directive">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SSL Engine Operation Switch</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLEngine on|off</code></td></tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLEngine off</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive toggles the usage of the SSL/TLS Protocol Engine. This
fe64b2ba25510d8c9dba5560a2d537763566cf40ndis usually used inside a <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> section to enable SSL/TLS for a
fe64b2ba25510d8c9dba5560a2d537763566cf40ndparticular virtual host. By default the SSL/TLS Protocol Engine is
fe64b2ba25510d8c9dba5560a2d537763566cf40nddisabled for both the main server and all configured virtual hosts.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd&lt;VirtualHost _default_:443&gt;<br />
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLEngine on<br />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd...<br />
06ba4a61654b3763ad65f52283832ebf058fdf1cslive&lt;/VirtualHost&gt;
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</code></p></div>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive</div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<div class="directive-section"><h2><a name="SSLHonorCipherOrder" id="SSLHonorCipherOrder">SSLHonorCipherOrder</a> <a name="sslhonorcipherorder" id="sslhonorcipherorder">Directive</a></h2>
fb77c505254b6e9c925e23e734463e87574f8f40kess<table class="directive">
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Option to prefer the server's cipher preference order</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLHonorCiperOrder <em>flag</em></code></td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.1 and later, if using OpenSSL 0.9.7 or later</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</table>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<p>When choosing a cipher during an SSLv3 or TLSv1 handshake, normally
130d299c4b2b15be45532a176604c71fdc7bea5bndthe client's preference is used. If this directive is enabled, the
130d299c4b2b15be45532a176604c71fdc7bea5bndserver's preference will be used instead.</p>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="example"><h3>Example</h3><p><code>
130d299c4b2b15be45532a176604c71fdc7bea5bndSSLHonorCipherOrder on
130d299c4b2b15be45532a176604c71fdc7bea5bnd</code></p></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="directive-section"><h2><a name="SSLMutex" id="SSLMutex">SSLMutex</a> <a name="sslmutex" id="sslmutex">Directive</a></h2>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<table class="directive">
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Semaphore for internal mutual exclusion of
fb77c505254b6e9c925e23e734463e87574f8f40kessoperations</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLMutex <em>type</em></code></td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLMutex none</code></td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
b06660a3ed3d885e15d99c0209a46c4657df33fbrbowen<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndThis configures the SSL engine's semaphore (aka. lock) which is used for mutual
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndexclusion of operations which have to be done in a synchronized way between the
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndpre-forked Apache server processes. This directive can only be used in the
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndglobal server context because it's only useful to have one global mutex.
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndThis directive is designed to closely match the
fb77c505254b6e9c925e23e734463e87574f8f40kess<a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#acceptmutex">AcceptMutex</a> directive</p>
fb77c505254b6e9c925e23e734463e87574f8f40kess<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThe following Mutex <em>types</em> are available:</p>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<ul>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<li><code>none | no</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This is the default where no Mutex is used at all. Use it at your own
06ba4a61654b3763ad65f52283832ebf058fdf1cslive risk. But because currently the Mutex is mainly used for synchronizing
06ba4a61654b3763ad65f52283832ebf058fdf1cslive write access to the SSL Session Cache you can live without it as long
130d299c4b2b15be45532a176604c71fdc7bea5bnd as you accept a sometimes garbled Session Cache. So it's not recommended
130d299c4b2b15be45532a176604c71fdc7bea5bnd to leave this the default. Instead configure a real Mutex.</p></li>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<li><code>posixsem</code>
130d299c4b2b15be45532a176604c71fdc7bea5bnd <p>
130d299c4b2b15be45532a176604c71fdc7bea5bnd This is an elegant Mutex variant where a Posix Semaphore is used when possible.
130d299c4b2b15be45532a176604c71fdc7bea5bnd It is only available when the underlying platform
130d299c4b2b15be45532a176604c71fdc7bea5bnd and APR supports it.</p></li>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<li><code>sysvsem</code>
130d299c4b2b15be45532a176604c71fdc7bea5bnd <p>
130d299c4b2b15be45532a176604c71fdc7bea5bnd This is a somewhat elegant Mutex variant where a SystemV IPC Semaphore is used when
130d299c4b2b15be45532a176604c71fdc7bea5bnd possible. It is possible to "leak" SysV semaphores if processes crash before
130d299c4b2b15be45532a176604c71fdc7bea5bnd the semaphore is removed. It is only available when the underlying platform
130d299c4b2b15be45532a176604c71fdc7bea5bnd and APR supports it.</p></li>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<li><code>sem</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This directive tells the SSL Module to pick the "best" semaphore implementation
06ba4a61654b3763ad65f52283832ebf058fdf1cslive available to it, choosing between Posix and SystemV IPC, in that order. It is only
06ba4a61654b3763ad65f52283832ebf058fdf1cslive available when the underlying platform and APR supports at least one of the 2.</p></li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>pthread</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This directive tells the SSL Module to use Posix thread mutexes. It is only available
06ba4a61654b3763ad65f52283832ebf058fdf1cslive if the underlying platform and APR supports it.</p></li>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<li><code>fcntl:/path/to/mutex</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess This is a portable Mutex variant where a physical (lock-)file and the <code>fcntl()</code>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess fucntion are used as the Mutex.
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess Always use a local disk filesystem for <code>/path/to/mutex</code> and never a file
06ba4a61654b3763ad65f52283832ebf058fdf1cslive residing on a NFS- or AFS-filesystem. It is only available when the underlying platform
06ba4a61654b3763ad65f52283832ebf058fdf1cslive and APR supports it. Note: Internally, the Process ID (PID) of the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive Apache parent process is automatically appended to
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <code>/path/to/mutex</code> to make it unique, so you don't have to worry
06ba4a61654b3763ad65f52283832ebf058fdf1cslive about conflicts yourself. Notice that this type of mutex is not available
06ba4a61654b3763ad65f52283832ebf058fdf1cslive under the Win32 environment. There you <em>have</em> to use the semaphore
06ba4a61654b3763ad65f52283832ebf058fdf1cslive mutex.</p></li>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<li><code>flock:/path/to/mutex</code>
130d299c4b2b15be45532a176604c71fdc7bea5bnd <p>
130d299c4b2b15be45532a176604c71fdc7bea5bnd This is similar to the <code>fcntl:/path/to/mutex</code> method with the
130d299c4b2b15be45532a176604c71fdc7bea5bnd exception that the <code>flock()</code> function is used to provide file
130d299c4b2b15be45532a176604c71fdc7bea5bnd locking. It is only available when the underlying platform
130d299c4b2b15be45532a176604c71fdc7bea5bnd and APR supports it.</p></li>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<li><code>file:/path/to/mutex</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess This directive tells the SSL Module to pick the "best" file locking implementation
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess available to it, choosing between <code>fcntl</code> and <code>flock</code>,
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess in that order. It is only available when the underlying platform and APR supports
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess at least one of the 2.</p></li>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<li><code>default | yes</code>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This directive tells the SSL Module to pick the default locking implementation
06ba4a61654b3763ad65f52283832ebf058fdf1cslive as determined by the platform and APR.</p></li>
fb77c505254b6e9c925e23e734463e87574f8f40kess</ul>
fb77c505254b6e9c925e23e734463e87574f8f40kess<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLMutex file:/usr/local/apache/logs/ssl_mutex
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
130d299c4b2b15be45532a176604c71fdc7bea5bnd</div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="directive-section"><h2><a name="SSLOptions" id="SSLOptions">SSLOptions</a> <a name="ssloptions" id="ssloptions">Directive</a></h2>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<table class="directive">
130d299c4b2b15be45532a176604c71fdc7bea5bnd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure various SSL engine run-time options</td></tr>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLOptions [+|-]<em>option</em> ...</code></td></tr>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
fb77c505254b6e9c925e23e734463e87574f8f40kess<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis directive can be used to control various run-time options on a
fb77c505254b6e9c925e23e734463e87574f8f40kessper-directory basis. Normally, if multiple <code>SSLOptions</code>
fb77c505254b6e9c925e23e734463e87574f8f40kesscould apply to a directory, then the most specific one is taken
97a9a944b5887e91042b019776c41d5dd74557aferikabelecompletely; the options are not merged. However if <em>all</em> the
fe64b2ba25510d8c9dba5560a2d537763566cf40ndoptions on the <code>SSLOptions</code> directive are preceded by a
fe64b2ba25510d8c9dba5560a2d537763566cf40ndplus (<code>+</code>) or minus (<code>-</code>) symbol, the options
fe64b2ba25510d8c9dba5560a2d537763566cf40ndare merged. Any options preceded by a <code>+</code> are added to the
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessoptions currently in force, and any options preceded by a
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<code>-</code> are removed from the options currently in force.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThe available <em>option</em>s are:</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<ul>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>StdEnvVars</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd When this option is enabled, the standard set of SSL related CGI/SSI
fe64b2ba25510d8c9dba5560a2d537763566cf40nd environment variables are created. This per default is disabled for
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess performance reasons, because the information extraction step is a
15ba1801088da1aad6d20609cf3f7b0b1eefce8aslive rather expensive operation. So one usually enables this option for
fe64b2ba25510d8c9dba5560a2d537763566cf40nd CGI and SSI requests only.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>CompatEnvVars</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd When this option is enabled, additional CGI/SSI environment variables are
fe64b2ba25510d8c9dba5560a2d537763566cf40nd created for backward compatibility to other Apache SSL solutions. Look in
fe64b2ba25510d8c9dba5560a2d537763566cf40nd the <a href="/ssl/ssl_compat.html">Compatibility</a> chapter for details
06ba4a61654b3763ad65f52283832ebf058fdf1cslive on the particular variables generated.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>ExportCertData</code>
97a9a944b5887e91042b019776c41d5dd74557aferikabele <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive When this option is enabled, additional CGI/SSI environment variables are
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd created: <code>SSL_SERVER_CERT</code>, <code>SSL_CLIENT_CERT</code> and
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd <code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em> (with <em>n</em> = 0,1,2,..).
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd These contain the PEM-encoded X.509 Certificates of server and client for
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd the current HTTPS connection and can be used by CGI scripts for deeper
06ba4a61654b3763ad65f52283832ebf058fdf1cslive Certificate checking. Additionally all other certificates of the client
06ba4a61654b3763ad65f52283832ebf058fdf1cslive certificate chain are provided, too. This bloats up the environment a
06ba4a61654b3763ad65f52283832ebf058fdf1cslive little bit which is why you have to use this option to enable it on
fe64b2ba25510d8c9dba5560a2d537763566cf40nd demand.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>FakeBasicAuth</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive When this option is enabled, the Subject Distinguished Name (DN) of the
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess Client X509 Certificate is translated into a HTTP Basic Authorization
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess username. This means that the standard Apache authentication methods can
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess be used for access control. The user name is just the Subject of the
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess Client's X509 Certificate (can be determined by running OpenSSL's
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <code>openssl x509</code> command: <code>openssl x509 -noout -subject -in
fe64b2ba25510d8c9dba5560a2d537763566cf40nd </code><em>certificate</em><code>.crt</code>). Note that no password is
fe64b2ba25510d8c9dba5560a2d537763566cf40nd obtained from the user. Every entry in the user file needs this password:
fe64b2ba25510d8c9dba5560a2d537763566cf40nd ``<code>xxj31ZMTZzkVA</code>'', which is the DES-encrypted version of the
fe64b2ba25510d8c9dba5560a2d537763566cf40nd word `<code>password</code>''. Those who live under MD5-based encryption
fe64b2ba25510d8c9dba5560a2d537763566cf40nd (for instance under FreeBSD or BSD/OS, etc.) should use the following MD5
fe64b2ba25510d8c9dba5560a2d537763566cf40nd hash of the same word: ``<code>$1$OXLyS...$Owx8s2/m9/gfkcRVXzgoE/</code>''.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>StrictRequire</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd This <em>forces</em> forbidden access when <code>SSLRequireSSL</code> or
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <code>SSLRequire</code> successfully decided that access should be
fe64b2ba25510d8c9dba5560a2d537763566cf40nd forbidden. Usually the default is that in the case where a ``<code>Satisfy
fb77c505254b6e9c925e23e734463e87574f8f40kess any</code>'' directive is used, and other access restrictions are passed,
fb77c505254b6e9c925e23e734463e87574f8f40kess denial of access due to <code>SSLRequireSSL</code> or
fb77c505254b6e9c925e23e734463e87574f8f40kess <code>SSLRequire</code> is overridden (because that's how the Apache
fb77c505254b6e9c925e23e734463e87574f8f40kess <code>Satisfy</code> mechanism should work.) But for strict access restriction
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd you can use <code>SSLRequireSSL</code> and/or <code>SSLRequire</code> in
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd combination with an ``<code>SSLOptions +StrictRequire</code>''. Then an
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd additional ``<code>Satisfy Any</code>'' has no chance once mod_ssl has
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd decided to deny access.</p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>OptRenegotiate</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This enables optimized SSL connection renegotiation handling when SSL
06ba4a61654b3763ad65f52283832ebf058fdf1cslive directives are used in per-directory context. By default a strict
06ba4a61654b3763ad65f52283832ebf058fdf1cslive scheme is enabled where <em>every</em> per-directory reconfiguration of
06ba4a61654b3763ad65f52283832ebf058fdf1cslive SSL parameters causes a <em>full</em> SSL renegotiation handshake. When this
fe64b2ba25510d8c9dba5560a2d537763566cf40nd option is used mod_ssl tries to avoid unnecessary handshakes by doing more
fe64b2ba25510d8c9dba5560a2d537763566cf40nd granular (but still safe) parameter checks. Nevertheless these granular
fe64b2ba25510d8c9dba5560a2d537763566cf40nd checks sometimes maybe not what the user expects, so enable this on a
fe64b2ba25510d8c9dba5560a2d537763566cf40nd per-directory basis only, please.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</ul>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLOptions +FakeBasicAuth -StrictRequire<br />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd&lt;Files ~ "\.(cgi|shtml)$"&gt;<br />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSLOptions +StdEnvVars +CompatEnvVars -ExportCertData<br />
fe64b2ba25510d8c9dba5560a2d537763566cf40nd&lt;Files&gt;
fb77c505254b6e9c925e23e734463e87574f8f40kess</code></p></div>
fb77c505254b6e9c925e23e734463e87574f8f40kess
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLPassPhraseDialog" id="SSLPassPhraseDialog">SSLPassPhraseDialog</a> <a name="sslpassphrasedialog" id="sslpassphrasedialog">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type of pass phrase dialog for encrypted private
fb77c505254b6e9c925e23e734463e87574f8f40kesskeys</td></tr>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLPassPhraseDialog <em>type</em></code></td></tr>
ff797e743eb73c1d45b08158aa6b288c2d0c46eeslive<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLPassPhraseDialog builtin</code></td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</table>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveWhen Apache starts up it has to read the various Certificate (see
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>) and
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndPrivate Key (see <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>) files of the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSL-enabled virtual servers. Because for security reasons the Private
06ba4a61654b3763ad65f52283832ebf058fdf1csliveKey files are usually encrypted, mod_ssl needs to query the
fb77c505254b6e9c925e23e734463e87574f8f40kessadministrator for a Pass Phrase in order to decrypt those files. This
97a9a944b5887e91042b019776c41d5dd74557aferikabelequery can be done in two ways which can be configured by
fb77c505254b6e9c925e23e734463e87574f8f40kess<em>type</em>:</p>
fb77c505254b6e9c925e23e734463e87574f8f40kess<ul>
fb77c505254b6e9c925e23e734463e87574f8f40kess<li><code>builtin</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd This is the default where an interactive terminal dialog occurs at startup
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd time just before Apache detaches from the terminal. Here the administrator
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd has to manually enter the Pass Phrase for each encrypted Private Key file.
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd Because a lot of SSL-enabled virtual hosts can be configured, the
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd following reuse-scheme is used to minimize the dialog: When a Private Key
fb77c505254b6e9c925e23e734463e87574f8f40kess file is encrypted, all known Pass Phrases (at the beginning there are
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd none, of course) are tried. If one of those known Pass Phrases succeeds no
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh dialog pops up for this particular Private Key file. If none succeeded,
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh another Pass Phrase is queried on the terminal and remembered for the next
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh round (where it perhaps can be reused).</p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh <p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh This scheme allows mod_ssl to be maximally flexible (because for N encrypted
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh Private Key files you <em>can</em> use N different Pass Phrases - but then
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess you have to enter all of them, of course) while minimizing the terminal
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess dialog (i.e. when you use a single Pass Phrase for all N Private Key files
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess this Pass Phrase is queried only once).</p></li>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<li><code>exec:/path/to/program</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd Here an external program is configured which is called at startup for each
fe64b2ba25510d8c9dba5560a2d537763566cf40nd encrypted Private Key file. It is called with two arguments (the first is
fe64b2ba25510d8c9dba5560a2d537763566cf40nd of the form ``<code>servername:portnumber</code>'', the second is either
fe64b2ba25510d8c9dba5560a2d537763566cf40nd ``<code>RSA</code>'' or ``<code>DSA</code>''), which indicate for which
fe64b2ba25510d8c9dba5560a2d537763566cf40nd server and algorithm it has to print the corresponding Pass Phrase to
fb77c505254b6e9c925e23e734463e87574f8f40kess <code>stdout</code>. The intent is that this external program first runs
fb77c505254b6e9c925e23e734463e87574f8f40kess security checks to make sure that the system is not compromised by an
fe64b2ba25510d8c9dba5560a2d537763566cf40nd attacker, and only when these checks were passed successfully it provides
fe64b2ba25510d8c9dba5560a2d537763566cf40nd the Pass Phrase.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd Both these security checks, and the way the Pass Phrase is determined, can
c985aca104389df30d6ec0a637ce0ccaac904362nd be as complex as you like. Mod_ssl just defines the interface: an
fe64b2ba25510d8c9dba5560a2d537763566cf40nd executable program which provides the Pass Phrase on <code>stdout</code>.
fb77c505254b6e9c925e23e734463e87574f8f40kess Nothing more or less! So, if you're really paranoid about security, here
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh is your interface. Anything else has to be left as an exercise to the
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh administrator, because local security requirements are so different.</p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh <p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh The reuse-algorithm above is used here, too. In other words: The external
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh program is called only once per unique Pass Phrase.</p></li>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh</ul>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<div class="example"><h3>Example</h3><p><code>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessSSLPassPhraseDialog exec:/usr/local/apache/sbin/pp-filter
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess</code></p></div>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh</div>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<div class="directive-section"><h2><a name="SSLProtocol" id="SSLProtocol">SSLProtocol</a> <a name="sslprotocol" id="sslprotocol">Directive</a></h2>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<table class="directive">
9fb925624300c864fe3969a264e52aa83f3c2dd0slive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure usable SSL protocol flavors</td></tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProtocol [+|-]<em>protocol</em> ...</code></td></tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProtocol all</code></td></tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
9fb925624300c864fe3969a264e52aa83f3c2dd0slive<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh</table>
05201775eaa6b363b8a119c8aea5db246b967591yoshiki<p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejeshThis directive can be used to control the SSL protocol flavors mod_ssl should
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejeshuse when establishing its server environment. Clients then can only connect
fb77c505254b6e9c925e23e734463e87574f8f40kesswith one of the provided protocols.</p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh<p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejeshThe available (case-insensitive) <em>protocol</em>s are:</p>
fb77c505254b6e9c925e23e734463e87574f8f40kess<ul>
9fb925624300c864fe3969a264e52aa83f3c2dd0slive<li><code>SSLv2</code>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh <p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh This is the Secure Sockets Layer (SSL) protocol, version 2.0. It is the
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess original SSL protocol as designed by Netscape Corporation.</p></li>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<li><code>SSLv3</code>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess <p>
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh This is the Secure Sockets Layer (SSL) protocol, version 3.0. It is the
5f86589186bcc15ee13e288a9d73acbeab2409fbdpejesh successor to SSLv2 and the currently (as of February 1999) de-facto
fe64b2ba25510d8c9dba5560a2d537763566cf40nd standardized SSL protocol from Netscape Corporation. It's supported by
fe64b2ba25510d8c9dba5560a2d537763566cf40nd almost all popular browsers.</p></li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>TLSv1</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd This is the Transport Layer Security (TLS) protocol, version 1.0. It is the
fe64b2ba25510d8c9dba5560a2d537763566cf40nd successor to SSLv3 and currently (as of February 1999) still under
fe64b2ba25510d8c9dba5560a2d537763566cf40nd construction by the Internet Engineering Task Force (IETF). It's still
fe64b2ba25510d8c9dba5560a2d537763566cf40nd not supported by any popular browsers.</p></li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>All</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
c985aca104389df30d6ec0a637ce0ccaac904362nd This is a shortcut for ``<code>+SSLv2 +SSLv3 +TLSv1</code>'' and a
c985aca104389df30d6ec0a637ce0ccaac904362nd convinient way for enabling all protocols except one when used in
fe64b2ba25510d8c9dba5560a2d537763566cf40nd combination with the minus sign on a protocol as the example above
06ba4a61654b3763ad65f52283832ebf058fdf1cslive shows.</p></li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</ul>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive# enable SSLv3 and TLSv1, but not SSLv2<br />
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLProtocol all -SSLv2
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLProxyCACertificateFile" id="SSLProxyCACertificateFile">SSLProxyCACertificateFile</a> <a name="sslproxycacertificatefile" id="sslproxycacertificatefile">Directive</a></h2>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<table class="directive">
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA Certificates
06ba4a61654b3763ad65f52283832ebf058fdf1cslivefor Remote Server Auth</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCACertificateFile <em>file-path</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis directive sets the <em>all-in-one</em> file where you can assemble the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveCertificates of Certification Authorities (CA) whose <em>remote servers</em> you deal
06ba4a61654b3763ad65f52283832ebf058fdf1cslivewith. These are used for Remote Server Authentication. Such a file is simply the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveconcatenation of the various PEM-encoded Certificate files, in order of
06ba4a61654b3763ad65f52283832ebf058fdf1cslivepreference. This can be used alternatively and/or additionally to
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>.</p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="example"><h3>Example</h3><p><code>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSLProxyCACertificateFile /usr/local/apache2/conf/ssl.crt/ca-bundle-remote-server.crt
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</code></p></div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLProxyCACertificatePath" id="SSLProxyCACertificatePath">SSLProxyCACertificatePath</a> <a name="sslproxycacertificatepath" id="sslproxycacertificatepath">Directive</a></h2>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<table class="directive">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded CA Certificates for
fb77c505254b6e9c925e23e734463e87574f8f40kessRemote Server Auth</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCACertificatePath <em>directory-path</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis directive sets the directory where you keep the Certificates of
06ba4a61654b3763ad65f52283832ebf058fdf1csliveCertification Authorities (CAs) whose remote servers you deal with. These are used to
06ba4a61654b3763ad65f52283832ebf058fdf1csliveverify the remote server certificate on Remote Server Authentication.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessThe files in this directory have to be PEM-encoded and are accessed through
06ba4a61654b3763ad65f52283832ebf058fdf1cslivehash filenames. So usually you can't just place the Certificate files
06ba4a61654b3763ad65f52283832ebf058fdf1cslivethere: you also have to create symbolic links named
fb77c505254b6e9c925e23e734463e87574f8f40kess<em>hash-value</em><code>.N</code>. And you should always make sure this directory
fb77c505254b6e9c925e23e734463e87574f8f40kesscontains the appropriate symbolic links. Use the <code>Makefile</code> which
fb77c505254b6e9c925e23e734463e87574f8f40kesscomes with mod_ssl to accomplish this task.</p>
4f854c24127e28f7ad72ce9a39d4448aaf910fc1slive<div class="example"><h3>Example</h3><p><code>
4f854c24127e28f7ad72ce9a39d4448aaf910fc1sliveSSLProxyCACertificatePath /usr/local/apache2/conf/ssl.crt/
4f854c24127e28f7ad72ce9a39d4448aaf910fc1slive</code></p></div>
4f854c24127e28f7ad72ce9a39d4448aaf910fc1slive
4f854c24127e28f7ad72ce9a39d4448aaf910fc1slive</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLProxyCARevocationFile" id="SSLProxyCARevocationFile">SSLProxyCARevocationFile</a> <a name="sslproxycarevocationfile" id="sslproxycarevocationfile">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA CRLs for
fe64b2ba25510d8c9dba5560a2d537763566cf40ndRemote Server Auth</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCARevocationFile <em>file-path</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive sets the <em>all-in-one</em> file where you can
fe64b2ba25510d8c9dba5560a2d537763566cf40ndassemble the Certificate Revocation Lists (CRL) of Certification
fe64b2ba25510d8c9dba5560a2d537763566cf40ndAuthorities (CA) whose <em>remote servers</em> you deal with. These are used
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessfor Remote Server Authentication. Such a file is simply the concatenation of
fe64b2ba25510d8c9dba5560a2d537763566cf40ndthe various PEM-encoded CRL files, in order of preference. This can be
fe64b2ba25510d8c9dba5560a2d537763566cf40ndused alternatively and/or additionally to <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code>.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLProxyCARevocationFile /usr/local/apache2/conf/ssl.crl/ca-bundle-remote-server.crl
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
ef8e89e090461194ecadd31e8796a2c51e0531a2kess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
ef8e89e090461194ecadd31e8796a2c51e0531a2kess<div class="directive-section"><h2><a name="SSLProxyCARevocationPath" id="SSLProxyCARevocationPath">SSLProxyCARevocationPath</a> <a name="sslproxycarevocationpath" id="sslproxycarevocationpath">Directive</a></h2>
fb109b84906e3ee61680aa289953c2f9e859354erbowen<table class="directive">
fb109b84906e3ee61680aa289953c2f9e859354erbowen<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded CA CRLs for
fb109b84906e3ee61680aa289953c2f9e859354erbowenRemote Server Auth</td></tr>
fb109b84906e3ee61680aa289953c2f9e859354erbowen<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCARevocationPath <em>directory-path</em></code></td></tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
fb109b84906e3ee61680aa289953c2f9e859354erbowen<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
fb109b84906e3ee61680aa289953c2f9e859354erbowenThis directive sets the directory where you keep the Certificate Revocation
fb109b84906e3ee61680aa289953c2f9e859354erbowenLists (CRL) of Certification Authorities (CAs) whose remote servers you deal with.
fb109b84906e3ee61680aa289953c2f9e859354erbowenThese are used to revoke the remote server certificate on Remote Server Authentication.</p>
fb109b84906e3ee61680aa289953c2f9e859354erbowen<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThe files in this directory have to be PEM-encoded and are accessed through
06ba4a61654b3763ad65f52283832ebf058fdf1cslivehash filenames. So usually you have not only to place the CRL files there.
06ba4a61654b3763ad65f52283832ebf058fdf1csliveAdditionally you have to create symbolic links named
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<em>hash-value</em><code>.rN</code>. And you should always make sure this directory
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndcontains the appropriate symbolic links. Use the <code>Makefile</code> which
06ba4a61654b3763ad65f52283832ebf058fdf1cslivecomes with <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> to accomplish this task.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="example"><h3>Example</h3><p><code>
fb109b84906e3ee61680aa289953c2f9e859354erbowenSSLProxyCARevocationPath /usr/local/apache2/conf/ssl.crl/
fb109b84906e3ee61680aa289953c2f9e859354erbowen</code></p></div>
fb109b84906e3ee61680aa289953c2f9e859354erbowen
fb109b84906e3ee61680aa289953c2f9e859354erbowen</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLProxyCipherSuite" id="SSLProxyCipherSuite">SSLProxyCipherSuite</a> <a name="sslproxyciphersuite" id="sslproxyciphersuite">Directive</a></h2>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<table class="directive">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cipher Suite available for negotiation in SSL
c023f60e35022146373e40249f0c8c8d623b6fcfndproxy handshake</td></tr>
c023f60e35022146373e40249f0c8c8d623b6fcfnd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCipherSuite <em>cipher-spec</em></code></td></tr>
c023f60e35022146373e40249f0c8c8d623b6fcfnd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP</code></td></tr>
c023f60e35022146373e40249f0c8c8d623b6fcfnd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
c023f60e35022146373e40249f0c8c8d623b6fcfnd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
c023f60e35022146373e40249f0c8c8d623b6fcfnd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>Equivalent to <code>SSLCipherSuite</code>, but for the proxy connection.
fe64b2ba25510d8c9dba5560a2d537763566cf40ndPlease refer to <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndfor additional information.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLProxyEngine" id="SSLProxyEngine">SSLProxyEngine</a> <a name="sslproxyengine" id="sslproxyengine">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SSL Proxy Engine Operation Switch</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyEngine on|off</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyEngine off</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive toggles the usage of the SSL/TLS Protocol Engine for proxy. This
06ba4a61654b3763ad65f52283832ebf058fdf1csliveis usually used inside a <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> section to enable SSL/TLS for proxy
06ba4a61654b3763ad65f52283832ebf058fdf1csliveusage in a particular virtual host. By default the SSL/TLS Protocol Engine is
fb77c505254b6e9c925e23e734463e87574f8f40kessdisabled for proxy image both for the main server and all configured virtual hosts.</p>
fb77c505254b6e9c925e23e734463e87574f8f40kess<div class="example"><h3>Example</h3><p><code>
fb77c505254b6e9c925e23e734463e87574f8f40kess&lt;VirtualHost _default_:443&gt;<br />
fb77c505254b6e9c925e23e734463e87574f8f40kessSSLProxyEngine on<br />
fb77c505254b6e9c925e23e734463e87574f8f40kess...<br />
fb77c505254b6e9c925e23e734463e87574f8f40kess&lt;/VirtualHost&gt;
fb77c505254b6e9c925e23e734463e87574f8f40kess</code></p></div>
fb77c505254b6e9c925e23e734463e87574f8f40kess
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLProxyMachineCertificateFile" id="SSLProxyMachineCertificateFile">SSLProxyMachineCertificateFile</a> <a name="sslproxymachinecertificatefile" id="sslproxymachinecertificatefile">Directive</a></h2>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<table class="directive">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyMachineCertificateFile <em>filename</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</table>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis directive sets the all-in-one file where you keep the certificates and
fb77c505254b6e9c925e23e734463e87574f8f40kesskeys used for authentication of the proxy server to remote servers.
fb77c505254b6e9c925e23e734463e87574f8f40kess</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndThis referenced file is simply the concatenation of the various PEM-encoded
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndcertificate files, in order of preference. Use this directive alternatively
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndor additionally to <code>SSLProxyMachineCertificatePath</code>.
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="warning">
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p>Currently there is no support for encrypted private keys</p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="example"><h3>Example</h3><p><code>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSLProxyMachineCertificateFile /usr/local/apache2/conf/ssl.crt/proxy.pem
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLProxyMachineCertificatePath" id="SSLProxyMachineCertificatePath">SSLProxyMachineCertificatePath</a> <a name="sslproxymachinecertificatepath" id="sslproxymachinecertificatepath">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyMachineCertificatePath <em>directory</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive sets the directory where you keep the certificates and
fe64b2ba25510d8c9dba5560a2d537763566cf40ndkeys used for authentication of the proxy server to remote servers.
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>The files in this directory must be PEM-encoded and are accessed through
6b64034fa2a644ba291c484c0c01c7df5b8d982ckesshash filenames. Additionally, you must create symbolic links named
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<code><em>hash-value</em>.N</code>. And you should always make sure this
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessdirectory contains the appropriate symbolic links. Use the Makefile which
6b64034fa2a644ba291c484c0c01c7df5b8d982ckesscomes with mod_ssl to accomplish this task.
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess</p>
6b64034fa2a644ba291c484c0c01c7df5b8d982ckess<div class="warning">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>Currently there is no support for encrypted private keys</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<div class="example"><h3>Example</h3><p><code>
97a9a944b5887e91042b019776c41d5dd74557aferikabeleSSLProxyMachineCertificatePath /usr/local/apache2/conf/proxy.crt/
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</code></p></div>
97a9a944b5887e91042b019776c41d5dd74557aferikabele
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="directive-section"><h2><a name="SSLProxyProtocol" id="SSLProxyProtocol">SSLProxyProtocol</a> <a name="sslproxyprotocol" id="sslproxyprotocol">Directive</a></h2>
fb77c505254b6e9c925e23e734463e87574f8f40kess<table class="directive">
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure usable SSL protocol flavors for proxy usage</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyProtocol [+|-]<em>protocol</em> ...</code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyProtocol all</code></td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</table>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis directive can be used to control the SSL protocol flavors mod_ssl should
97a9a944b5887e91042b019776c41d5dd74557aferikabeleuse when establishing its server environment for proxy . It will only connect
fb77c505254b6e9c925e23e734463e87574f8f40kessto servers using one of the provided protocols.</p>
fb77c505254b6e9c925e23e734463e87574f8f40kess<p>Please refer to <code class="directive"><a href="#sslprotocol">SSLProtocol</a></code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslivefor additional information.
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<div class="directive-section"><h2><a name="SSLProxyVerify" id="SSLProxyVerify">SSLProxyVerify</a> <a name="sslproxyverify" id="sslproxyverify">Directive</a></h2>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type of remote server Certificate verification</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyVerify <em>level</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyVerify none</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive sets the Certificate verification level for the remote server
fe64b2ba25510d8c9dba5560a2d537763566cf40ndAuthentication. Notice that this directive can be used both in per-server and
fe64b2ba25510d8c9dba5560a2d537763566cf40ndper-directory context. In per-server context it applies to the remote server
fe64b2ba25510d8c9dba5560a2d537763566cf40ndauthentication process used in the standard SSL handshake when a connection is
06ba4a61654b3763ad65f52283832ebf058fdf1csliveestablished. In per-directory context it forces a SSL renegotation with the
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessreconfigured remote server verification level after the HTTP request was read but
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessbefore the HTTP response is sent.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndThe following levels are available for <em>level</em>:</p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<ul>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<li><strong>none</strong>:
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd no remote server Certificate is required at all</li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><strong>optional</strong>:
06ba4a61654b3763ad65f52283832ebf058fdf1cslive the remote server <em>may</em> present a valid Certificate</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><strong>require</strong>:
fe64b2ba25510d8c9dba5560a2d537763566cf40nd the remote server <em>has to</em> present a valid Certificate</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><strong>optional_no_ca</strong>:
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess the remote server may present a valid Certificate<br />
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess but it need not to be (successfully) verifiable.</li>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess</ul>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>In practice only levels <strong>none</strong> and
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<strong>require</strong> are really interesting, because level
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<strong>optional</strong> doesn't work with all servers and level
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<strong>optional_no_ca</strong> is actually against the idea of
fe64b2ba25510d8c9dba5560a2d537763566cf40ndauthentication (but can be used to establish SSL test pages, etc.)</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLProxyVerify require
c97e8972ab1f4dd167e3dc4db87daf91114009fbnd</code></p></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLProxyVerifyDepth" id="SSLProxyVerifyDepth">SSLProxyVerifyDepth</a> <a name="sslproxyverifydepth" id="sslproxyverifydepth">Directive</a></h2>
c985aca104389df30d6ec0a637ce0ccaac904362nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum depth of CA Certificates in Remote Server
06ba4a61654b3763ad65f52283832ebf058fdf1csliveCertificate verification</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyVerifyDepth <em>number</em></code></td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyVerifyDepth 1</code></td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fb77c505254b6e9c925e23e734463e87574f8f40kess</table>
fb77c505254b6e9c925e23e734463e87574f8f40kess<p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndThis directive sets how deeply mod_ssl should verify before deciding that the
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndremote server does not have a valid certificate. Notice that this directive can be
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndused both in per-server and per-directory context. In per-server context it
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndapplies to the client authentication process used in the standard SSL
06ba4a61654b3763ad65f52283832ebf058fdf1cslivehandshake when a connection is established. In per-directory context it forces
97a9a944b5887e91042b019776c41d5dd74557aferikabelea SSL renegotation with the reconfigured remote server verification depth after the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHTTP request was read but before the HTTP response is sent.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
7654193c1faf603feec999850322ad79e6c551bcndThe depth actually is the maximum number of intermediate certificate issuers,
7654193c1faf603feec999850322ad79e6c551bcndi.e. the number of CA certificates which are max allowed to be followed while
c97e8972ab1f4dd167e3dc4db87daf91114009fbndverifying the remote server certificate. A depth of 0 means that self-signed
7654193c1faf603feec999850322ad79e6c551bcndremote server certificates are accepted only, the default depth of 1 means
7654193c1faf603feec999850322ad79e6c551bcndthe remote server certificate can be self-signed or has to be signed by a CA
7654193c1faf603feec999850322ad79e6c551bcndwhich is directly known to the server (i.e. the CA's certificate is under
7654193c1faf603feec999850322ad79e6c551bcnd<code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>), etc.</p>
7654193c1faf603feec999850322ad79e6c551bcnd<div class="example"><h3>Example</h3><p><code>
7654193c1faf603feec999850322ad79e6c551bcndSSLProxyVerifyDepth 10
7654193c1faf603feec999850322ad79e6c551bcnd</code></p></div>
7654193c1faf603feec999850322ad79e6c551bcnd
7654193c1faf603feec999850322ad79e6c551bcnd</div>
7654193c1faf603feec999850322ad79e6c551bcnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
7654193c1faf603feec999850322ad79e6c551bcnd<div class="directive-section"><h2><a name="SSLRandomSeed" id="SSLRandomSeed">SSLRandomSeed</a> <a name="sslrandomseed" id="sslrandomseed">Directive</a></h2>
7654193c1faf603feec999850322ad79e6c551bcnd<table class="directive">
c97e8972ab1f4dd167e3dc4db87daf91114009fbnd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Pseudo Random Number Generator (PRNG) seeding
7654193c1faf603feec999850322ad79e6c551bcndsource</td></tr>
7654193c1faf603feec999850322ad79e6c551bcnd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLRandomSeed <em>context</em> <em>source</em>
7654193c1faf603feec999850322ad79e6c551bcnd[<em>bytes</em>]</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis configures one or more sources for seeding the Pseudo Random Number
fb77c505254b6e9c925e23e734463e87574f8f40kessGenerator (PRNG) in OpenSSL at startup time (<em>context</em> is
fb77c505254b6e9c925e23e734463e87574f8f40kess<code>startup</code>) and/or just before a new SSL connection is established
fe64b2ba25510d8c9dba5560a2d537763566cf40nd(<em>context</em> is <code>connect</code>). This directive can only be used
fe64b2ba25510d8c9dba5560a2d537763566cf40ndin the global server context because the PRNG is a global facility.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThe following <em>source</em> variants are available:</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<ul>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>builtin</code>
fb77c505254b6e9c925e23e734463e87574f8f40kess <p> This is the always available builtin seeding source. It's usage
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess consumes minimum CPU cycles under runtime and hence can be always used
06ba4a61654b3763ad65f52283832ebf058fdf1cslive without drawbacks. The source used for seeding the PRNG contains of the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive current time, the current process id and (when applicable) a randomly
06ba4a61654b3763ad65f52283832ebf058fdf1cslive choosen 1KB extract of the inter-process scoreboard structure of Apache.
06ba4a61654b3763ad65f52283832ebf058fdf1cslive The drawback is that this is not really a strong source and at startup
06ba4a61654b3763ad65f52283832ebf058fdf1cslive time (where the scoreboard is still not available) this source just
cb3a1082aec4b3b4f4ed238c93c3cc54933a7f0end produces a few bytes of entropy. So you should always, at least for the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive startup, use an additional seeding source.</p></li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>file:/path/to/source</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
fb77c505254b6e9c925e23e734463e87574f8f40kess This variant uses an external file <code>/path/to/source</code> as the
fb77c505254b6e9c925e23e734463e87574f8f40kess source for seeding the PRNG. When <em>bytes</em> is specified, only the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive first <em>bytes</em> number of bytes of the file form the entropy (and
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <em>bytes</em> is given to <code>/path/to/source</code> as the first
06ba4a61654b3763ad65f52283832ebf058fdf1cslive argument). When <em>bytes</em> is not specified the whole file forms the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive entropy (and <code>0</code> is given to <code>/path/to/source</code> as
fb77c505254b6e9c925e23e734463e87574f8f40kess the first argument). Use this especially at startup time, for instance
06ba4a61654b3763ad65f52283832ebf058fdf1cslive with an available <code>/dev/random</code> and/or
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <code>/dev/urandom</code> devices (which usually exist on modern Unix
06ba4a61654b3763ad65f52283832ebf058fdf1cslive derivates like FreeBSD and Linux).</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
fb77c505254b6e9c925e23e734463e87574f8f40kess <em>But be careful</em>: Usually <code>/dev/random</code> provides only as
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess much entropy data as it actually has, i.e. when you request 512 bytes of
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess entropy, but the device currently has only 100 bytes available two things
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess can happen: On some platforms you receive only the 100 bytes while on
fe64b2ba25510d8c9dba5560a2d537763566cf40nd other platforms the read blocks until enough bytes are available (which
fe64b2ba25510d8c9dba5560a2d537763566cf40nd can take a long time). Here using an existing <code>/dev/urandom</code> is
fe64b2ba25510d8c9dba5560a2d537763566cf40nd better, because it never blocks and actually gives the amount of requested
fe64b2ba25510d8c9dba5560a2d537763566cf40nd data. The drawback is just that the quality of the received data may not
fe64b2ba25510d8c9dba5560a2d537763566cf40nd be the best.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd On some platforms like FreeBSD one can even control how the entropy is
fe64b2ba25510d8c9dba5560a2d537763566cf40nd actually generated, i.e. by which system interrupts. More details one can
fe64b2ba25510d8c9dba5560a2d537763566cf40nd find under <em>rndcontrol(8)</em> on those platforms. Alternatively, when
fe64b2ba25510d8c9dba5560a2d537763566cf40nd your system lacks such a random device, you can use tool
fe64b2ba25510d8c9dba5560a2d537763566cf40nd like <a href="http://www.lothar.com/tech/crypto/">EGD</a>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd (Entropy Gathering Daemon) and run it's client program with the
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <code>exec:/path/to/program/</code> variant (see below) or use
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <code>egd:/path/to/egd-socket</code> (see below).</p></li>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<li><code>exec:/path/to/program</code>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd <p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd This variant uses an external executable
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd <code>/path/to/program</code> as the source for seeding the
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd PRNG. When <em>bytes</em> is specified, only the first
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <em>bytes</em> number of bytes of its <code>stdout</code> contents
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd form the entropy. When <em>bytes</em> is not specified, the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive entirety of the data produced on <code>stdout</code> form the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive entropy. Use this only at startup time when you need a very strong
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd seeding with the help of an external program (for instance as in
06ba4a61654b3763ad65f52283832ebf058fdf1cslive the example above with the <code>truerand</code> utility you can
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd find in the mod_ssl distribution which is based on the AT&amp;T
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <em>truerand</em> library). Using this in the connection context
06ba4a61654b3763ad65f52283832ebf058fdf1cslive slows down the server too dramatically, of course. So usually you
06ba4a61654b3763ad65f52283832ebf058fdf1cslive should avoid using external programs in that context.</p></li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>egd:/path/to/egd-socket</code> (Unix only)
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This variant uses the Unix domain socket of the
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd external Entropy Gathering Daemon (EGD) (see <a href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech
06ba4a61654b3763ad65f52283832ebf058fdf1cslive /crypto/</a>) to seed the PRNG. Use this if no random device exists
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd on your platform.</p></li>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd</ul>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLRandomSeed startup builtin<br />
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLRandomSeed startup file:/dev/random<br />
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLRandomSeed startup file:/dev/urandom 1024<br />
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLRandomSeed startup exec:/usr/local/bin/truerand 16<br />
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLRandomSeed connect builtin<br />
130d299c4b2b15be45532a176604c71fdc7bea5bndSSLRandomSeed connect file:/dev/random<br />
130d299c4b2b15be45532a176604c71fdc7bea5bndSSLRandomSeed connect file:/dev/urandom 1024<br />
130d299c4b2b15be45532a176604c71fdc7bea5bnd</code></p></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd
130d299c4b2b15be45532a176604c71fdc7bea5bnd</div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="directive-section"><h2><a name="SSLRequire" id="SSLRequire">SSLRequire</a> <a name="sslrequire" id="sslrequire">Directive</a></h2>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<table class="directive">
130d299c4b2b15be45532a176604c71fdc7bea5bnd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allow access only when an arbitrarily complex
130d299c4b2b15be45532a176604c71fdc7bea5bndboolean expression is true</td></tr>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLRequire <em>expression</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive specifies a general access requirement which has to be
fe64b2ba25510d8c9dba5560a2d537763566cf40ndfulfilled in order to allow access. It's a very powerful directive because the
fe64b2ba25510d8c9dba5560a2d537763566cf40ndrequirement specification is an arbitrarily complex boolean expression
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcontaining any number of access checks.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThe <em>expression</em> must match the following syntax (given as a BNF
fe64b2ba25510d8c9dba5560a2d537763566cf40ndgrammar notation):</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<blockquote>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<pre>
fb77c505254b6e9c925e23e734463e87574f8f40kessexpr ::= "<strong>true</strong>" | "<strong>false</strong>"
fb77c505254b6e9c925e23e734463e87574f8f40kess | "<strong>!</strong>" expr
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | expr "<strong>&amp;&amp;</strong>" expr
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | expr "<strong>||</strong>" expr
06ba4a61654b3763ad65f52283832ebf058fdf1cslive | "<strong>(</strong>" expr "<strong>)</strong>"
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | comp
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslivecomp ::= word "<strong>==</strong>" word | word "<strong>eq</strong>" word
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | word "<strong>!=</strong>" word | word "<strong>ne</strong>" word
06ba4a61654b3763ad65f52283832ebf058fdf1cslive | word "<strong>&lt;</strong>" word | word "<strong>lt</strong>" word
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | word "<strong>&lt;=</strong>" word | word "<strong>le</strong>" word
06ba4a61654b3763ad65f52283832ebf058fdf1cslive | word "<strong>&gt;</strong>" word | word "<strong>gt</strong>" word
06ba4a61654b3763ad65f52283832ebf058fdf1cslive | word "<strong>&gt;=</strong>" word | word "<strong>ge</strong>" word
06ba4a61654b3763ad65f52283832ebf058fdf1cslive | word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>"
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | word "<strong>=~</strong>" regex
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | word "<strong>!~</strong>" regex
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndwordlist ::= word
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd | wordlist "<strong>,</strong>" word
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndword ::= digit
bea526116133aa3d7dabd1924bfc580b37fbf22aslive | cstring
bea526116133aa3d7dabd1924bfc580b37fbf22aslive | variable
bea526116133aa3d7dabd1924bfc580b37fbf22aslive | function
bea526116133aa3d7dabd1924bfc580b37fbf22aslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslivedigit ::= [0-9]+
06ba4a61654b3763ad65f52283832ebf058fdf1cslivecstring ::= "..."
06ba4a61654b3763ad65f52283832ebf058fdf1cslivevariable ::= "<strong>%{</strong>" varname "<strong>}</strong>"
06ba4a61654b3763ad65f52283832ebf058fdf1cslivefunction ::= funcname "<strong>(</strong>" funcargs "<strong>)</strong>"
bea526116133aa3d7dabd1924bfc580b37fbf22aslive</pre>
bea526116133aa3d7dabd1924bfc580b37fbf22aslive</blockquote>
bea526116133aa3d7dabd1924bfc580b37fbf22aslive<p>while for <code>varname</code> any variable from <a href="#table3">Table 3</a> can be used. Finally for
fb77c505254b6e9c925e23e734463e87574f8f40kess<code>funcname</code> the following functions are available:</p>
bea526116133aa3d7dabd1924bfc580b37fbf22aslive<ul>
bea526116133aa3d7dabd1924bfc580b37fbf22aslive<li><code>file(</code><em>filename</em><code>)</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd This function takes one string argument and expands to the contents of the
fe64b2ba25510d8c9dba5560a2d537763566cf40nd file. This is especially useful for matching this contents against a
fe64b2ba25510d8c9dba5560a2d537763566cf40nd regular expression, etc.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</li>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</ul>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>Notice that <em>expression</em> is first parsed into an internal machine
fe64b2ba25510d8c9dba5560a2d537763566cf40ndrepresentation and then evaluated in a second step. Actually, in Global and
fe64b2ba25510d8c9dba5560a2d537763566cf40ndPer-Server Class context <em>expression</em> is parsed at startup time and
fe64b2ba25510d8c9dba5560a2d537763566cf40ndat runtime only the machine representation is executed. For Per-Directory
fe64b2ba25510d8c9dba5560a2d537763566cf40ndcontext this is different: here <em>expression</em> has to be parsed and
c985aca104389df30d6ec0a637ce0ccaac904362ndimmediately executed for every request.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \<br />
06ba4a61654b3763ad65f52283832ebf058fdf1cslive and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \<br />
06ba4a61654b3763ad65f52283832ebf058fdf1cslive and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \<br />
ef8e89e090461194ecadd31e8796a2c51e0531a2kess and %{TIME_WDAY} &gt;= 1 and %{TIME_WDAY} &lt;= 5 \<br />
fb77c505254b6e9c925e23e734463e87574f8f40kess and %{TIME_HOUR} &gt;= 8 and %{TIME_HOUR} &lt;= 20 ) \<br />
7b5535ed88e0f561b3bfb3330137bd804846afd4slive or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
7b5535ed88e0f561b3bfb3330137bd804846afd4slive</code></p></div>
7b5535ed88e0f561b3bfb3330137bd804846afd4slive
7b5535ed88e0f561b3bfb3330137bd804846afd4slive<p><em>Standard CGI/1.0 and Apache variables:</em></p>
7b5535ed88e0f561b3bfb3330137bd804846afd4slive<pre>
7b5535ed88e0f561b3bfb3330137bd804846afd4sliveHTTP_USER_AGENT PATH_INFO AUTH_TYPE
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHTTP_REFERER QUERY_STRING SERVER_SOFTWARE
6b64034fa2a644ba291c484c0c01c7df5b8d982ckessHTTP_COOKIE REMOTE_HOST API_VERSION
313bb560bc5c323cfd40c9cad7335b4b8e060aedkessHTTP_FORWARDED REMOTE_IDENT TIME_YEAR
97a9a944b5887e91042b019776c41d5dd74557aferikabeleHTTP_HOST IS_SUBREQ TIME_MON
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHTTP_PROXY_CONNECTION DOCUMENT_ROOT TIME_DAY
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHTTP_ACCEPT SERVER_ADMIN TIME_HOUR
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHTTP:headername SERVER_NAME TIME_MIN
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndTHE_REQUEST SERVER_PORT TIME_SEC
7b5535ed88e0f561b3bfb3330137bd804846afd4sliveREQUEST_METHOD SERVER_PROTOCOL TIME_WDAY
7b5535ed88e0f561b3bfb3330137bd804846afd4sliveREQUEST_SCHEME REMOTE_ADDR TIME
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndREQUEST_URI REMOTE_USER ENV:<strong>variablename</strong>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndREQUEST_FILENAME
7b5535ed88e0f561b3bfb3330137bd804846afd4slive</pre>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<p><em>SSL-related variables:</em></p>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<pre>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndHTTPS SSL_CLIENT_M_VERSION SSL_SERVER_M_VERSION
7b5535ed88e0f561b3bfb3330137bd804846afd4slive SSL_CLIENT_M_SERIAL SSL_SERVER_M_SERIAL
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSL_PROTOCOL SSL_CLIENT_V_START SSL_SERVER_V_START
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSL_SESSION_ID SSL_CLIENT_V_END SSL_SERVER_V_END
7b5535ed88e0f561b3bfb3330137bd804846afd4sliveSSL_CIPHER SSL_CLIENT_S_DN SSL_SERVER_S_DN
7b5535ed88e0f561b3bfb3330137bd804846afd4sliveSSL_CIPHER_EXPORT SSL_CLIENT_S_DN_C SSL_SERVER_S_DN_C
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSL_CIPHER_ALGKEYSIZE SSL_CLIENT_S_DN_ST SSL_SERVER_S_DN_ST
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSL_CIPHER_USEKEYSIZE SSL_CLIENT_S_DN_L SSL_SERVER_S_DN_L
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSL_VERSION_LIBRARY SSL_CLIENT_S_DN_O SSL_SERVER_S_DN_O
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndSSL_VERSION_INTERFACE SSL_CLIENT_S_DN_OU SSL_SERVER_S_DN_OU
7b5535ed88e0f561b3bfb3330137bd804846afd4slive SSL_CLIENT_S_DN_CN SSL_SERVER_S_DN_CN
7b5535ed88e0f561b3bfb3330137bd804846afd4slive SSL_CLIENT_S_DN_T SSL_SERVER_S_DN_T
7b5535ed88e0f561b3bfb3330137bd804846afd4slive SSL_CLIENT_S_DN_I SSL_SERVER_S_DN_I
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd SSL_CLIENT_S_DN_G SSL_SERVER_S_DN_G
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd SSL_CLIENT_S_DN_S SSL_SERVER_S_DN_S
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_S_DN_D SSL_SERVER_S_DN_D
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_S_DN_UID SSL_SERVER_S_DN_UID
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_S_DN_Email SSL_SERVER_S_DN_Email
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN SSL_SERVER_I_DN
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_C SSL_SERVER_I_DN_C
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_ST SSL_SERVER_I_DN_ST
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_L SSL_SERVER_I_DN_L
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_O SSL_SERVER_I_DN_O
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_OU SSL_SERVER_I_DN_OU
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_CN SSL_SERVER_I_DN_CN
fb77c505254b6e9c925e23e734463e87574f8f40kess SSL_CLIENT_I_DN_T SSL_SERVER_I_DN_T
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_I SSL_SERVER_I_DN_I
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_G SSL_SERVER_I_DN_G
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_S SSL_SERVER_I_DN_S
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_D SSL_SERVER_I_DN_D
fe64b2ba25510d8c9dba5560a2d537763566cf40nd SSL_CLIENT_I_DN_UID SSL_SERVER_I_DN_UID
06ba4a61654b3763ad65f52283832ebf058fdf1cslive SSL_CLIENT_I_DN_Email SSL_SERVER_I_DN_Email
06ba4a61654b3763ad65f52283832ebf058fdf1cslive SSL_CLIENT_A_SIG SSL_SERVER_A_SIG
06ba4a61654b3763ad65f52283832ebf058fdf1cslive SSL_CLIENT_A_KEY SSL_SERVER_A_KEY
06ba4a61654b3763ad65f52283832ebf058fdf1cslive SSL_CLIENT_CERT SSL_SERVER_CERT
06ba4a61654b3763ad65f52283832ebf058fdf1cslive SSL_CLIENT_CERT_CHAIN_<strong>n</strong>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess SSL_CLIENT_VERIFY
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess</pre>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="directive-section"><h2><a name="SSLRequireSSL" id="SSLRequireSSL">SSLRequireSSL</a> <a name="sslrequiressl" id="sslrequiressl">Directive</a></h2>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<table class="directive">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Deny access when SSL is not used for the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHTTP request</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLRequireSSL</code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive forbids access unless HTTP over SSL (i.e. HTTPS) is enabled for
fe64b2ba25510d8c9dba5560a2d537763566cf40ndthe current connection. This is very handy inside the SSL-enabled virtual
fe64b2ba25510d8c9dba5560a2d537763566cf40ndhost or directories for defending against configuration errors that expose
fe64b2ba25510d8c9dba5560a2d537763566cf40ndstuff that should be protected. When this directive is present all requests
fe64b2ba25510d8c9dba5560a2d537763566cf40ndare denied which are not using SSL.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLRequireSSL
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</code></p></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLSessionCache" id="SSLSessionCache">SSLSessionCache</a> <a name="sslsessioncache" id="sslsessioncache">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type of the global/inter-process SSL Session
fe64b2ba25510d8c9dba5560a2d537763566cf40ndCache</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLSessionCache <em>type</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLSessionCache none</code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</table>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis configures the storage type of the global/inter-process SSL Session
06ba4a61654b3763ad65f52283832ebf058fdf1csliveCache. This cache is an optional facility which speeds up parallel request
fe64b2ba25510d8c9dba5560a2d537763566cf40ndprocessing. For requests to the same server process (via HTTP keep-alive),
fe64b2ba25510d8c9dba5560a2d537763566cf40ndOpenSSL already caches the SSL session information locally. But because modern
fe64b2ba25510d8c9dba5560a2d537763566cf40ndclients request inlined images and other data via parallel requests (usually
fe64b2ba25510d8c9dba5560a2d537763566cf40ndup to four parallel requests are common) those requests are served by
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<em>different</em> pre-forked server processes. Here an inter-process cache
fe64b2ba25510d8c9dba5560a2d537763566cf40ndhelps to avoid unneccessary session handshakes.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThe following two storage <em>type</em>s are currently supported:</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<ul>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<li><code>none</code>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd <p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd This is the default and just disables the global/inter-process Session
fe64b2ba25510d8c9dba5560a2d537763566cf40nd Cache. There is no drawback in functionality, but a noticeable speed
fe64b2ba25510d8c9dba5560a2d537763566cf40nd penalty can be observed.</p></li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>dbm:/path/to/datafile</code>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This makes use of a DBM hashfile on the local disk to synchronize the
06ba4a61654b3763ad65f52283832ebf058fdf1cslive local OpenSSL memory caches of the server processes. The slight increase
130d299c4b2b15be45532a176604c71fdc7bea5bnd in I/O on the server results in a visible request speedup for your
06ba4a61654b3763ad65f52283832ebf058fdf1cslive clients, so this type of storage is generally recommended.</p></li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><code>shm:/path/to/datafile</code>[<code>(</code><em>size</em><code>)</code>]
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive This makes use of a high-performance hash table (approx. <em>size</em> bytes
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess in size) inside a shared memory segment in RAM (established via
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess <code>/path/to/datafile</code>) to synchronize the local OpenSSL memory
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess caches of the server processes. This storage type is not available on all
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess platforms.</p></li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</ul>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="example"><h3>Examples</h3><p><code>
130d299c4b2b15be45532a176604c71fdc7bea5bndSSLSessionCache dbm:/usr/local/apache/logs/ssl_gcache_data<br />
130d299c4b2b15be45532a176604c71fdc7bea5bndSSLSessionCache shm:/usr/local/apache/logs/ssl_gcache_data(512000)
130d299c4b2b15be45532a176604c71fdc7bea5bnd</code></p></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd
130d299c4b2b15be45532a176604c71fdc7bea5bnd</div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="directive-section"><h2><a name="SSLSessionCacheTimeout" id="SSLSessionCacheTimeout">SSLSessionCacheTimeout</a> <a name="sslsessioncachetimeout" id="sslsessioncachetimeout">Directive</a></h2>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<table class="directive">
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of seconds before an SSL session expires
6c5c651b0b97607b8c8b4965c1385c67699f217fndin the Session Cache</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLSessionCacheTimeout <em>seconds</em></code></td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLSessionCacheTimeout 300</code></td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
6c5c651b0b97607b8c8b4965c1385c67699f217fnd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
6c5c651b0b97607b8c8b4965c1385c67699f217fnd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive sets the timeout in seconds for the information stored in the
fe64b2ba25510d8c9dba5560a2d537763566cf40ndglobal/inter-process SSL Session Cache and the OpenSSL internal memory cache.
fe64b2ba25510d8c9dba5560a2d537763566cf40ndIt can be set as low as 15 for testing, but should be set to higher
fe64b2ba25510d8c9dba5560a2d537763566cf40ndvalues like 300 in real life.</p>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="example"><h3>Example</h3><p><code>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndSSLSessionCacheTimeout 600
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</code></p></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLUserName" id="SSLUserName">SSLUserName</a> <a name="sslusername" id="sslusername">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Variable name to determine user name</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLUserName <em>varname</em></code></td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, directory, .htaccess</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.1 and later</td></tr>
97a9a944b5887e91042b019776c41d5dd74557aferikabele</table>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis directive sets the "user" field in the Apache request object.
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThis is used by lower modules to identify the user with a character
130d299c4b2b15be45532a176604c71fdc7bea5bndstring. In particular, this may cause the environment variable
130d299c4b2b15be45532a176604c71fdc7bea5bnd<code>REMOTE_USER</code> to be set. The <em>varname</em> can be
130d299c4b2b15be45532a176604c71fdc7bea5bndany of the <a href="#envvars">SSL environment variables</a>.</p>
130d299c4b2b15be45532a176604c71fdc7bea5bnd<div class="example"><h3>Example</h3><p><code>
130d299c4b2b15be45532a176604c71fdc7bea5bndSSLUserName SSL_CLIENT_S_DN_CN
130d299c4b2b15be45532a176604c71fdc7bea5bnd</code></p></div>
130d299c4b2b15be45532a176604c71fdc7bea5bnd
97a9a944b5887e91042b019776c41d5dd74557aferikabele</div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<div class="directive-section"><h2><a name="SSLVerifyClient" id="SSLVerifyClient">SSLVerifyClient</a> <a name="sslverifyclient" id="sslverifyclient">Directive</a></h2>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<table class="directive">
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type of Client Certificate verification</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLVerifyClient <em>level</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLVerifyClient none</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive sets the Certificate verification level for the Client
fe64b2ba25510d8c9dba5560a2d537763566cf40ndAuthentication. Notice that this directive can be used both in per-server and
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndper-directory context. In per-server context it applies to the client
06ba4a61654b3763ad65f52283832ebf058fdf1csliveauthentication process used in the standard SSL handshake when a connection is
06ba4a61654b3763ad65f52283832ebf058fdf1csliveestablished. In per-directory context it forces a SSL renegotation with the
06ba4a61654b3763ad65f52283832ebf058fdf1cslivereconfigured client verification level after the HTTP request was read but
06ba4a61654b3763ad65f52283832ebf058fdf1cslivebefore the HTTP response is sent.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThe following levels are available for <em>level</em>:</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<ul>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><strong>none</strong>:
06ba4a61654b3763ad65f52283832ebf058fdf1cslive no client Certificate is required at all</li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><strong>optional</strong>:
06ba4a61654b3763ad65f52283832ebf058fdf1cslive the client <em>may</em> present a valid Certificate</li>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<li><strong>require</strong>:
06ba4a61654b3763ad65f52283832ebf058fdf1cslive the client <em>has to</em> present a valid Certificate</li>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<li><strong>optional_no_ca</strong>:
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess the client may present a valid Certificate<br />
fb77c505254b6e9c925e23e734463e87574f8f40kess but it need not to be (successfully) verifiable.</li>
fb77c505254b6e9c925e23e734463e87574f8f40kess</ul>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>In practice only levels <strong>none</strong> and
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<strong>require</strong> are really interesting, because level
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<strong>optional</strong> doesn't work with all browsers and level
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<strong>optional_no_ca</strong> is actually against the idea of
06ba4a61654b3763ad65f52283832ebf058fdf1csliveauthentication (but can be used to establish SSL test pages, etc.)</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLVerifyClient require
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess</code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cnd<div class="directive-section"><h2><a name="SSLVerifyDepth" id="SSLVerifyDepth">SSLVerifyDepth</a> <a name="sslverifydepth" id="sslverifydepth">Directive</a></h2>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<table class="directive">
97a9a944b5887e91042b019776c41d5dd74557aferikabele<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum depth of CA Certificates in Client
fe64b2ba25510d8c9dba5560a2d537763566cf40ndCertificate verification</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLVerifyDepth <em>number</em></code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLVerifyDepth 1</code></td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
313bb560bc5c323cfd40c9cad7335b4b8e060aedkess<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd</table>
fe64b2ba25510d8c9dba5560a2d537763566cf40nd<p>
fe64b2ba25510d8c9dba5560a2d537763566cf40ndThis directive sets how deeply mod_ssl should verify before deciding that the
fe64b2ba25510d8c9dba5560a2d537763566cf40ndclients don't have a valid certificate. Notice that this directive can be
fe64b2ba25510d8c9dba5560a2d537763566cf40ndused both in per-server and per-directory context. In per-server context it
fe64b2ba25510d8c9dba5560a2d537763566cf40ndapplies to the client authentication process used in the standard SSL
a7f40ca49262952d6dd69d021cf5b0c2b452ae4cndhandshake when a connection is established. In per-directory context it forces
06ba4a61654b3763ad65f52283832ebf058fdf1cslivea SSL renegotation with the reconfigured client verification depth after the
06ba4a61654b3763ad65f52283832ebf058fdf1csliveHTTP request was read but before the HTTP response is sent.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveThe depth actually is the maximum number of intermediate certificate issuers,
06ba4a61654b3763ad65f52283832ebf058fdf1cslivei.e. the number of CA certificates which are max allowed to be followed while
06ba4a61654b3763ad65f52283832ebf058fdf1csliveverifying the client certificate. A depth of 0 means that self-signed client
06ba4a61654b3763ad65f52283832ebf058fdf1cslivecertificates are accepted only, the default depth of 1 means the client
06ba4a61654b3763ad65f52283832ebf058fdf1cslivecertificate can be self-signed or has to be signed by a CA which is directly
06ba4a61654b3763ad65f52283832ebf058fdf1csliveknown to the server (i.e. the CA's certificate is under
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>), etc.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="example"><h3>Example</h3><p><code>
06ba4a61654b3763ad65f52283832ebf058fdf1csliveSSLVerifyDepth 10
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<div class="bottomlang">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p><span>Available Languages: </span><a href="/en/mod/mod_ssl.html" title="English">&nbsp;en&nbsp;</a></p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</div><div id="footer">
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p class="apache">Copyright 1999-2004 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive</body></html>