<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Copyright 2002-2005 The Apache Software Foundation or its licensors, as
 applicable.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manualpage metafile="index.xml.meta">
<parentdocument href="../"/>

  <title>Apache SSL/TLS Encryption</title>

<summary>
<p>The Apache HTTP Server module <module>mod_ssl</module>
provides an interface to the <a
href="http://www.openssl.org/">OpenSSL</a> library, which provides
Strong Encryption using the Secure Sockets Layer and Transport Layer
Security protocols.  The module and this documentation are based on
Ralf S. Engelschall's mod_ssl project.</p>
</summary>

<section id="documentation"><title>Documentation</title>
<ul>
<li><a href="ssl_intro.html">Introduction</a></li>
<li><a href="ssl_compat.html">Compatibility</a></li>
<li><a href="ssl_howto.html">How-To</a></li>
<li><a href="ssl_faq.html">Frequently Asked Questions</a></li>
<li><a href="../glossary.html">Glossary</a></li>
</ul>
</section>

<section id="mod-ssl"><title>mod_ssl</title>
<p>Extensive documentation on the directives and environment variables
provided by this module is provided in the <a
href="../mod/mod_ssl.html">mod_ssl reference documentation</a>.
</p>
</section>

</manualpage>


