<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>SSL/TLS Strong Encryption: How-To - Apache HTTP Server</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<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>
<p class="apache">Apache HTTP Server Version 2.3</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<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.3</a> &gt; <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>SSL/TLS Strong Encryption: How-To</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/ssl/ssl_howto.html" title="English">&nbsp;en&nbsp;</a></p>
</div>

<blockquote>
<p>The solution of this problem is trivial
and is left as an exercise for the reader.</p>

<p class="cite">-- <cite>Standard textbook cookie</cite></p>
</blockquote>

<p>How to solve particular security constraints for an SSL-aware
webserver is not always obvious because of the coherences between SSL,
HTTP and Apache's way of processing requests. This chapter gives
instructions on how to solve such typical situations. Treat it as a first
step to find out the final solution, but always try to understand the 
stuff before you use it. Nothing is worse than using a security solution
without knowing its restrictions and coherences.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#ciphersuites">Cipher Suites and Enforced Strong Security</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#accesscontrol">Client Authentication and Access Control</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="ciphersuites" id="ciphersuites">Cipher Suites and Enforced Strong Security</a></h2>

<ul>
<li><a href="#realssl">SSLv2 only server</a></li>
<li><a href="#onlystrong">strong encryption only server</a></li>
<li><a href="#upgradeenc">server gated cryptography</a></li>
<li><a href="#strongurl">stronger per-directory requirements</a></li>
</ul>

<h3><a name="realssl" id="realssl">How can I create a real SSLv2-only server?</a></h3>

    <p>The following creates an SSL server which speaks only the SSLv2 protocol and
    its ciphers.</p>

    <div class="example"><h3>httpd.conf</h3><p><code>
      SSLProtocol -all +SSLv2<br />
      SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP<br />
    </code></p></div>


<h3><a name="onlystrong" id="onlystrong">How can I create an SSL server which accepts strong encryption
only?</a></h3>

    <p>The following enables only the seven strongest ciphers:</p>
    <div class="example"><h3>httpd.conf</h3><p><code>
      SSLProtocol all<br />
      SSLCipherSuite HIGH:MEDIUM<br />
    </code></p></div>


<h3><a name="upgradeenc" id="upgradeenc">How can I create an SSL server which accepts strong encryption
only, but allows export browsers to upgrade to stronger encryption?</a></h3>

    <p>This facility is called Server Gated Cryptography (SGC) and details
    you can find in the <code>README.GlobalID</code> document in the
    mod_ssl distribution. In short: The server has a Global ID server
    certificate, signed by a special CA certificate from Verisign which
    enables strong encryption in export browsers. This works as following:
    The browser connects with an export cipher, the server sends its Global
    ID certificate, the browser verifies it and subsequently upgrades the
    cipher suite before any HTTP communication takes place. The question
    now is: How can we allow this upgrade, but enforce strong encryption.
    Or in other words: Browser either have to initially connect with
    strong encryption or have to upgrade to strong encryption, but are
    not allowed to keep the export ciphers. The following does the trick:</p>
    <div class="example"><h3>httpd.conf</h3><p><code>
      # allow all ciphers for the initial handshake,<br />
      # so export browsers can upgrade via SGC facility<br />
      SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
      <br />
      &lt;Directory /usr/local/apache2/htdocs&gt;<br />
      # but finally deny all browsers which haven't upgraded<br />
      SSLRequire %{SSL_CIPHER_USEKEYSIZE} &gt;= 128<br />
      &lt;/Directory&gt;
    </code></p></div>


<h3><a name="strongurl" id="strongurl">How can I create an SSL server which accepts all types of ciphers
in general, but requires a strong ciphers for access to a particular
URL?</a></h3>

    <p>Obviously you cannot just use a server-wide <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> which restricts the
    ciphers to the strong variants. But mod_ssl allows you to reconfigure
    the cipher suite in per-directory context and automatically forces
    a renegotiation of the SSL parameters to meet the new configuration.
    So, the solution is:</p>
    <div class="example"><p><code>
      # be liberal in general<br />
      SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
      <br />
      &lt;Location /strong/area&gt;<br />
      # but https://hostname/strong/area/ and below<br />
      # requires strong ciphers<br />
      SSLCipherSuite HIGH:MEDIUM<br />
      &lt;/Location&gt;
    </code></p></div>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="accesscontrol" id="accesscontrol">Client Authentication and Access Control</a></h2>

<ul>
<li><a href="#allclients">simple certificate-based client authentication</a></li>
<li><a href="#arbitraryclients">selective certificate-based client authentication</a></li>
<li><a href="#certauthenticate">particular certificate-based client authentication</a></li>
<li><a href="#intranet">intranet vs. internet authentication</a></li>
</ul>

<h3><a name="allclients" id="allclients">How can I authenticate clients based on certificates when I know
all my clients?</a></h3>

    <p>When you know your user community (i.e. a closed user group
    situation), as it's the case for instance in an Intranet, you can
    use plain certificate authentication. All you have to do is to
    create client certificates signed by your own CA certificate
    <code>ca.crt</code> and then verify the clients against this
    certificate.</p>
    <div class="example"><h3>httpd.conf</h3><p><code>
      # require a client certificate which has to be directly<br />
      # signed by our CA certificate in ca.crt<br />
      SSLVerifyClient require<br />
      SSLVerifyDepth 1<br />
      SSLCACertificateFile conf/ssl.crt/ca.crt
    </code></p></div>


