]> granicus.if.org Git - apache/blob - docs/manual/ssl/ssl_overview.wml
4180ddb055370e42ecc8993683e4a70807eefc27
[apache] / docs / manual / ssl / ssl_overview.wml
1
2 #use "ssl_template.inc" title="Preface" tag=over num=1
3
4 <page_prev name="Cover" url="index.html">
5 <page_next name="Introduction" url="ssl_intro.html">
6
7 <quotation width=300 author="Tim J. Hudson, SSLeay F.A.Q.">
8 ``Ralf Engelschall has released an
9 excellent module that integrates
10 Apache and SSLeay.''
11 </quotation>
12
13 <p>
14 <table cellspacing=0 cellpadding=0 border=0>
15 <tr valign=bottom>
16 <td>
17
18 <big T>his module provides strong cryptography for the <A
19 HREF="http://www.apache.org/">Apache</A> (v1.3) webserver via the <A
20 HREF="http://www.netscape.com/newsref/std/SSL.html">Secure Socket Layer</A>
21 (SSL v2/v3) and <A HREF="http://www.consensus.com/ietf-tls/">Transport Layer
22 Security</A> (TLS v1) protocols by the help of the excellent SSL/TLS
23 implementation library <A HREF="http://www.openssl.org/">OpenSSL</A> from <A
24 HREF="mailto:eay@aus.rsa.com">Eric A. Young</A> and <A
25 HREF="mailto:tjh@cryptsoft.com">Tim Hudson</A>. 
26
27 </td>
28 <td>
29 &nbsp;&nbsp;
30 </td>
31 <td>
32
33 <div align=right>
34 <table cellspacing=0 cellpadding=5 border=0 bgcolor="#ccccff">
35 <tr>
36 <td bgcolor="#333399">
37 <font face="Arial,Helvetica" color="#ccccff">
38 <b>Global Table Of Contents</b>
39 </font>
40 </td>
41 </tr>
42 <tr>
43 <td>
44 <font face="Arial,Helvetica" size=-1>
45 <b>
46
47 <a href="ssl_overview.html">Chapter 1: Preface</a><br>
48 <a href="ssl_intro.html">Chapter 2: Introduction</a><br>
49 <a href="ssl_reference.html">Chapter 3: Reference</a><br>
50 <a href="ssl_compat.html">Chapter 4: Compatibility</a><br>
51 <a href="ssl_howto.html">Chapter 5: HowTo</a><br>
52 <a href="ssl_faq.html">Chapter 6: F.A.Q. List</a><br>
53 <a href="ssl_glossary.html">Chapter 7: Glossary</a><br>
54
55 </b>
56 </font>
57 </td>
58 </tr>
59 </table>
60 </div>
61
62 </td>
63 </tr>
64 </table>
65
66 <p>
67 The <A HREF="http://www.modssl.org/">mod_ssl</A> package was
68 created in April 1998 by <A HREF="mailto:rse@engelschall.com">Ralf S.
69 Engelschall</A> and was originally derived from the <A
70 HREF="http://www.apache-ssl.org/">Apache-SSL</A> package developed by <A
71 HREF="mailto:ben@algroup.co.uk">Ben Laurie</A>. It stays under a BSD-style
72 license which is equivalent to the license used by <A
73 HREF="http://www.apache.org/">The Apache Group</a> for the Apache webserver
74 itself. This means, in short, that you are free to use it both for commercial
75 and non-commercial purposes as long as you retain the authors' copyright
76 notices and give the proper credit. 
77
78 <h2>Legalese</h2>
79
80 Although the above conditions also apply to Apache and OpenSSL in general (both
81 are freely available and useable software packages), you should be aware that
82 especially the cryptographic algorithms used inside OpenSSL stay under
83 certain patents and perhaps import/export/use restrictions in some countries
84 of the world. So whether you can actually use the combination
85 Apache+mod_ssl+OpenSSL in your country depends mainly on your local state laws.
86 The authors of neither Apache nor mod_ssl nor OpenSSL are liable for any
87 violations you make here. 
88
89 <p>
90 If you're not sure what law details apply to your country you're strongly
91 advised to first determine them by consulting an attorney before using this
92 module. A lot of hints you can find in the <a
93 href="http://cwis.kub.nl/~frw/people/koops/lawsurvy.htm">International Law
94 Crypto Survey</a> which is a really comprehensive resource on this topic.  At
95 least two countries with heavy cryptography restrictions are well known:
96 In the United States (USA) it's not allowed to (re-)export mod_ssl
97 or OpenSSL And inside France it's not allowed to use any cryptography at all
98 when keys with more than 40 bits are used.
99
100 <p>
101 <box bdcolor="#cccccc" bdwidth=1 bdspace=10 bgcolor=white>
102 <font face="Arial,Helvetica">
103 This software package uses strong cryptography, so while it is created,
104 maintained and distributed from Germany and Switzerland (where it is legal to
105 do this), it falls under certain export/import and/or use restrictions in some
106 other parts of the world.
107 <p>
108 PLEASE REMEMBER THAT EXPORT/IMPORT AND/OR USE OF STRONG CRYPTOGRAPHY
109 SOFTWARE, PROVIDING CRYPTOGRAPHY HOOKS OR EVEN JUST COMMUNICATING TECHNICAL
110 DETAILS ABOUT CRYPTOGRAPHY SOFTWARE IS ILLEGAL IN SOME PARTS OF THE WORLD.
111 SO, WHEN YOU IMPORT THIS PACKAGE TO YOUR COUNTRY, RE-DISTRIBUTE IT FROM
112 THERE OR EVEN JUST EMAIL TECHNICAL SUGGESTIONS OR EVEN SOURCE PATCHES TO THE
113 AUTHOR OR OTHER PEOPLE YOU ARE STRONGLY ADVISED TO PAY CLOSE ATTENTION TO
114 ANY EXPORT/IMPORT AND/OR USE LAWS WHICH APPLY TO YOU.  THE AUTHOR OF MOD_SSL
115 IS NOT LIABLE FOR ANY VIOLATIONS YOU MAKE HERE. SO BE CAREFULLY YOURSELF, IT
116 IS YOUR RESPONSIBILITY.
117 </font>
118 <p>
119 <font face="Arial,Helvetica">
120 CREDIT INFORMATION:
121 This product includes software developed by Ben Laurie for use in the
122 Apache-SSL HTTP server project, software developed by Larry Wall and David
123 MacKenzie for use in the GNU project of the FSF and software developed by Dr.
124 Stephen N. Henson as a companion to OpenSSL.
125 </font>
126 </box>
127
128 <h2>Module Architecture</h2>
129
130 The mod_ssl package consists of the SSL module (part 1 in <a
131 href="#figure1">Figure 1</a>) and a set of source patches for Apache adding the
132 Extended API (EAPI) (part 2 in <a href="#figure1">Figure 1</a>) which is an
133 essential prerequisite in order to use mod_ssl. In other words: you can only
134 use the mod_ssl module when Apache's core code contains the Extended API. But
135 because when applying mod_ssl to the Apache source tree the Extended API is
136 also automatically added you usually don't have to think about this. It's
137 mainly important for package vendors who want to build separate packages for
138 Apache and mod_ssl. For more details on how to apply mod_ssl to the Apache
139 source tree please follow the <code>INSTALL</code> file in the mod_ssl
140 distribution.
141
142 <p>
143 <float name="figure1" caption="Figure 1: Module Architecture">
144 <img src="ssl_overview_fig1.gif" alt="">
145 </float>
146
147 <h2>Module Building</h2>
148
149 The SSL module (mod_ssl) resides under the <CODE>src/modules/ssl/</CODE>
150 subdirectory inside the Apache source tree and is a regular Apache module.  This
151 means that you can configure, build and install it like any other Apache module.
152 Usually this is done by using the APACI command
153
154 <blockquote>
155 <pre>
156 $ cd apache_1.3.x/
157 $ SSL_BASE=/path/to/openssl ./configure ... --enable-module=ssl
158 </pre>
159 </blockquote>
160
161 or by manually editing the <code>SSL_BASE</code> variable,
162 uncommenting the corresponding <code>AddModule</code> directive inside the
163 <code>src/Configuration</code> file and using the command
164
165 <blockquote>
166 <pre>
167 $ cd apache_1.3.x/src
168 $ ./Configure
169 </pre>
170 </blockquote>
171
172 for configuring. Additionally you can enable the <a
173 href="http://www.apache.org/docs/dso.html">Dynamic Shared Object</a> (DSO)
174 support for mod_ssl by either adding the <code>--enable-shared=ssl</code>
175 option to the APACI configure command line or by replacing the
176
177 <blockquote>
178 <pre>
179 AddModule ssl_module modules/ssl/libssl.a
180 </pre>
181 </blockquote>
182
183 line in <code>src/Configuration</code> with 
184
185 <blockquote>
186 <pre>
187 SharedModule ssl_module modules/ssl/libssl.so
188 </pre>
189 </blockquote>
190
191 Building mod_ssl as a DSO is especially interesting to achieve more run-time
192 flexibility, i.e. you can decide whether to use SSL or not at run-time instead
193 of build-time.  But notice that building mod_ssl as a DSO requires that your
194 OS/compiler supports building DSOs in the first place, and additionally that
195 they support linking of a DSO against a static library (libssl.a, libcrypo.a).
196 Not all platform support this.
197