<h3><a name="arbitraryclients" id="arbitraryclients">How can I authenticate my clients for a particular URL based on
certificates but still allow arbitrary clients to access the remaining
parts of the server?</a></h3>

    <p>For this we again use the per-directory reconfiguration feature
    of <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>:</p>

    <div class="example"><h3>httpd.conf</h3><p><code>
    SSLVerifyClient none<br />
    SSLCACertificateFile conf/ssl.crt/ca.crt<br />
    <br />
    &lt;Location /secure/area&gt;<br />
    SSLVerifyClient require<br />
    SSLVerifyDepth 1<br />
    &lt;/Location&gt;<br />
    </code></p></div>


<h3><a name="certauthenticate" id="certauthenticate">How can I authenticate only particular clients for a some URLs based
on certificates but still allow arbitrary clients to access the remaining
parts of the server?</a></h3>

    <p>The key is to check for various ingredients of the client certificate.
    Usually this means to check the whole or part of the Distinguished
    Name (DN) of the Subject. For this two methods exists: The <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> based variant and the <code class="directive"><a href="../mod/mod_ssl.html#sslrequire">SSLRequire</a></code> variant. The first method is
    good when the clients are of totally different type, i.e. when their
    DNs have no common fields (usually the organisation, etc.). In this
    case you've to establish a password database containing <em>all</em>
    clients. The second method is better when your clients are all part of
    a common hierarchy which is encoded into the DN. Then you can match
    them more easily.</p>

    <p>The first method:</p>
    <div class="example"><h3>httpd.conf</h3><pre>
SSLVerifyClient      none
&lt;Directory /usr/local/apache2/htdocs/secure/area&gt;

SSLVerifyClient      require
SSLVerifyDepth       5
SSLCACertificateFile conf/ssl.crt/ca.crt
SSLCACertificatePath conf/ssl.crt
SSLOptions           +FakeBasicAuth
SSLRequireSSL
AuthName             "Snake Oil Authentication"
AuthType             Basic
AuthBasicProvider    file
AuthUserFile         /usr/local/apache2/conf/httpd.passwd
require              valid-user
&lt;/Directory&gt;</pre></div>

    <div class="example"><h3>httpd.passwd</h3><pre>
/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
/C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA
/C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA</pre></div>

    <p>The second method:</p>

    <div class="example"><h3>httpd.conf</h3><pre>
SSLVerifyClient      none
&lt;Directory /usr/local/apache2/htdocs/secure/area&gt;

  SSLVerifyClient      require
  SSLVerifyDepth       5
  SSLCACertificateFile conf/ssl.crt/ca.crt
  SSLCACertificatePath conf/ssl.crt
  SSLOptions           +FakeBasicAuth
  SSLRequireSSL
  SSLRequire       %{SSL_CLIENT_S_DN_O}  eq "Snake Oil, Ltd." \
               and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}
&lt;/Directory&gt;</pre></div>


<h3><a name="intranet" id="intranet">How can I require HTTPS with strong ciphers and either basic
authentication or client certificates for access to a subarea on the
Intranet website for clients coming from the Internet but still allow
plain HTTP access for clients on the Intranet?</a></h3>

   <p>Let us assume the Intranet can be distinguished through the IP
   network 192.160.1.0/24 and the subarea on the Intranet website has
   the URL <code>/subarea</code>. Then configure the following outside
   your HTTPS virtual host (so it applies to both HTTPS and HTTP):</p>

    <div class="example"><h3>httpd.conf</h3><pre>
SSLCACertificateFile conf/ssl.crt/company-ca.crt

&lt;Directory /usr/local/apache2/htdocs&gt;
#   Outside the subarea only Intranet access is granted
Order                deny,allow
Deny                 from all
Allow                from 192.168.1.0/24
&lt;/Directory&gt;

&lt;Directory /usr/local/apache2/htdocs/subarea&gt;
#   Inside the subarea any Intranet access is allowed
#   but from the Internet only HTTPS + Strong-Cipher + Password
#   or the alternative HTTPS + Strong-Cipher + Client-Certificate

#   If HTTPS is used, make sure a strong cipher is used.
#   Additionally allow client certs as alternative to basic auth.
SSLVerifyClient      optional
SSLVerifyDepth       1
SSLOptions           +FakeBasicAuth +StrictRequire
SSLRequire           %{SSL_CIPHER_USEKEYSIZE} &gt;= 128

#   Force clients from the Internet to use HTTPS
RewriteEngine        on
RewriteCond          %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$
RewriteCond          %{HTTPS} !=on
RewriteRule          .* - [F]

#   Allow Network Access and/or Basic Auth
Satisfy              any

#   Network Access Control
Order                deny,allow
Deny                 from all
Allow                192.168.1.0/24

#   HTTP Basic Authentication
AuthType             basic
AuthName             "Protected Intranet Area"
AuthBasicProvider    file
AuthUserFile         conf/protected.passwd
Require              valid-user
&lt;/Directory&gt;</pre></div>

</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/ssl/ssl_howto.html" title="English">&nbsp;en&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<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>
</body></html>