diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-07 02:04:06 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-07 02:04:06 +0000 |
commit | 5dff2d61cc1c27747ee398e04d8e02843aabb1f8 (patch) | |
tree | a67c336b406c8227bac912beb74a1ad3cdc55100 /docs/manual/ssl | |
parent | Initial commit. (diff) | |
download | apache2-upstream.tar.xz apache2-upstream.zip |
Adding upstream version 2.4.38.upstream/2.4.38upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/manual/ssl')
-rw-r--r-- | docs/manual/ssl/index.html | 21 | ||||
-rw-r--r-- | docs/manual/ssl/index.html.en | 71 | ||||
-rw-r--r-- | docs/manual/ssl/index.html.fr.utf8 | 73 | ||||
-rw-r--r-- | docs/manual/ssl/index.html.ja.utf8 | 72 | ||||
-rw-r--r-- | docs/manual/ssl/index.html.tr.utf8 | 71 | ||||
-rw-r--r-- | docs/manual/ssl/index.html.zh-cn.utf8 | 72 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_compat.html | 9 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_compat.html.en | 248 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_compat.html.fr.utf8 | 257 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_faq.html | 9 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_faq.html.en | 935 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_faq.html.fr.utf8 | 1036 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_howto.html | 9 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_howto.html.en | 449 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_howto.html.fr.utf8 | 489 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_intro.html | 13 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_intro.html.en | 672 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_intro.html.fr.utf8 | 727 | ||||
-rw-r--r-- | docs/manual/ssl/ssl_intro.html.ja.utf8 | 730 |
19 files changed, 5963 insertions, 0 deletions
diff --git a/docs/manual/ssl/index.html b/docs/manual/ssl/index.html new file mode 100644 index 0000000..163d682 --- /dev/null +++ b/docs/manual/ssl/index.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: index.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.fr.utf8 +Content-Language: fr +Content-type: text/html; charset=UTF-8 + +URI: index.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: index.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 + +URI: index.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/ssl/index.html.en b/docs/manual/ssl/index.html.en new file mode 100644 index 0000000..d1a9d6b --- /dev/null +++ b/docs/manual/ssl/index.html.en @@ -0,0 +1,71 @@ +<?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> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Apache SSL/TLS Encryption - Apache HTTP Server Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p> +<p class="apache">Apache HTTP Server Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="../"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>Apache SSL/TLS Encryption</h1> +<div class="toplang"> +<p><span>Available Languages: </span><a href="../en/ssl/" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div> + +<p>The Apache HTTP Server module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> +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.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#documentation">Documentation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#mod-ssl">mod_ssl</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="documentation" id="documentation">Documentation</a></h2> +<ul> +<li><a href="ssl_howto.html">mod_ssl Configuration How-To</a></li> +<li><a href="ssl_intro.html">Introduction To SSL</a></li> +<li><a href="ssl_compat.html">Compatibility</a></li> +<li><a href="ssl_faq.html">Frequently Asked Questions</a></li> +<li><a href="../glossary.html">Glossary</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="mod-ssl" id="mod-ssl">mod_ssl</a></h2> +<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> +</div></div> +<div class="bottomlang"> +<p><span>Available Languages: </span><a href="../en/ssl/" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div><div id="footer"> +<p class="apache">Copyright 2019 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> +<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/index.html.fr.utf8 b/docs/manual/ssl/index.html.fr.utf8 new file mode 100644 index 0000000..2042b32 --- /dev/null +++ b/docs/manual/ssl/index.html.fr.utf8 @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="fr" xml:lang="fr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Apache et le Chiffrement SSL/TLS - Serveur HTTP Apache Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> +<p class="apache">Serveur HTTP Apache Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="../"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>Apache et le Chiffrement SSL/TLS</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="TÌrkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div> + +<p>Le module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> du serveur HTTP Apache fournit une +interface avec la bibliothÚque <a href="http://www.openssl.org/">OpenSSL</a>, qui permet d'effectuer un +chiffrement fort en s'appuyant sur les protocoles "Couche Points d'accÚs +Sécurisés" (Secure Sockets Layer - SSL) et "Sécurité de la Couche Transport" +(Transport Layer Security - TLS).</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#documentation">Documentation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#mod-ssl">mod_ssl</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="documentation" id="documentation">Documentation</a></h2> +<ul> +<li><a href="ssl_howto.html">Comment configurer SSL ?</a></li> +<li><a href="ssl_intro.html">Introduction à SSL</a></li> +<li><a href="ssl_compat.html">Compatibilité</a></li> +<li><a href="ssl_faq.html">Foire aux questions</a></li> +<li><a href="../glossary.html">Glossaire</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="mod-ssl" id="mod-ssl">mod_ssl</a></h2> +<p>La documentation complÚte sur les directives et les variables +d'environnement fournies par ce module se trouve dans la +<a href="../mod/mod_ssl.html">documentation de référence de mod_ssl</a>. +</p> +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="TÌrkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />Autorisé sous <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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/index.html.ja.utf8 b/docs/manual/ssl/index.html.ja.utf8 new file mode 100644 index 0000000..731af04 --- /dev/null +++ b/docs/manual/ssl/index.html.ja.utf8 @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="ja" xml:lang="ja"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Apache ã® SSL/TLS æå·å - Apache HTTP ãµãŒã ããŒãžã§ã³ 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">ã¢ãžã¥ãŒã«</a> | <a href="../mod/directives.html">ãã£ã¬ã¯ãã£ã</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">çšèª</a> | <a href="../sitemap.html">ãµã€ãããã</a></p> +<p class="apache">Apache HTTP ãµãŒã ããŒãžã§ã³ 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="../"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP ãµãŒã</a> > <a href="http://httpd.apache.org/docs/">ããã¥ã¡ã³ããŒã·ã§ã³</a> > <a href="../">ããŒãžã§ã³ 2.4</a></div><div id="page-content"><div id="preamble"><h1>Apache ã® SSL/TLS æå·å</h1> +<div class="toplang"> +<p><span>翻蚳æžã¿èšèª: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="TÃŒrkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div> + +<p>Apache HTTP ãµãŒãã¢ãžã¥ãŒã« <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ã +<a href="http://www.openssl.org/">OpenSSL</a> +ã©ã€ãã©ãªãžã®ã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŠããŸããããã㯠+Secure Sockts Layer ãš Transport Layer Security +ãããã³ã«ãçšãã匷åãªæå·åãæäŸããŸãã</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#documentation">Documentation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#mod-ssl">mod_ssl</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="documentation" id="documentation">Documentation</a></h2> +<ul> +<li><a href="ssl_howto.html">mod_ssl Configuration How-To</a></li> +<li><a href="ssl_intro.html">Introduction To SSL</a></li> +<li><a href="ssl_compat.html">äºææ§</a></li> +<li><a href="ssl_faq.html">ãããã質å</a></li> +<li><a href="../glossary.html">çšèª</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="mod-ssl" id="mod-ssl">mod_ssl</a></h2> +<p>ãã®ã¢ãžã¥ãŒã«ã§æäŸããããã£ã¬ã¯ãã£ããç°å¢å€æ°ã«é¢ãã +詳ããææžã¯ã<a href="../mod/mod_ssl.html">mod_ssl +ãªãã¡ã¬ã³ã¹</a>ãã芧äžããã</p> +</div></div> +<div class="bottomlang"> +<p><span>翻蚳æžã¿èšèª: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="TÃŒrkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />ãã®ææžã¯ <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> ã®ã©ã€ã»ã³ã¹ã§æäŸãããŠããŸãã.</p> +<p class="menu"><a href="../mod/">ã¢ãžã¥ãŒã«</a> | <a href="../mod/directives.html">ãã£ã¬ã¯ãã£ã</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">çšèª</a> | <a href="../sitemap.html">ãµã€ãããã</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/index.html.tr.utf8 b/docs/manual/ssl/index.html.tr.utf8 new file mode 100644 index 0000000..d6766c4 --- /dev/null +++ b/docs/manual/ssl/index.html.tr.utf8 @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="tr" xml:lang="tr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Apache SSL/TLS Åifrelemesi - Apache HTTP Sunucusu SÃŒrÃŒm 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">ModÃŒller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p> +<p class="apache">Apache HTTP Sunucusu SÃŒrÃŒm 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="../"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">SÃŒrÃŒm 2.4</a></div><div id="page-content"><div id="preamble"><h1>Apache SSL/TLS Åifrelemesi</h1> +<div class="toplang"> +<p><span>Mevcut Diller: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" title="TÃŒrkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div> + + <p>Apache HTTP Sunucusunun <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> modÃŒlÃŒ, GÃŒvenli Soketler + Katmanı (SSL) ve Aktarım Katmanı GÃŒvenliÄi (TLS) protokollerinin + kullanıldıÄı SaÄlam Åifreleme desteÄini saÄlayan <a href="http://www.openssl.org/">OpenSSL</a> kÃŒtÃŒphanesine bir arayÃŒz + içerir.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#documentation">Belgeler</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#mod-ssl"><code>mod_ssl</code> ModÃŒlÃŒ</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="documentation" id="documentation">Belgeler</a></h2> + <ul> + <li><a href="ssl_howto.html">mod_ssl Yapılandırması Nasıl</a></li> + <li><a href="ssl_intro.html">SSL'ye GiriÅ</a></li> + <li><a href="ssl_compat.html">Uyumluluk</a></li> + <li><a href="ssl_faq.html">Sıkça Sorulan Sorular</a></li> + <li><a href="../glossary.html">Terimler</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="mod-ssl" id="mod-ssl"><code>mod_ssl</code> ModÃŒlÃŒ</a></h2> + <p>Bu modÃŒlce saÄlanan yönergeler ve ortam deÄiÅkenleri + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> baÅvuru kılavuzunda ayrıntılı olarak + açıklanmıÅtır.</p> +</div></div> +<div class="bottomlang"> +<p><span>Mevcut Diller: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" title="TÃŒrkçe"> tr </a> | +<a href="../zh-cn/ssl/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p> +</div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p> +<p class="menu"><a href="../mod/">ModÃŒller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/index.html.zh-cn.utf8 b/docs/manual/ssl/index.html.zh-cn.utf8 new file mode 100644 index 0000000..e8e8258 --- /dev/null +++ b/docs/manual/ssl/index.html.zh-cn.utf8 @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="zh-cn" xml:lang="zh-cn"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Apache SSL/TLS å å¯ - Apache HTTP æå¡åš çæ¬ 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">æš¡å</a> | <a href="../mod/directives.html">æ什</a> | <a href="http://wiki.apache.org/httpd/FAQ">åžžè§é®é¢</a> | <a href="../glossary.html">æ¯è¯</a> | <a href="../sitemap.html">çœç«å¯Œèª</a></p> +<p class="apache">Apache HTTP æå¡åšçæ¬ 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="../"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP æå¡åš</a> > <a href="http://httpd.apache.org/docs/">ææ¡£</a> > <a href="../">çæ¬ 2.4</a></div><div id="page-content"><div id="preamble"><h1>Apache SSL/TLS å å¯</h1> +<div class="toplang"> +<p><span>å¯çšè¯èš: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="TÃŒrkçe"> tr </a> | +<a href="../zh-cn/ssl/" title="Simplified Chinese"> zh-cn </a></p> +</div> +<div class="outofdate">æ€ç¿»è¯å¯èœè¿æãèŠäºè§£æè¿çæŽæ¹ïŒè¯·é
读è±æçã</div> + +<p>Apache HTTP æå¡åšæš¡å <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> +æäŸäºäž <a href="http://www.openssl.org/">OpenSSL</a> +çæ¥å£ïŒå®äœ¿çšå®å
šå¥æ¥åå±åäŒ èŸå±å®å
šåè®®æäŸäºåŒºå å¯ã +æ€æš¡åäžè¿ç¯ææ¡£éœåºäº +Ralf S. Engelschall ç mod_ssl 项ç®ã</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#documentation">ææ¡£</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#mod-ssl">mod_ssl</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="documentation" id="documentation">ææ¡£</a></h2> +<ul> +<li><a href="ssl_intro.html">ç®ä»</a></li> +<li><a href="ssl_compat.html">å
Œå®¹æ§</a></li> +<li><a href="ssl_howto.html">åžžè§æäœ</a></li> +<li><a href="ssl_faq.html">åžžè§é®é¢</a></li> +<li><a href="../glossary.html">æ¯è¯</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="mod-ssl" id="mod-ssl">mod_ssl</a></h2> +<p>æ€æš¡åæäŸçæ什åç¯å¢åéçææ¡£äœäº <a href="../mod/mod_ssl.html">mod_ssl åèæå</a>ã +</p> +</div></div> +<div class="bottomlang"> +<p><span>å¯çšè¯èš: </span><a href="../en/ssl/" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../tr/ssl/" hreflang="tr" rel="alternate" title="TÃŒrkçe"> tr </a> | +<a href="../zh-cn/ssl/" title="Simplified Chinese"> zh-cn </a></p> +</div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />åºäº <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> 讞å¯è¯.</p> +<p class="menu"><a href="../mod/">æš¡å</a> | <a href="../mod/directives.html">æ什</a> | <a href="http://wiki.apache.org/httpd/FAQ">åžžè§é®é¢</a> | <a href="../glossary.html">æ¯è¯</a> | <a href="../sitemap.html">çœç«å¯Œèª</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_compat.html b/docs/manual/ssl/ssl_compat.html new file mode 100644 index 0000000..0e4471e --- /dev/null +++ b/docs/manual/ssl/ssl_compat.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ssl_compat.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: ssl_compat.html.fr.utf8 +Content-Language: fr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/ssl/ssl_compat.html.en b/docs/manual/ssl/ssl_compat.html.en new file mode 100644 index 0000000..6677074 --- /dev/null +++ b/docs/manual/ssl/ssl_compat.html.en @@ -0,0 +1,248 @@ +<?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> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>SSL/TLS Strong Encryption: Compatibility - Apache HTTP Server Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p> +<p class="apache">Apache HTTP Server Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>SSL/TLS Strong Encryption: Compatibility</h1> +<div class="toplang"> +<p><span>Available Languages: </span><a href="../en/ssl/ssl_compat.html" title="English"> en </a> | +<a href="../fr/ssl/ssl_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> +</div> + +<p> +This page covers backwards compatibility between mod_ssl and other +SSL solutions. mod_ssl is not the only SSL solution for Apache; four +additional products are (or were) also available: Ben Laurie's freely +available <a href="http://www.apache-ssl.org/">Apache-SSL</a> (from +where mod_ssl were originally derived in 1998), Red Hat's commercial +Secure Web Server (which was based on mod_ssl), Covalent's commercial +Raven SSL Module (also based on +mod_ssl) and finally C2Net's (now Red Hat's) commercial product <a href="http://www.redhat.com/explore/stronghold/">Stronghold</a> (based +on a different evolution branch, named Sioux up to Stronghold 2.x, and +based on mod_ssl since Stronghold 3.x).</p> + +<p> +mod_ssl mostly provides a superset of the functionality of all the other +solutions, so it's simple to migrate from one of the older modules to +mod_ssl. The configuration directives and environment variable names +used by the older SSL solutions vary from those used in mod_ssl; +mapping tables are included here to give the equivalents used by mod_ssl.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configuration">Configuration Directives</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#variables">Environment Variables</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#customlog">Custom Log Functions</a></li> +</ul><h3>See also</h3><ul class="seealso"><li><a href="#comments_section">Comments</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="configuration" id="configuration">Configuration Directives</a></h2> +<p>The mapping between configuration directives used by Apache-SSL +1.x and mod_ssl 2.0.x is given in <a href="#table1">Table +1</a>. The mapping from Sioux 1.x and Stronghold 2.x is only partial +because of special functionality in these interfaces which mod_ssl +doesn't provide.</p> + + +<h3><a name="table1" id="table1">Table 1: Configuration Directive Mapping</a></h3> + +<table><tr class="header"><th>Old Directive</th><th>mod_ssl Directive</th><th>Comment</th></tr> +<tr class="header"><th colspan="3">Apache-SSL 1.x & mod_ssl 2.0.x compatibility:</th></tr> +<tr><td><code>SSLEnable</code></td><td><code>SSLEngine on</code></td><td>compactified</td></tr> +<tr class="odd"><td><code>SSLDisable</code></td><td><code>SSLEngine off</code></td><td>compactified</td></tr> +<tr><td><code>SSLLogFile</code> <em>file</em></td><td><code /></td><td>Use per-module <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> setting instead.</td></tr> +<tr class="odd"><td><code>SSLRequiredCiphers</code> <em>spec</em></td><td><code>SSLCipherSuite</code> <em>spec</em></td><td>renamed</td></tr> +<tr><td><code>SSLRequireCipher</code> <em>c1</em> ...</td><td><code>SSLRequire %{SSL_CIPHER} in {"</code><em>c1</em><code>", +...}</code></td><td>generalized</td></tr> +<tr class="odd"><td><code>SSLBanCipher</code> <em>c1</em> ...</td><td><code>SSLRequire not (%{SSL_CIPHER} in {"</code><em>c1</em><code>", +...})</code></td><td>generalized</td></tr> +<tr><td><code>SSLFakeBasicAuth</code></td><td><code>SSLOptions +FakeBasicAuth</code></td><td>merged</td></tr> +<tr class="odd"><td><code>SSLCacheServerPath</code> <em>dir</em></td><td>-</td><td>functionality removed</td></tr> +<tr><td><code>SSLCacheServerPort</code> <em>integer</em></td><td>-</td><td>functionality removed</td></tr> +<tr class="header"><th colspan="3">Apache-SSL 1.x compatibility:</th></tr> +<tr class="odd"><td><code>SSLExportClientCertificates</code></td><td><code>SSLOptions +ExportCertData</code></td><td>merged</td></tr> +<tr><td><code>SSLCacheServerRunDir</code> <em>dir</em></td><td>-</td><td>functionality not supported</td></tr> +<tr class="header"><th colspan="3">Sioux 1.x compatibility:</th></tr> +<tr class="odd"><td><code>SSL_CertFile</code> <em>file</em></td><td><code>SSLCertificateFile</code> <em>file</em></td><td>renamed</td></tr> +<tr><td><code>SSL_KeyFile</code> <em>file</em></td><td><code>SSLCertificateKeyFile</code> <em>file</em></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CipherSuite</code> <em>arg</em></td><td><code>SSLCipherSuite</code> <em>arg</em></td><td>renamed</td></tr> +<tr><td><code>SSL_X509VerifyDir</code> <em>arg</em></td><td><code>SSLCACertificatePath</code> <em>arg</em></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_Log</code> <em>file</em></td><td><code>-</code></td><td>Use per-module <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> setting instead.</td></tr> +<tr><td><code>SSL_Connect</code> <em>flag</em></td><td><code>SSLEngine</code> <em>flag</em></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_ClientAuth</code> <em>arg</em></td><td><code>SSLVerifyClient</code> <em>arg</em></td><td>renamed</td></tr> +<tr><td><code>SSL_X509VerifyDepth</code> <em>arg</em></td><td><code>SSLVerifyDepth</code> <em>arg</em></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_FetchKeyPhraseFrom</code> <em>arg</em></td><td>-</td><td>not directly mappable; use SSLPassPhraseDialog</td></tr> +<tr><td><code>SSL_SessionDir</code> <em>dir</em></td><td>-</td><td>not directly mappable; use SSLSessionCache</td></tr> +<tr class="odd"><td><code>SSL_Require</code> <em>expr</em></td><td>-</td><td>not directly mappable; use SSLRequire</td></tr> +<tr><td><code>SSL_CertFileType</code> <em>arg</em></td><td>-</td><td>functionality not supported</td></tr> +<tr class="odd"><td><code>SSL_KeyFileType</code> <em>arg</em></td><td>-</td><td>functionality not supported</td></tr> +<tr><td><code>SSL_X509VerifyPolicy</code> <em>arg</em></td><td>-</td><td>functionality not supported</td></tr> +<tr class="odd"><td><code>SSL_LogX509Attributes</code> <em>arg</em></td><td>-</td><td>functionality not supported</td></tr> +<tr class="header"><th colspan="3">Stronghold 2.x compatibility:</th></tr> +<tr><td><code>StrongholdAccelerator</code> <em>engine</em></td><td><code>SSLCryptoDevice</code> <em>engine</em></td><td>renamed</td></tr> +<tr class="odd"><td><code>StrongholdKey</code> <em>dir</em></td><td>-</td><td>functionality not needed</td></tr> +<tr><td><code>StrongholdLicenseFile</code> <em>dir</em></td><td>-</td><td>functionality not needed</td></tr> +<tr class="odd"><td><code>SSLFlag</code> <em>flag</em></td><td><code>SSLEngine</code> <em>flag</em></td><td>renamed</td></tr> +<tr><td><code>SSLSessionLockFile</code> <em>file</em></td><td><code>SSLMutex</code> <em>file</em></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSLCipherList</code> <em>spec</em></td><td><code>SSLCipherSuite</code> <em>spec</em></td><td>renamed</td></tr> +<tr><td><code>RequireSSL</code></td><td><code>SSLRequireSSL</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSLErrorFile</code> <em>file</em></td><td>-</td><td>functionality not supported</td></tr> +<tr><td><code>SSLRoot</code> <em>dir</em></td><td>-</td><td>functionality not supported</td></tr> +<tr class="odd"><td><code>SSL_CertificateLogDir</code> <em>dir</em></td><td>-</td><td>functionality not supported</td></tr> +<tr><td><code>AuthCertDir</code> <em>dir</em></td><td>-</td><td>functionality not supported</td></tr> +<tr class="odd"><td><code>SSL_Group</code> <em>name</em></td><td>-</td><td>functionality not supported</td></tr> +<tr><td><code>SSLProxyMachineCertPath</code> <em>dir</em></td><td><code>SSLProxyMachineCertificatePath</code> <em>dir</em></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSLProxyMachineCertFile</code> <em>file</em></td><td><code>SSLProxyMachineCertificateFile</code> <em>file</em></td><td>renamed</td></tr> +<tr><td><code>SSLProxyCipherList</code> <em>spec</em></td><td><code>SSLProxyCipherSpec</code> <em>spec</em></td><td>renamed</td></tr> +</table> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="variables" id="variables">Environment Variables</a></h2> + +<p>The mapping between environment variable names used by the older +SSL solutions and the names used by mod_ssl is given in <a href="#table2">Table 2</a>.</p> + +<h3><a name="table2" id="table2">Table 2: Environment Variable Derivation</a></h3> + +<table><tr class="header"><th>Old Variable</th><th>mod_ssl Variable</th><th>Comment</th></tr> +<tr><td><code>SSL_PROTOCOL_VERSION</code></td><td><code>SSL_PROTOCOL</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSLEAY_VERSION</code></td><td><code>SSL_VERSION_LIBRARY</code></td><td>renamed</td></tr> +<tr><td><code>HTTPS_SECRETKEYSIZE</code></td><td><code>SSL_CIPHER_USEKEYSIZE</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>HTTPS_KEYSIZE</code></td><td><code>SSL_CIPHER_ALGKEYSIZE</code></td><td>renamed</td></tr> +<tr><td><code>HTTPS_CIPHER</code></td><td><code>SSL_CIPHER</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>HTTPS_EXPORT</code></td><td><code>SSL_CIPHER_EXPORT</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_KEY_SIZE</code></td><td><code>SSL_CIPHER_ALGKEYSIZE</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CERTIFICATE</code></td><td><code>SSL_SERVER_CERT</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_CERT_START</code></td><td><code>SSL_SERVER_V_START</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CERT_END</code></td><td><code>SSL_SERVER_V_END</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_CERT_SERIAL</code></td><td><code>SSL_SERVER_M_SERIAL</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_SIGNATURE_ALGORITHM</code></td><td><code>SSL_SERVER_A_SIG</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_DN</code></td><td><code>SSL_SERVER_S_DN</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CN</code></td><td><code>SSL_SERVER_S_DN_CN</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_EMAIL</code></td><td><code>SSL_SERVER_S_DN_Email</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_O</code></td><td><code>SSL_SERVER_S_DN_O</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_OU</code></td><td><code>SSL_SERVER_S_DN_OU</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_C</code></td><td><code>SSL_SERVER_S_DN_C</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_SP</code></td><td><code>SSL_SERVER_S_DN_SP</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_L</code></td><td><code>SSL_SERVER_S_DN_L</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_IDN</code></td><td><code>SSL_SERVER_I_DN</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_ICN</code></td><td><code>SSL_SERVER_I_DN_CN</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_IEMAIL</code></td><td><code>SSL_SERVER_I_DN_Email</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_IO</code></td><td><code>SSL_SERVER_I_DN_O</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_IOU</code></td><td><code>SSL_SERVER_I_DN_OU</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_IC</code></td><td><code>SSL_SERVER_I_DN_C</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SERVER_ISP</code></td><td><code>SSL_SERVER_I_DN_SP</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SERVER_IL</code></td><td><code>SSL_SERVER_I_DN_L</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_CERTIFICATE</code></td><td><code>SSL_CLIENT_CERT</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_CERT_START</code></td><td><code>SSL_CLIENT_V_START</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_CERT_END</code></td><td><code>SSL_CLIENT_V_END</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_CERT_SERIAL</code></td><td><code>SSL_CLIENT_M_SERIAL</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_SIGNATURE_ALGORITHM</code></td><td><code>SSL_CLIENT_A_SIG</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_DN</code></td><td><code>SSL_CLIENT_S_DN</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_CN</code></td><td><code>SSL_CLIENT_S_DN_CN</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_EMAIL</code></td><td><code>SSL_CLIENT_S_DN_Email</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_O</code></td><td><code>SSL_CLIENT_S_DN_O</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_OU</code></td><td><code>SSL_CLIENT_S_DN_OU</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_C</code></td><td><code>SSL_CLIENT_S_DN_C</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_SP</code></td><td><code>SSL_CLIENT_S_DN_SP</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_L</code></td><td><code>SSL_CLIENT_S_DN_L</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_IDN</code></td><td><code>SSL_CLIENT_I_DN</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_ICN</code></td><td><code>SSL_CLIENT_I_DN_CN</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_IEMAIL</code></td><td><code>SSL_CLIENT_I_DN_Email</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_IO</code></td><td><code>SSL_CLIENT_I_DN_O</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_IOU</code></td><td><code>SSL_CLIENT_I_DN_OU</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_IC</code></td><td><code>SSL_CLIENT_I_DN_C</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_ISP</code></td><td><code>SSL_CLIENT_I_DN_SP</code></td><td>renamed</td></tr> +<tr><td><code>SSL_CLIENT_IL</code></td><td><code>SSL_CLIENT_I_DN_L</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_EXPORT</code></td><td><code>SSL_CIPHER_EXPORT</code></td><td>renamed</td></tr> +<tr><td><code>SSL_KEYSIZE</code></td><td><code>SSL_CIPHER_ALGKEYSIZE</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_SECKEYSIZE</code></td><td><code>SSL_CIPHER_USEKEYSIZE</code></td><td>renamed</td></tr> +<tr><td><code>SSL_SSLEAY_VERSION</code></td><td><code>SSL_VERSION_LIBRARY</code></td><td>renamed</td></tr> +<tr class="odd"><td><code>SSL_STRONG_CRYPTO</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_KEY_EXP</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_KEY_ALGORITHM</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_KEY_SIZE</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_SESSIONDIR</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_CERTIFICATELOGDIR</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CERTFILE</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_KEYFILE</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_KEYFILETYPE</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr><td><code>SSL_CLIENT_KEY_EXP</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_KEY_ALGORITHM</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +<tr><td><code>SSL_CLIENT_KEY_SIZE</code></td><td><code>-</code></td><td>Not supported by mod_ssl</td></tr> +</table> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="customlog" id="customlog">Custom Log Functions</a></h2> +<p> +When mod_ssl is enabled, additional functions exist for the <a href="../mod/mod_log_config.html#formats">Custom Log Format</a> of +<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> as documented in the Reference +Chapter. Beside the ``<code>%{</code><em>varname</em><code>}x</code>'' +eXtension format function which can be used to expand any variables provided +by any module, an additional Cryptography +``<code>%{</code><em>name</em><code>}c</code>'' cryptography format function +exists for backward compatibility. The currently implemented function calls +are listed in <a href="#table3">Table 3</a>.</p> + +<h3><a name="table3" id="table3">Table 3: Custom Log Cryptography Function</a></h3> + +<table> + +<tr><th>Function Call</th><th>Description</th></tr> + +<tr><td><code>%...{version}c</code></td> <td>SSL protocol version</td></tr> +<tr><td><code>%...{cipher}c</code></td> <td>SSL cipher</td></tr> +<tr><td><code>%...{subjectdn}c</code></td> <td>Client Certificate Subject Distinguished Name</td></tr> +<tr><td><code>%...{issuerdn}c</code></td> <td>Client Certificate Issuer Distinguished Name</td></tr> +<tr><td><code>%...{errcode}c</code></td> <td>Certificate Verification Error (numerical)</td></tr> + +<tr><td><code>%...{errstr}c</code></td> <td>Certificate Verification Error (string)</td></tr> +</table> + +</div></div> +<div class="bottomlang"> +<p><span>Available Languages: </span><a href="../en/ssl/ssl_compat.html" title="English"> en </a> | +<a href="../fr/ssl/ssl_compat.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_compat.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 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> +<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_compat.html.fr.utf8 b/docs/manual/ssl/ssl_compat.html.fr.utf8 new file mode 100644 index 0000000..d1bc973 --- /dev/null +++ b/docs/manual/ssl/ssl_compat.html.fr.utf8 @@ -0,0 +1,257 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="fr" xml:lang="fr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Chiffrement fort SSL/TLS : Compatibilité - Serveur HTTP Apache Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> +<p class="apache">Serveur HTTP Apache Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>Chiffrement fort SSL/TLS : Compatibilité</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_compat.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_compat.html" title="Français"> fr </a></p> +</div> + + +<p>Ce document couvre la compatibilité ascendante entre mod_ssl et +d'autres solutions SSL. mod_ssl n'est pas la seule solution SSL pour Apache ; +quatre autres produits sont (ou ont été) également disponibles : +<a href="http://www.apache-ssl.org/">Apache-SSL</a>, le produit libre de +Ben Laurie (d'où mod_ssl est issu à l'origine en 1998), Secure +Web Server, un produit commercial de Red Hat (basé sur mod_ssl), +Raven SSL Module, un produit commercial +de Covalent (basé lui aussi sur mod_ssl), et enfin <a href="http://www.redhat.com/explore/stronghold/">Stronghold</a>, produit +commercial de C2Net et maintenant de Red Hat, (basé sur une branche +d'évolution différente appelée Sioux jusqu'à Stronghold 2.x et basé sur +mod_ssl depuis Stronghold 3.x).</p> + +<p>En plus de ses fonctionnalités propres, mod_ssl rassemble la plupart de +celles des autres solutions SSL, si bien qu'il est trÚs simple de +migrer depuis un module plus ancien vers mod_ssl. Les directives de +configuration et les noms des variables d'environnement utilisés par les +solutions SSL plus anciennes diffÚrent de ceux qu'utilise mod_ssl ; +les tableaux de correspondance ci-dessous fournissent les équivalences +de termes utilisés par mod_ssl.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configuration">Directives de configuration</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#variables">Variables d'environnement</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#customlog">Fonctions de personnalisation des journaux</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</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="configuration" id="configuration">Directives de configuration</a></h2> +<p>La correspondance entre les directives de configuration qu'utilise +Apache-SSL 1.x et mod_ssl 2.0.x est fournie dans le <a href="#table1">Tableau +1</a>. La correspondance depuis Sioux 1.x et Stronghold 2.x n'est que +partielle car certaines fonctionnalités de ces interfaces ne sont pas +supportées par mod_ssl.</p> + + +<h3><a name="table1" id="table1">Tableau 1: Correspondance entre les directives de configuration</a></h3> + +<table><tr class="header"><th>Ancienne directive</th><th>Directive mod_ssl</th><th>Commentaires</th></tr> +<tr class="header"><th colspan="3">Compatibilité entre Apache-SSL 1.x et mod_ssl 2.0.x :</th></tr> +<tr><td><code>SSLEnable</code></td><td><code>SSLEngine on</code></td><td>plus compacte</td></tr> +<tr class="odd"><td><code>SSLDisable</code></td><td><code>SSLEngine off</code></td><td>plus compacte</td></tr> +<tr><td><code>SSLLogFile</code> +<em>file</em></td><td><code /></td><td>Utilisez plutÎt la directive +de niveau module <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>.</td></tr> +<tr class="odd"><td><code>SSLRequiredCiphers</code> <em>spec</em></td><td><code>SSLCipherSuite</code> <em>spec</em></td><td>renommée</td></tr> +<tr><td><code>SSLRequireCipher</code> <em>c1</em> ...</td><td><code>SSLRequire %{SSL_CIPHER} in {"</code><em>c1</em><code>", +...}</code></td><td>plus générale</td></tr> +<tr class="odd"><td><code>SSLBanCipher</code> <em>c1</em> ...</td><td><code>SSLRequire not (%{SSL_CIPHER} in {"</code><em>c1</em><code>", +...})</code></td><td>plus générale</td></tr> +<tr><td><code>SSLFakeBasicAuth</code></td><td><code>SSLOptions +FakeBasicAuth</code></td><td>rassemblées</td></tr> +<tr class="odd"><td><code>SSLCacheServerPath</code> <em>dir</em></td><td>-</td><td>fonctionnalité supprimée</td></tr> +<tr><td><code>SSLCacheServerPort</code> <em>integer</em></td><td>-</td><td>fonctionnalité supprimée</td></tr> +<tr class="header"><th colspan="3">Compatibilité avec Apache-SSL 1.x :</th></tr> +<tr class="odd"><td><code>SSLExportClientCertificates</code></td><td><code>SSLOptions +ExportCertData</code></td><td>rassemblées</td></tr> +<tr><td><code>SSLCacheServerRunDir</code> <em>dir</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr class="header"><th colspan="3">Compatibilité avec Sioux 1.x :</th></tr> +<tr class="odd"><td><code>SSL_CertFile</code> <em>file</em></td><td><code>SSLCertificateFile</code> <em>file</em></td><td>renommée</td></tr> +<tr><td><code>SSL_KeyFile</code> <em>file</em></td><td><code>SSLCertificateKeyFile</code> <em>file</em></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CipherSuite</code> <em>arg</em></td><td><code>SSLCipherSuite</code> <em>arg</em></td><td>renommée</td></tr> +<tr><td><code>SSL_X509VerifyDir</code> <em>arg</em></td><td><code>SSLCACertificatePath</code> <em>arg</em></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_Log</code> +<em>file</em></td><td><code>-</code></td><td>Utilisez plutÎt la directive +de niveau module <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code></td></tr> +<tr><td><code>SSL_Connect</code> <em>flag</em></td><td><code>SSLEngine</code> <em>flag</em></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_ClientAuth</code> <em>arg</em></td><td><code>SSLVerifyClient</code> <em>arg</em></td><td>renommée</td></tr> +<tr><td><code>SSL_X509VerifyDepth</code> <em>arg</em></td><td><code>SSLVerifyDepth</code> <em>arg</em></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_FetchKeyPhraseFrom</code> <em>arg</em></td><td>-</td><td>pas de véritable équivalent ; utiliser SSLPassPhraseDialog</td></tr> +<tr><td><code>SSL_SessionDir</code> <em>dir</em></td><td>-</td><td>pas de véritable équivalent ; utiliser SSLSessionCache</td></tr> +<tr class="odd"><td><code>SSL_Require</code> <em>expr</em></td><td>-</td><td>pas de véritable équivalent ; utiliser SSLRequire</td></tr> +<tr><td><code>SSL_CertFileType</code> <em>arg</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr class="odd"><td><code>SSL_KeyFileType</code> <em>arg</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr><td><code>SSL_X509VerifyPolicy</code> <em>arg</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr class="odd"><td><code>SSL_LogX509Attributes</code> <em>arg</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr class="header"><th colspan="3">Compatibilité avec Stronghold 2.x :</th></tr> +<tr><td><code>StrongholdAccelerator</code> <em>engine</em></td><td><code>SSLCryptoDevice</code> <em>engine</em></td><td>renommée</td></tr> +<tr class="odd"><td><code>StrongholdKey</code> <em>dir</em></td><td>-</td><td>sans objet</td></tr> +<tr><td><code>StrongholdLicenseFile</code> <em>dir</em></td><td>-</td><td>sans objet</td></tr> +<tr class="odd"><td><code>SSLFlag</code> <em>flag</em></td><td><code>SSLEngine</code> <em>flag</em></td><td>renommée</td></tr> +<tr><td><code>SSLSessionLockFile</code> <em>file</em></td><td><code>SSLMutex</code> <em>file</em></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSLCipherList</code> <em>spec</em></td><td><code>SSLCipherSuite</code> <em>spec</em></td><td>renommée</td></tr> +<tr><td><code>RequireSSL</code></td><td><code>SSLRequireSSL</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSLErrorFile</code> <em>file</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr><td><code>SSLRoot</code> <em>dir</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr class="odd"><td><code>SSL_CertificateLogDir</code> <em>dir</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr><td><code>AuthCertDir</code> <em>dir</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr class="odd"><td><code>SSL_Group</code> <em>name</em></td><td>-</td><td>fonctionnalité non supportée</td></tr> +<tr><td><code>SSLProxyMachineCertPath</code> <em>dir</em></td><td><code>SSLProxyMachineCertificatePath</code> <em>dir</em></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSLProxyMachineCertFile</code> <em>file</em></td><td><code>SSLProxyMachineCertificateFile</code> <em>file</em></td><td>renommée</td></tr> +<tr><td><code>SSLProxyCipherList</code> <em>spec</em></td><td><code>SSLProxyCipherSpec</code> <em>spec</em></td><td>renommée</td></tr> +</table> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="variables" id="variables">Variables d'environnement</a></h2> + +<p>La correspondance entre les noms des variables d'environnement utilisés par +les solutions SSL plus anciennes et les noms utilisés par mod_ssl est fournie +dans le <a href="#table2">Tableau 2</a>.</p> + +<h3><a name="table2" id="table2">Tableau 2: Dérivation des variables d'environnement</a></h3> + +<table><tr class="header"><th>Ancienne variable</th><th>Variable mod_ssl</th><th>Commentaires</th></tr> +<tr><td><code>SSL_PROTOCOL_VERSION</code></td><td><code>SSL_PROTOCOL</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSLEAY_VERSION</code></td><td><code>SSL_VERSION_LIBRARY</code></td><td>renommée</td></tr> +<tr><td><code>HTTPS_SECRETKEYSIZE</code></td><td><code>SSL_CIPHER_USEKEYSIZE</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>HTTPS_KEYSIZE</code></td><td><code>SSL_CIPHER_ALGKEYSIZE</code></td><td>renommée</td></tr> +<tr><td><code>HTTPS_CIPHER</code></td><td><code>SSL_CIPHER</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>HTTPS_EXPORT</code></td><td><code>SSL_CIPHER_EXPORT</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_KEY_SIZE</code></td><td><code>SSL_CIPHER_ALGKEYSIZE</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CERTIFICATE</code></td><td><code>SSL_SERVER_CERT</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_CERT_START</code></td><td><code>SSL_SERVER_V_START</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CERT_END</code></td><td><code>SSL_SERVER_V_END</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_CERT_SERIAL</code></td><td><code>SSL_SERVER_M_SERIAL</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_SIGNATURE_ALGORITHM</code></td><td><code>SSL_SERVER_A_SIG</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_DN</code></td><td><code>SSL_SERVER_S_DN</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CN</code></td><td><code>SSL_SERVER_S_DN_CN</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_EMAIL</code></td><td><code>SSL_SERVER_S_DN_Email</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_O</code></td><td><code>SSL_SERVER_S_DN_O</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_OU</code></td><td><code>SSL_SERVER_S_DN_OU</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_C</code></td><td><code>SSL_SERVER_S_DN_C</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_SP</code></td><td><code>SSL_SERVER_S_DN_SP</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_L</code></td><td><code>SSL_SERVER_S_DN_L</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_IDN</code></td><td><code>SSL_SERVER_I_DN</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_ICN</code></td><td><code>SSL_SERVER_I_DN_CN</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_IEMAIL</code></td><td><code>SSL_SERVER_I_DN_Email</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_IO</code></td><td><code>SSL_SERVER_I_DN_O</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_IOU</code></td><td><code>SSL_SERVER_I_DN_OU</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_IC</code></td><td><code>SSL_SERVER_I_DN_C</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SERVER_ISP</code></td><td><code>SSL_SERVER_I_DN_SP</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SERVER_IL</code></td><td><code>SSL_SERVER_I_DN_L</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_CERTIFICATE</code></td><td><code>SSL_CLIENT_CERT</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_CERT_START</code></td><td><code>SSL_CLIENT_V_START</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_CERT_END</code></td><td><code>SSL_CLIENT_V_END</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_CERT_SERIAL</code></td><td><code>SSL_CLIENT_M_SERIAL</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_SIGNATURE_ALGORITHM</code></td><td><code>SSL_CLIENT_A_SIG</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_DN</code></td><td><code>SSL_CLIENT_S_DN</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_CN</code></td><td><code>SSL_CLIENT_S_DN_CN</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_EMAIL</code></td><td><code>SSL_CLIENT_S_DN_Email</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_O</code></td><td><code>SSL_CLIENT_S_DN_O</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_OU</code></td><td><code>SSL_CLIENT_S_DN_OU</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_C</code></td><td><code>SSL_CLIENT_S_DN_C</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_SP</code></td><td><code>SSL_CLIENT_S_DN_SP</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_L</code></td><td><code>SSL_CLIENT_S_DN_L</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_IDN</code></td><td><code>SSL_CLIENT_I_DN</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_ICN</code></td><td><code>SSL_CLIENT_I_DN_CN</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_IEMAIL</code></td><td><code>SSL_CLIENT_I_DN_Email</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_IO</code></td><td><code>SSL_CLIENT_I_DN_O</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_IOU</code></td><td><code>SSL_CLIENT_I_DN_OU</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_IC</code></td><td><code>SSL_CLIENT_I_DN_C</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_ISP</code></td><td><code>SSL_CLIENT_I_DN_SP</code></td><td>renommée</td></tr> +<tr><td><code>SSL_CLIENT_IL</code></td><td><code>SSL_CLIENT_I_DN_L</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_EXPORT</code></td><td><code>SSL_CIPHER_EXPORT</code></td><td>renommée</td></tr> +<tr><td><code>SSL_KEYSIZE</code></td><td><code>SSL_CIPHER_ALGKEYSIZE</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_SECKEYSIZE</code></td><td><code>SSL_CIPHER_USEKEYSIZE</code></td><td>renommée</td></tr> +<tr><td><code>SSL_SSLEAY_VERSION</code></td><td><code>SSL_VERSION_LIBRARY</code></td><td>renommée</td></tr> +<tr class="odd"><td><code>SSL_STRONG_CRYPTO</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_KEY_EXP</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_KEY_ALGORITHM</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_KEY_SIZE</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_SESSIONDIR</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_CERTIFICATELOGDIR</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_CERTFILE</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr><td><code>SSL_SERVER_KEYFILE</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_SERVER_KEYFILETYPE</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr><td><code>SSL_CLIENT_KEY_EXP</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr class="odd"><td><code>SSL_CLIENT_KEY_ALGORITHM</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +<tr><td><code>SSL_CLIENT_KEY_SIZE</code></td><td><code>-</code></td><td>Non supportée par mod_ssl</td></tr> +</table> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="customlog" id="customlog">Fonctions de personnalisation des journaux</a></h2> +<p>Quand mod_ssl est activé, le <a href="../mod/mod_log_config.html#formats">Format de journal courant +(Custom Log Format)</a> du module <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> possÚde +des fonctions supplémentaires comme indiqué dans le chapitre de référence. +En plus de la fonction de format étendu +``<code>%{</code><em>varname</em><code>}x</code>'' que l'on peut utiliser pour +extraire le contenu d'une variable fournie par n'importe quel module, +la fonction +de format cryptographique ``<code>%{</code><em>name</em><code>}c</code>'' a +été ajoutée à des fins de compatibilité ascendante. Les appels de fonctions +actuellement implémentés sont énumérés dans le +<a href="#table3">Tableau 3</a>.</p> + +<h3><a name="table3" id="table3">Table 3: Fonctions cryptographiques du format de journal courant</a></h3> + +<table> + +<tr><th>Appel de fonction</th><th>Description</th></tr> + +<tr><td><code>%...{version}c</code></td> <td>Version du protocole SSL</td></tr> +<tr><td><code>%...{cipher}c</code></td> <td>Chiffrement SSL</td></tr> +<tr><td><code>%...{subjectdn}c</code></td> <td>Nom distinctif du sujet du certificat du client</td></tr> +<tr><td><code>%...{issuerdn}c</code></td> <td>Nom distinctif de l'émetteur du certificat du client</td></tr> +<tr><td><code>%...{errcode}c</code></td> <td>Erreur lors de la vérification du certificat (numérique)</td></tr> + +<tr><td><code>%...{errstr}c</code></td> <td>Erreur lors de la vérification du certificat (chaîne de caractÚres)</td></tr> +</table> + +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_compat.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_compat.html" title="Français"> fr </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_compat.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />Autorisé sous <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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_faq.html b/docs/manual/ssl/ssl_faq.html new file mode 100644 index 0000000..605f4be --- /dev/null +++ b/docs/manual/ssl/ssl_faq.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ssl_faq.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: ssl_faq.html.fr.utf8 +Content-Language: fr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/ssl/ssl_faq.html.en b/docs/manual/ssl/ssl_faq.html.en new file mode 100644 index 0000000..919f5d8 --- /dev/null +++ b/docs/manual/ssl/ssl_faq.html.en @@ -0,0 +1,935 @@ +<?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> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>SSL/TLS Strong Encryption: FAQ - Apache HTTP Server Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p> +<p class="apache">Apache HTTP Server Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>SSL/TLS Strong Encryption: FAQ</h1> +<div class="toplang"> +<p><span>Available Languages: </span><a href="../en/ssl/ssl_faq.html" title="English"> en </a> | +<a href="../fr/ssl/ssl_faq.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> +</div> + +<blockquote> +<p>The wise man doesn't give the right answers, +he poses the right questions.</p> +<p class="cite">-- <cite>Claude Levi-Strauss</cite></p> + +</blockquote> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#installation">Installation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#aboutconfig">Configuration</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#aboutcerts">Certificates</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#aboutssl">The SSL Protocol</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#support">mod_ssl Support</a></li> +</ul><h3>See also</h3><ul class="seealso"><li><a href="#comments_section">Comments</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="installation" id="installation">Installation</a></h2> +<ul> +<li><a href="#mutex">Why do I get permission errors related to +SSLMutex when I start Apache?</a></li> +<li><a href="#entropy">Why does mod_ssl stop with the error "Failed to +generate temporary 512 bit RSA private key" when I start Apache?</a></li> +</ul> + +<h3><a name="mutex" id="mutex">Why do I get permission errors related to + SSLMutex when I start Apache?</a></h3> + <p>Errors such as ``<code>mod_ssl: Child could not open + SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (System error follows) + [...] System: Permission denied (errno: 13)</code>'' are usually + caused by overly restrictive permissions on the <em>parent</em> directories. + Make sure that all parent directories (here <code>/opt</code>, + <code>/opt/apache</code> and <code>/opt/apache/logs</code>) have the x-bit + set for, at minimum, the UID under which Apache's children are running (see + the <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> directive).</p> + + +<h3><a name="entropy" id="entropy">Why does mod_ssl stop with the error + "Failed to generate temporary 512 bit RSA private key" when I start + Apache?</a></h3> + <p>Cryptographic software needs a source of unpredictable data + to work correctly. Many open source operating systems provide + a "randomness device" that serves this purpose (usually named + <code>/dev/random</code>). On other systems, applications have to + seed the OpenSSL Pseudo Random Number Generator (PRNG) manually with + appropriate data before generating keys or performing public key + encryption. As of version 0.9.5, the OpenSSL functions that need + randomness report an error if the PRNG has not been seeded with + at least 128 bits of randomness.</p> + <p>To prevent this error, <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> has to provide + enough entropy to the PRNG to allow it to work correctly. This can + be done via the <code class="directive"><a href="../mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code> + directive.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="aboutconfig" id="aboutconfig">Configuration</a></h2> +<ul> +<li><a href="#parallel">Is it possible to provide HTTP and HTTPS from +the same server?</a></li> +<li><a href="#ports">Which port does HTTPS use?</a></li> +<li><a href="#httpstest">How do I speak HTTPS manually for testing +purposes?</a></li> +<li><a href="#hang">Why does the connection hang when I connect to my +SSL-aware Apache server?</a></li> +<li><a href="#refused">Why do I get ``Connection Refused'' errors, when +trying to access my newly installed Apache+mod_ssl server via HTTPS?</a></li> +<li><a href="#envvars">Why are the <code>SSL_XXX</code> variables not +available to my CGI & SSI scripts?</a></li> +<li><a href="#relative">How can I switch between HTTP and HTTPS in +relative hyperlinks?</a></li> +</ul> + +<h3><a name="parallel" id="parallel">Is it possible to provide HTTP and HTTPS + from the same server?</a></h3> + <p>Yes. HTTP and HTTPS use different server ports (HTTP binds to + port 80, HTTPS to port 443), so there is no direct conflict between + them. You can either run two separate server instances bound to + these ports, or use Apache's elegant virtual hosting facility to + create two virtual servers, both served by the same instance of Apache + - one responding over HTTP to requests on port 80, and the other + responding over HTTPS to requests on port 443.</p> + + +<h3><a name="ports" id="ports">Which port does HTTPS use?</a></h3> +<p>You can run HTTPS on any port, but the standards specify port 443, which + is where any HTTPS compliant browser will look by default. You can force + your browser to look on a different port by specifying it in the URL. For + example, if your server is set up to serve pages over HTTPS on port 8080, + you can access them at <code>https://example.com:8080/</code></p> + + +<h3><a name="httpstest" id="httpstest">How do I speak HTTPS manually for testing purposes?</a></h3> + <p>While you usually just use</p> + + <div class="example"><p><code>$ telnet localhost 80<br /> + GET / HTTP/1.0</code></p></div> + + <p>for simple testing of Apache via HTTP, it's not so easy for + HTTPS because of the SSL protocol between TCP and HTTP. With the + help of OpenSSL's <code>s_client</code> command, however, you can + do a similar check via HTTPS:</p> + + <div class="example"><p><code>$ openssl s_client -connect localhost:443 -state -debug<br /> + GET / HTTP/1.0</code></p></div> + + <p>Before the actual HTTP response you will receive detailed + information about the SSL handshake. For a more general command + line client which directly understands both HTTP and HTTPS, can + perform GET and POST operations, can use a proxy, supports byte + ranges, etc. you should have a look at the nifty + <a href="http://curl.haxx.se/">cURL</a> tool. Using this, you can + check that Apache is responding correctly to requests via HTTP and + HTTPS as follows:</p> + + <div class="example"><p><code>$ curl http://localhost/<br /> + $ curl https://localhost/</code></p></div> + + +<h3><a name="hang" id="hang">Why does the connection hang when I connect + to my SSL-aware Apache server?</a></h3> + +<p>This can happen when you try to connect to a HTTPS server (or virtual + server) via HTTP (eg, using <code>http://example.com/</code> instead of + <code>https://example.com</code>). It can also happen when trying to + connect via HTTPS to a HTTP server (eg, using + <code>https://example.com/</code> on a server which doesn't support HTTPS, + or which supports it on a non-standard port). Make sure that you're + connecting to a (virtual) server that supports SSL.</p> + +<h3><a name="refused" id="refused">Why do I get ``Connection Refused'' messages, + when trying to access my newly installed Apache+mod_ssl server via HTTPS?</a></h3> +<p> + This error can be caused by an incorrect configuration. + Please make sure that your <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> directives match your + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + directives. If all else fails, please start afresh, using the default + configuration provided by <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>.</p> + + +<h3><a name="envvars" id="envvars">Why are the <code>SSL_XXX</code> variables + not available to my CGI & SSI scripts?</a></h3> +<p>Please make sure you have ``<code>SSLOptions +StdEnvVars</code>'' + enabled for the context of your CGI/SSI requests.</p> + + +<h3><a name="relative" id="relative">How can I switch between HTTP and HTTPS in relative + hyperlinks?</a></h3> + +<p>Usually, to switch between HTTP and HTTPS, you have to use + fully-qualified hyperlinks (because you have to change the URL + scheme). Using <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> however, you can + manipulate relative hyperlinks, to achieve the same effect.</p> + <pre class="prettyprint lang-config">RewriteEngine on +RewriteRule "^/(.*)_SSL$" "https://%{SERVER_NAME}/$1" [R,L] +RewriteRule "^/(.*)_NOSSL$" "http://%{SERVER_NAME}/$1" [R,L]</pre> + + + <p>This rewrite ruleset lets you use hyperlinks of the form + <code><a href="document.html_SSL"></code>, to switch to HTTPS + in a relative link. (Replace SSL with NOSSL to switch to HTTP.)</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="aboutcerts" id="aboutcerts">Certificates</a></h2> +<ul> +<li><a href="#keyscerts">What are RSA Private Keys, CSRs and +Certificates?</a></li> +<li><a href="#startup">Is there a difference on startup between +a non-SSL-aware Apache and an SSL-aware Apache?</a></li> +<li><a href="#selfcert">How do I create a self-signed SSL +Certificate for testing purposes?</a></li> +<li><a href="#realcert">How do I create a real SSL Certificate?</a></li> +<li><a href="#ownca">How do I create and use my own Certificate +Authority (CA)?</a></li> +<li><a href="#passphrase">How can I change the pass-phrase on my private +key file?</a></li> +<li><a href="#removepassphrase">How can I get rid of the pass-phrase +dialog at Apache startup time?</a></li> +<li><a href="#verify">How do I verify that a private key matches its +Certificate?</a></li> +<li><a href="#pemder">How can I convert a certificate from PEM to DER +format?</a></li> +<li><a href="#gid">Why do browsers complain that they cannot +verify my server certificate?</a></li> +</ul> + +<h3><a name="keyscerts" id="keyscerts">What are RSA Private Keys, CSRs and Certificates?</a></h3> +<p>An RSA private key file is a digital file that you can use to decrypt + messages sent to you. It has a public component which you distribute (via + your Certificate file) which allows people to encrypt those messages to + you.</p> + <p>A Certificate Signing Request (CSR) is a digital file which contains + your public key and your name. You send the CSR to a Certifying Authority + (CA), who will convert it into a real Certificate, by signing it.</p> + <p>A Certificate contains your + RSA public key, your name, the name of the CA, and is digitally signed by + the CA. Browsers that know the CA can verify the signature on that + Certificate, thereby obtaining your RSA public key. That enables them to + send messages which only you can decrypt.</p> + <p>See the <a href="ssl_intro.html">Introduction</a> chapter for a general + description of the SSL protocol.</p> + + +<h3><a name="startup" id="startup">Is there a difference on startup between + a non-SSL-aware Apache and an SSL-aware Apache?</a></h3> +<p>Yes. In general, starting Apache with + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> built-in is just like starting Apache + without it. However, if you have a passphrase on your SSL private + key file, a startup dialog will pop up which asks you to enter the + pass phrase.</p> + + <p>Having to manually enter the passphrase when starting the server + can be problematic - for example, when starting the server from the + system boot scripts. In this case, you can follow the steps + <a href="#removepassphrase">below</a> to remove the passphrase from + your private key. Bear in mind that doing so brings additional security + risks - proceed with caution!</p> + + +<h3><a name="selfcert" id="selfcert">How do I create a self-signed SSL +Certificate for testing purposes?</a></h3> + <ol> + <li>Make sure OpenSSL is installed and in your <code>PATH</code>.<br /> + <br /> + </li> + <li>Run the following command, to create <code>server.key</code> and + <code>server.crt</code> files:<br /> + <code><strong>$ openssl req -new -x509 -nodes -out server.crt + -keyout server.key</strong></code><br /> + These can be used as follows in your <code>httpd.conf</code> + file: + <pre class="prettyprint lang-config">SSLCertificateFile "/path/to/this/server.crt" +SSLCertificateKeyFile "/path/to/this/server.key"</pre> + + </li> + <li>It is important that you are aware that this + <code>server.key</code> does <em>not</em> have any passphrase. + To add a passphrase to the key, you should run the following + command, and enter & verify the passphrase as requested.<br /> + <p><code><strong>$ openssl rsa -des3 -in server.key -out + server.key.new</strong></code><br /> + <code><strong>$ mv server.key.new server.key</strong></code><br /></p> + Please backup the <code>server.key</code> file, and the passphrase + you entered, in a secure location. + </li> + </ol> + + +<h3><a name="realcert" id="realcert">How do I create a real SSL Certificate?</a></h3> +<p>Here is a step-by-step description:</p> + <ol> + <li>Make sure OpenSSL is installed and in your <code>PATH</code>. + <br /> + <br /> + </li> + <li>Create a RSA private key for your Apache server + (will be Triple-DES encrypted and PEM formatted):<br /> + <br /> + <code><strong>$ openssl genrsa -des3 -out server.key 2048</strong></code><br /> + <br /> + Please backup this <code>server.key</code> file and the + pass-phrase you entered in a secure location. + You can see the details of this RSA private key by using the command:<br /> + + <br /> + <code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br /> + <br /> + If necessary, you can also create a decrypted PEM version (not + recommended) of this RSA private key with:<br /> + <br /> + <code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br /> + <br /> + + </li> + <li>Create a Certificate Signing Request (CSR) with the server RSA private + key (output will be PEM formatted):<br /> + <br /> + <code><strong>$ openssl req -new -key server.key -out server.csr</strong></code><br /> + <br /> + Make sure you enter the FQDN ("Fully Qualified Domain Name") of the + server when OpenSSL prompts you for the "CommonName", i.e. when you + generate a CSR for a website which will be later accessed via + <code>https://www.foo.dom/</code>, enter "www.foo.dom" here. + You can see the details of this CSR by using<br /> + + <br /> + <code><strong>$ openssl req -noout -text -in server.csr</strong></code><br /> + <br /> + </li> + <li>You now have to send this Certificate Signing Request (CSR) to + a Certifying Authority (CA) to be signed. Once the CSR has been + signed, you will have a real Certificate, which can be used by + Apache. You can have a CSR signed by a commercial CA, or you can + create your own CA to sign it.<br /> + Commercial CAs usually ask you to post the CSR into a web form, + pay for the signing, and then send a signed Certificate, which + you can store in a server.crt file.<br /> + + For details on how to create your own CA, and use this to sign + a CSR, see <a href="#ownca">below</a>.<br /> + + Once your CSR has been signed, you can see the details of the + Certificate as follows:<br /> + <br /> + <code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> + + </li> + <li>You should now have two files: <code>server.key</code> and + <code>server.crt</code>. These can be used as follows in your + <code>httpd.conf</code> file: + <pre class="prettyprint lang-config">SSLCertificateFile "/path/to/this/server.crt" +SSLCertificateKeyFile "/path/to/this/server.key"</pre> + + The <code>server.csr</code> file is no longer needed. + </li> + + </ol> + + +<h3><a name="ownca" id="ownca">How do I create and use my own Certificate Authority (CA)?</a></h3> + <p>The short answer is to use the <code>CA.sh</code> or <code>CA.pl</code> + script provided by OpenSSL. Unless you have a good reason not to, + you should use these for preference. If you cannot, you can create a + self-signed certificate as follows:</p> + + <ol> + <li>Create a RSA private key for your server + (will be Triple-DES encrypted and PEM formatted):<br /> + <br /> + <code><strong>$ openssl genrsa -des3 -out server.key 2048</strong></code><br /> + <br /> + Please backup this <code>server.key</code> file and the + pass-phrase you entered in a secure location. + You can see the details of this RSA private key by using the + command:<br /> + <br /> + <code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br /> + <br /> + If necessary, you can also create a decrypted PEM version (not + recommended) of this RSA private key with:<br /> + <br /> + <code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br /> + <br /> + </li> + <li>Create a self-signed certificate (X509 structure) + with the RSA key you just created (output will be PEM formatted):<br /> + <br /> + <code><strong>$ openssl req -new -x509 -nodes -sha1 -days 365 + -key server.key -out server.crt -extensions usr_cert</strong></code><br /> + <br /> + This signs the server CSR and results in a <code>server.crt</code> file.<br /> + You can see the details of this Certificate using:<br /> + <br /> + <code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> + <br /> + </li> + </ol> + + +<h3><a name="passphrase" id="passphrase">How can I change the pass-phrase on my private key file?</a></h3> +<p>You simply have to read it with the old pass-phrase and write it again, + specifying the new pass-phrase. You can accomplish this with the following + commands:</p> + + + <p><code><strong>$ openssl rsa -des3 -in server.key -out server.key.new</strong></code><br /> + <code><strong>$ mv server.key.new server.key</strong></code><br /></p> + + <p>The first time you're asked for a PEM pass-phrase, you should + enter the old pass-phrase. After that, you'll be asked again to + enter a pass-phrase - this time, use the new pass-phrase. If you + are asked to verify the pass-phrase, you'll need to enter the new + pass-phrase a second time.</p> + + +<h3><a name="removepassphrase" id="removepassphrase">How can I get rid of the pass-phrase dialog at Apache startup time?</a></h3> +<p>The reason this dialog pops up at startup and every re-start + is that the RSA private key inside your server.key file is stored in + encrypted format for security reasons. The pass-phrase is needed to decrypt + this file, so it can be read and parsed. Removing the pass-phrase + removes a layer of security from your server - proceed with caution!</p> + <ol> + <li>Remove the encryption from the RSA private key (while + keeping a backup copy of the original file):<br /> + <br /> + <code><strong>$ cp server.key server.key.org</strong></code><br /> + <code><strong>$ openssl rsa -in server.key.org -out server.key</strong></code><br /> + + <br /> + </li> + <li>Make sure the server.key file is only readable by root:<br /> + <br /> + <code><strong>$ chmod 400 server.key</strong></code><br /> + <br /> + </li> + </ol> + + <p>Now <code>server.key</code> contains an unencrypted copy of the key. + If you point your server at this file, it will not prompt you for a + pass-phrase. HOWEVER, if anyone gets this key they will be able to + impersonate you on the net. PLEASE make sure that the permissions on this + file are such that only root or the web server user can read it + (preferably get your web server to start as root but run as another + user, and have the key readable only by root).</p> + + <p>As an alternative approach you can use the ``<code>SSLPassPhraseDialog + exec:/path/to/program</code>'' facility. Bear in mind that this is + neither more nor less secure, of course.</p> + + +<h3><a name="verify" id="verify">How do I verify that a private key matches its Certificate?</a></h3> +<p>A private key contains a series of numbers. Two of these numbers form + the "public key", the others are part of the "private key". The "public + key" bits are included when you generate a CSR, and subsequently form + part of the associated Certificate.</p> + <p>To check that the public key in your Certificate matches the public + portion of your private key, you simply need to compare these numbers. + To view the Certificate and the key run the commands:</p> + + <p><code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> + <code><strong>$ openssl rsa -noout -text -in server.key</strong></code></p> + + <p>The `modulus' and the `public exponent' portions in the key and the + Certificate must match. As the public exponent is usually 65537 + and it's difficult to visually check that the long modulus numbers + are the same, you can use the following approach:</p> + + <p><code><strong>$ openssl x509 -noout -modulus -in server.crt | openssl md5</strong></code><br /> + <code><strong>$ openssl rsa -noout -modulus -in server.key | openssl md5</strong></code></p> + + <p>This leaves you with two rather shorter numbers to compare. It is, + in theory, possible that these numbers may be the same, without the + modulus numbers being the same, but the chances of this are + overwhelmingly remote.</p> + <p>Should you wish to check to which key or certificate a particular + CSR belongs you can perform the same calculation on the CSR as + follows:</p> + + <p><code><strong>$ openssl req -noout -modulus -in server.csr | openssl md5</strong></code></p> + + +<h3><a name="pemder" id="pemder">How can I convert a certificate from PEM to DER format?</a></h3> +<p>The default certificate format for OpenSSL is PEM, which is simply + Base64 encoded DER, with header and footer lines. For some applications + (e.g. Microsoft Internet Explorer) you need the certificate in plain DER + format. You can convert a PEM file <code>cert.pem</code> into the + corresponding DER file <code>cert.der</code> using the following command: + <code><strong>$ openssl x509 -in cert.pem -out cert.der -outform DER</strong></code></p> + + +<h3><a name="gid" id="gid">Why do browsers complain that they cannot verify my server certificate?</a></h3> + + <p>One reason this might happen is because your server certificate is signed + by an intermediate CA. Various CAs, such as Verisign or Thawte, have started + signing certificates not with their root certificate but with intermediate + certificates.</p> + + <p>Intermediate CA certificates lie between the root CA certificate (which is + installed in the browsers) and the server certificate (which you installed + on the server). In order for the browser to be able to traverse and verify + the trust chain from the server certificate to the root certificate it + needs need to be given the intermediate certificates. The CAs should + be able to provide you such intermediate certificate packages that can be + installed on the server.</p> + + <p>You need to include those intermediate certificates with the + <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatechainfile">SSLCertificateChainFile</a></code> + directive.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="aboutssl" id="aboutssl">The SSL Protocol</a></h2> +<ul> +<li><a href="#random">Why do I get lots of random SSL protocol +errors under heavy server load?</a></li> +<li><a href="#load">Why does my webserver have a higher load, now +that it serves SSL encrypted traffic?</a></li> +<li><a href="#establishing">Why do HTTPS connections to my server +sometimes take up to 30 seconds to establish a connection?</a></li> +<li><a href="#ciphers">What SSL Ciphers are supported by mod_ssl?</a></li> +<li><a href="#adh">Why do I get ``no shared cipher'' errors, when +trying to use Anonymous Diffie-Hellman (ADH) ciphers?</a></li> +<li><a href="#sharedciphers">Why do I get a 'no shared ciphers' +error when connecting to my newly installed server?</a></li> +<li><a href="#vhosts">Why can't I use SSL with name-based/non-IP-based +virtual hosts?</a></li> +<li><a href="#vhosts2">Is it possible to use Name-Based Virtual +Hosting to identify different SSL virtual hosts?</a></li> +<li><a href="#comp">How do I get SSL compression working?</a></li> +<li><a href="#lockicon">When I use Basic Authentication over HTTPS +the lock icon in Netscape browsers stays unlocked when the dialog pops up. +Does this mean the username/password is being sent unencrypted?</a></li> +<li><a href="#msie">Why do I get I/O errors when connecting via +HTTPS to an Apache+mod_ssl server with Microsoft Internet Explorer +(MSIE)?</a></li> +<li><a href="#srp">How do I enable TLS-SRP?</a></li> +<li><a href="#javadh">Why do I get handshake failures with Java-based clients when using a certificate with more than 1024 bits?</a></li> +</ul> + +<h3><a name="random" id="random">Why do I get lots of random SSL protocol +errors under heavy server load?</a></h3> +<p>There can be a number of reasons for this, but the main one + is problems with the SSL session Cache specified by the + <code class="directive"><a href="../mod/mod_ssl.html#sslsessioncache">SSLSessionCache</a></code> directive. The DBM session + cache is the most likely source of the problem, so using the SHM session cache (or + no cache at all) may help.</p> + + +<h3><a name="load" id="load">Why does my webserver have a higher load, now +that it serves SSL encrypted traffic?</a></h3> +<p>SSL uses strong cryptographic encryption, which necessitates a lot of + number crunching. When you request a webpage via HTTPS, everything (even + the images) is encrypted before it is transferred. So increased HTTPS + traffic leads to load increases.</p> + + +<h3><a name="establishing" id="establishing">Why do HTTPS connections to my server +sometimes take up to 30 seconds to establish a connection?</a></h3> +<p>This is usually caused by a <code>/dev/random</code> device for + <code class="directive"><a href="../mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code> which blocks the + read(2) call until enough entropy is available to service the + request. More information is available in the reference + manual for the <code class="directive"><a href="../mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code> + directive.</p> + + +<h3><a name="ciphers" id="ciphers">What SSL Ciphers are supported by mod_ssl?</a></h3> +<p>Usually, any SSL ciphers supported by the version of OpenSSL in use, + are also supported by <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. Which ciphers are + available can depend on the way you built OpenSSL. Typically, at + least the following ciphers are supported:</p> + + <ol> + <li>RC4 with SHA1</li> + <li>AES with SHA1</li> + <li>Triple-DES with SHA1</li> + </ol> + + <p>To determine the actual list of ciphers available, you should run + the following:</p> + <div class="example"><p><code>$ openssl ciphers -v</code></p></div> + + +<h3><a name="adh" id="adh">Why do I get ``no shared cipher'' errors, when +trying to use Anonymous Diffie-Hellman (ADH) ciphers?</a></h3> +<p>By default, OpenSSL does <em>not</em> allow ADH ciphers, for security + reasons. Please be sure you are aware of the potential side-effects + if you choose to enable these ciphers.</p> + <p>In order to use Anonymous Diffie-Hellman (ADH) ciphers, you must + build OpenSSL with ``<code>-DSSL_ALLOW_ADH</code>'', and then add + ``<code>ADH</code>'' into your <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code>.</p> + + +<h3><a name="sharedciphers" id="sharedciphers">Why do I get a 'no shared ciphers' +error when connecting to my newly installed server?</a></h3> +<p>Either you have made a mistake with your + <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> + directive (compare it with the pre-configured example in + <code>extra/httpd-ssl.conf</code>) or you chose to use DSA/DH + algorithms instead of RSA when you generated your private key + and ignored or overlooked the warnings. If you have chosen + DSA/DH, then your server cannot communicate using RSA-based SSL + ciphers (at least until you configure an additional RSA-based + certificate/key pair). Modern browsers like NS or IE can only + communicate over SSL using RSA ciphers. The result is the + "no shared ciphers" error. To fix this, regenerate your server + certificate/key pair, using the RSA algorithm.</p> + + +<h3><a name="vhosts" id="vhosts">Why can't I use SSL with name-based/non-IP-based virtual hosts?</a></h3> +<p>The reason is very technical, and a somewhat "chicken and egg" problem. + The SSL protocol layer stays below the HTTP protocol layer and + encapsulates HTTP. When an SSL connection (HTTPS) is established + Apache/mod_ssl has to negotiate the SSL protocol parameters with the + client. For this, mod_ssl has to consult the configuration of the virtual + server (for instance it has to look for the cipher suite, the server + certificate, etc.). But in order to go to the correct virtual server + Apache has to know the <code>Host</code> HTTP header field. To do this, the + HTTP request header has to be read. This cannot be done before the SSL + handshake is finished, but the information is needed in order to + complete the SSL handshake phase. See the next question for how to + circumvent this issue.</p> + + <p>Note that if you have a wildcard SSL certificate, or a + certificate that has multiple hostnames on it using subjectAltName + fields, you can use SSL on name-based virtual hosts without further + workarounds.</p> + + +<h3><a name="vhosts2" id="vhosts2">Is it possible to use Name-Based +Virtual Hosting to identify different SSL virtual hosts?</a></h3> + <p>Name-Based Virtual Hosting is a very popular method of identifying + different virtual hosts. It allows you to use the same IP address and + the same port number for many different sites. When people move on to + SSL, it seems natural to assume that the same method can be used to have + lots of different SSL virtual hosts on the same server.</p> + + <p>It is possible, but only if using a 2.2.12 or later web server, + built with 0.9.8j or later OpenSSL. This is because it requires a + feature that only the most recent revisions of the SSL + specification added, called Server Name Indication (SNI).</p> + + <p>Note that if you have a wildcard SSL certificate, or a + certificate that has multiple hostnames on it using subjectAltName + fields, you can use SSL on name-based virtual hosts without further + workarounds.</p> + + <p>The reason is that the SSL protocol is a separate layer which + encapsulates the HTTP protocol. So the SSL session is a separate + transaction, that takes place before the HTTP session has begun. + The server receives an SSL request on IP address X and port Y + (usually 443). Since the SSL request did not contain any Host: + field, the server had no way to decide which SSL virtual host to use. + Usually, it just used the first one it found which matched the + port and IP address specified.</p> + + <p>If you are using a version of the web server and OpenSSL that + support SNI, though, and the client's browser also supports SNI, + then the hostname is included in the original SSL request, and the + web server can select the correct SSL virtual host.</p> + + <p>You can, of course, use Name-Based Virtual Hosting to identify many + non-SSL virtual hosts (all on port 80, for example) and then + have a single SSL virtual host (on port 443). But if you do this, + you must make sure to put the non-SSL port number on the NameVirtualHost + directive, e.g.</p> + + <pre class="prettyprint lang-config">NameVirtualHost 192.168.1.1:80</pre> + + + <p>Other workaround solutions include: </p> + + <p>Using separate IP addresses for different SSL hosts. + Using different port numbers for different SSL hosts.</p> + + +<h3><a name="comp" id="comp">How do I get SSL compression working?</a></h3> +<p>Although SSL compression negotiation was defined in the specification +of SSLv2 and TLS, it took until May 2004 for RFC 3749 to define DEFLATE as +a negotiable standard compression method. +</p> +<p>OpenSSL 0.9.8 started to support this by default when compiled with the +<code>zlib</code> option. If both the client and the server support compression, +it will be used. However, most clients still try to initially connect with an +SSLv2 Hello. As SSLv2 did not include an array of preferred compression algorithms +in its handshake, compression cannot be negotiated with these clients. +If the client disables support for SSLv2, either an SSLv3 or TLS Hello +may be sent, depending on which SSL library is used, and compression may +be set up. You can verify whether clients make use of SSL compression by +logging the <code>%{SSL_COMPRESS_METHOD}x</code> variable. +</p> + + +<h3><a name="lockicon" id="lockicon">When I use Basic Authentication over HTTPS +the lock icon in Netscape browsers stays unlocked when the dialog pops up. +Does this mean the username/password is being sent unencrypted?</a></h3> +<p>No, the username/password is transmitted encrypted. The icon in + Netscape browsers is not actually synchronized with the SSL/TLS layer. + It only toggles to the locked state when the first part of the actual + webpage data is transferred, which may confuse people. The Basic + Authentication facility is part of the HTTP layer, which is above + the SSL/TLS layer in HTTPS. Before any HTTP data communication takes + place in HTTPS, the SSL/TLS layer has already completed its handshake + phase, and switched to encrypted communication. So don't be + confused by this icon.</p> + + +<h3><a name="msie" id="msie">Why do I get I/O errors when connecting via +HTTPS to an Apache+mod_ssl server with older versions of Microsoft Internet +Explorer (MSIE)?</a></h3> +<p>The first reason is that the SSL implementation in some MSIE versions has + some subtle bugs related to the HTTP keep-alive facility and the SSL close + notify alerts on socket connection close. Additionally the interaction + between SSL and HTTP/1.1 features are problematic in some MSIE versions. + You can work around these problems by forcing Apache not to use HTTP/1.1, + keep-alive connections or send the SSL close notify messages to MSIE clients. + This can be done by using the following directive in your SSL-aware + virtual host section:</p> + <pre class="prettyprint lang-config">SetEnvIf User-Agent "MSIE [2-5]" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0</pre> + + <p>Further, some MSIE versions have problems with particular ciphers. + Unfortunately, it is not possible to implement a MSIE-specific + workaround for this, because the ciphers are needed as early as the + SSL handshake phase. So a MSIE-specific + <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> won't solve these + problems. Instead, you will have to make more drastic + adjustments to the global parameters. Before you decide to do + this, make sure your clients really have problems. If not, do not + make these changes - they will affect <em>all</em> your clients, MSIE + or otherwise.</p> + + +<h3><a name="srp" id="srp">How do I enable TLS-SRP?</a></h3> + <p>TLS-SRP (Secure Remote Password key exchange for TLS, specified in RFC 5054) + can supplement or replace certificates in authenticating an SSL connection. + To use TLS-SRP, set the + <code class="directive"><a href="../mod/mod_ssl.html#sslsrpverifierfile">SSLSRPVerifierFile</a></code> directive to + point to an OpenSSL SRP verifier file. To create the verifier file, use the + <code>openssl</code> tool:</p> + <div class="example"><p><code> + openssl srp -srpvfile passwd.srpv -add username + </code></p></div> + <p>After creating this file, specify it in the SSL server configuration:</p> + <div class="example"><p><code> + SSLSRPVerifierFile /path/to/passwd.srpv + </code></p></div> + <p>To force clients to use non-certificate TLS-SRP cipher suites, use the + following directive:</p> + <div class="example"><p><code> + SSLCipherSuite "!DSS:!aRSA:SRP" + </code></p></div> + + +<h3><a name="javadh" id="javadh">Why do I get handshake failures with Java-based clients when using a certificate with more than 1024 bits?</a></h3> + <p>Beginning with version 2.4.7, + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> will use DH parameters which include primes + with lengths of more than 1024 bits. Java 7 and earlier limit their + support for DH prime sizes to a maximum of 1024 bits, however.</p> + + <p>If your Java-based client aborts with exceptions such as + <code>java.lang.RuntimeException: Could not generate DH keypair</code> and + <code>java.security.InvalidAlgorithmParameterException: Prime size must be + multiple of 64, and can only range from 512 to 1024 (inclusive)</code>, + and httpd logs <code>tlsv1 alert internal error (SSL alert number 80)</code> + (at <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> <code>info</code> + or higher), you can either rearrange mod_ssl's cipher list with + <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> + (possibly in conjunction with <code class="directive"><a href="../mod/mod_ssl.html#sslhonorcipherorder">SSLHonorCipherOrder</a></code>), + or you can use custom DH parameters with a 1024-bit prime, which + will always have precedence over any of the built-in DH parameters.</p> + + <p>To generate custom DH parameters, use the <code>openssl dhparam 1024</code> + command. Alternatively, you can use the following standard 1024-bit DH + parameters from <a href="http://www.ietf.org/rfc/rfc2409.txt">RFC 2409</a>, + section 6.2:</p> + <div class="example"><pre>-----BEGIN DH PARAMETERS----- +MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR +Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL +/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC +-----END DH PARAMETERS-----</pre></div> + <p>Add the custom parameters including the "BEGIN DH PARAMETERS" and + "END DH PARAMETERS" lines to the end of the first certificate file + you have configured using the + <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatefile">SSLCertificateFile</a></code> directive.</p> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="support" id="support">mod_ssl Support</a></h2> +<ul> +<li><a href="#resources">What information resources are available in +case of mod_ssl problems?</a></li> +<li><a href="#contact">What support contacts are available in case of +mod_ssl problems?</a></li> +<li><a href="#reportdetails">What information should I +provide when writing a bug report?</a></li> +<li><a href="#coredumphelp">I had a core dump, can you help me?</a></li> +<li><a href="#backtrace">How do I get a backtrace, to help find the reason +for my core dump?</a></li> +</ul> + +<h3><a name="resources" id="resources">What information resources are available in case of mod_ssl problems?</a></h3> +<p>The following information resources are available. + In case of problems you should search here first.</p> + + <dl> + <dt>Answers in the User Manual's F.A.Q. List (this)</dt> + <dd><a href="http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html"> + http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html</a><br /> + First check the F.A.Q. (this text). If your problem is a common + one, it may have been answered several times before, and been included + in this doc. + </dd> + </dl> + + +<h3><a name="contact" id="contact">What support contacts are available in case +of mod_ssl problems?</a></h3> + <p>The following lists all support possibilities for mod_ssl, in order of + preference. Please go through these possibilities + <em>in this order</em> - don't just pick the one you like the look of. </p> + <ol> + + <li><em>Send a Problem Report to the Apache httpd Users Support Mailing List</em><br /> + <a href="mailto:users@httpd.apache.org"> + users@httpd.apache.org</a><br /> + This is the second way of submitting your problem report. Again, you must + subscribe to the list first, but you can then easily discuss your problem + with the whole Apache httpd user community. + </li> + + <li><em>Write a Problem Report in the Bug Database</em><br /> + <a href="http://httpd.apache.org/bug_report.html"> + http://httpd.apache.org/bug_report.html</a><br /> + This is the last way of submitting your problem report. You should only + do this if you've already posted to the mailing lists, and had no success. + Please follow the instructions on the above page <em>carefully</em>. + </li> + </ol> + + +<h3><a name="reportdetails" id="reportdetails">What information should I +provide when writing a bug report?</a></h3> +<p>You should always provide at least the following information:</p> + + <dl> + <dt>Apache httpd and OpenSSL version information</dt> + <dd>The Apache version can be determined + by running <code>httpd -v</code>. The OpenSSL version can be + determined by running <code>openssl version</code>. Alternatively, if + you have Lynx installed, you can run the command <code>lynx -mime_header + http://localhost/ | grep Server</code> to gather this information in a + single step. + </dd> + + <dt>The details on how you built and installed Apache httpd and OpenSSL</dt> + <dd>For this you can provide a logfile of your terminal session which shows + the configuration and install steps. If this is not possible, you + should at least provide the <code class="program"><a href="../programs/configure.html">configure</a></code> command line you used. + </dd> + + <dt>In case of core dumps please include a Backtrace</dt> + <dd>If your Apache httpd dumps its core, please attach + a stack-frame ``backtrace'' (see <a href="#backtrace">below</a> + for information on how to get this). This information is required + in order to find a reason for your core dump. + </dd> + + <dt>A detailed description of your problem</dt> + <dd>Don't laugh, we really mean it! Many problem reports don't + include a description of what the actual problem is. Without this, + it's very difficult for anyone to help you. So, it's in your own + interest (you want the problem be solved, don't you?) to include as + much detail as possible, please. Of course, you should still include + all the essentials above too. + </dd> + </dl> + + +<h3><a name="coredumphelp" id="coredumphelp">I had a core dump, can you help me?</a></h3> +<p>In general no, at least not unless you provide more details about the code + location where Apache dumped core. What is usually always required in + order to help you is a backtrace (see next question). Without this + information it is mostly impossible to find the problem and help you in + fixing it.</p> + + +<h3><a name="backtrace" id="backtrace">How do I get a backtrace, to help find +the reason for my core dump?</a></h3> +<p>Following are the steps you will need to complete, to get a backtrace:</p> + <ol> + <li>Make sure you have debugging symbols available, at least + in Apache. On platforms where you use GCC/GDB, you will have to build + Apache+mod_ssl with ``<code>OPTIM="-g -ggdb3"</code>'' to get this. On + other platforms at least ``<code>OPTIM="-g"</code>'' is needed. + </li> + + <li>Start the server and try to reproduce the core-dump. For this you may + want to use a directive like ``<code>CoreDumpDirectory /tmp</code>'' to + make sure that the core-dump file can be written. This should result + in a <code>/tmp/core</code> or <code>/tmp/httpd.core</code> file. If you + don't get one of these, try running your server under a non-root UID. + Many modern kernels do not allow a process to dump core after it has + done a <code>setuid()</code> (unless it does an <code>exec()</code>) for + security reasons (there can be privileged information left over in + memory). If necessary, you can run <code>/path/to/httpd -X</code> + manually to force Apache to not fork. + </li> + + <li>Analyze the core-dump. For this, run <code>gdb /path/to/httpd + /tmp/httpd.core</code> or a similar command. In GDB, all you + have to do then is to enter <code>bt</code>, and voila, you get the + backtrace. For other debuggers consult your local debugger manual. + </li> + </ol> + +</div></div> +<div class="bottomlang"> +<p><span>Available Languages: </span><a href="../en/ssl/ssl_faq.html" title="English"> en </a> | +<a href="../fr/ssl/ssl_faq.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 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> +<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_faq.html.fr.utf8 b/docs/manual/ssl/ssl_faq.html.fr.utf8 new file mode 100644 index 0000000..5d32e0f --- /dev/null +++ b/docs/manual/ssl/ssl_faq.html.fr.utf8 @@ -0,0 +1,1036 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="fr" xml:lang="fr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Chiffrement SSL/TLS fort: foire aux questions - Serveur HTTP Apache Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> +<p class="apache">Serveur HTTP Apache Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>Chiffrement SSL/TLS fort: foire aux questions</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_faq.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_faq.html" title="Français"> fr </a></p> +</div> + +<blockquote> +<p>Le sage n'apporte pas de bonnes réponses, il pose les bonnes questions</p> +<p class="cite">-- <cite>Claude Levi-Strauss</cite></p> + +</blockquote> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#installation">Installation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#aboutconfig">Configuration</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#aboutcerts">Certificats</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#aboutssl">Le protocole SSL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#support">Support de mod_ssl</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</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="installation" id="installation">Installation</a></h2> +<ul> +<li><a href="#mutex">Pourquoi le démarrage d'Apache provoque-t-il des +erreurs de permission en rapport avec SSLMutex ?</a></li> +<li><a href="#entropy">Pourquoi mod_ssl s'arrête-t-il avec l'erreur +"Failed to generate temporary 512 bit RSA private key" au démarrage +d'Apache ?</a></li> +</ul> + +<h3><a name="mutex" id="mutex">Pourquoi le démarrage d'Apache provoque-t-il des +erreurs de permission en rapport avec SSLMutex ?</a></h3> + <p>Des erreurs telles que ``<code>mod_ssl: Child could not open + SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (avec l'erreur + systÚme qui suit) [...] System: Permission denied (errno: 13)</code>'' + sont souvent provoquées par des permissions trop restrictives sur les + répertoires <em>parents</em>. Assurez-vous que tous les répertoires + parents (ici <code>/opt</code>, <code>/opt/apache</code> et + <code>/opt/apache/logs</code>) ont le bit x positionné au moins pour + l'UID sous lequel les processus enfants d'Apache s'exécutent (voir la + directive <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>).</p> + + +<h3><a name="entropy" id="entropy">Pourquoi mod_ssl s'arrête-t-il avec l'erreur +"Failed to generate temporary 512 bit RSA private key" au démarrage +d'Apache ?</a></h3> + <p>Pour fonctionner correctement, les logiciels de cryptographie ont + besoin d'une source de données aléatoires. De nombreux systÚmes + d'exploitation libres proposent un "périphérique source d'entropie" + qui fournit ce service (il se nomme en général + <code>/dev/random</code>). Sur d'autres systÚmes, les applications + doivent amorcer manuellement + le Générateur de Nombres Pseudo-Aléatoires d'OpenSSL + (Pseudo Random Number Generator -PRNG) à l'aide de données appropriées + avant de générer des clés ou d'effectuer un chiffrement à clé + publique. Depuis la version 0.9.5, les fonctions d'OpenSSL qui nécessitent + des données aléatoires provoquent une erreur si le PRNG n'a pas été amorcé + avec une source de données aléatoires d'au moins 128 bits.</p> + <p>Pour éviter cette erreur, <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> doit fournir + suffisamment d'entropie au PRNG pour lui permettre de fonctionner + correctement. Ce niveau d'entropie est défini par la directive + <code class="directive"><a href="../mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code>.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="aboutconfig" id="aboutconfig">Configuration</a></h2> +<ul> +<li><a href="#parallel">Peut-on faire cohabiter HTTP et HTTPS sur le même +serveur ?</a></li> +<li><a href="#ports">Quel port HTTPS utilise-t-il ?</a></li> +<li><a href="#httpstest">Comment s'exprimer en langage HTTPS à des fins +de test ?</a></li> +<li><a href="#hang">Pourquoi la communication se bloque-t-elle lorsque je +me connecte à mon serveur Apache configuré pour SSL ?</a></li> +<li><a href="#refused">Pourquoi, lorsque je tente d'accéder en HTTPS à mon +serveur Apache+mod_ssl fraîchement installé, l'erreur ``Connection Refused'' +s'affiche-t-elle ?</a></li> +<li><a href="#envvars">Pourquoi les variables <code>SSL_XXX</code> +ne sont-elles pas disponibles dans mes scripts CGI et SSI ?</a></li> +<li><a href="#relative">Comment puis-je basculer entre les protocoles HTTP et +HTTPS dans les hyperliens relatifs ?</a></li> +</ul> + +<h3><a name="parallel" id="parallel">Peut-on faire cohabiter HTTP et HTTPS sur le même +serveur ?</a></h3> + <p>Oui. HTTP et HTTPS utilisent des ports différents (HTTP écoute le port + 80 et HTTPS le port 443), si bien qu'il n'y a pas de conflit direct entre + les deux. Vous pouvez soit exécuter deux instances séparées du serveur, + chacune d'entre elles écoutant l'un de ces ports, soit utiliser l'élégante + fonctionnalité d'Apache que constituent les hÎtes virtuels pour créer + deux serveurs virtuels gérés par la même instance d'Apache - le + premier serveur répondant en HTTP aux requêtes sur le port 80, + le second répondant en HTTPS aux requêtes sur le port + 443.</p> + + +<h3><a name="ports" id="ports">Quel port HTTPS utilise-t-il ?</a></h3> +<p>Vous pouvez associer le protocole HTTPS à n'importe quel port, mais le port +standard est le port 443, que tout navigateur compatible HTTPS va utiliser par +défaut. Vous pouvez forcer votre navigateur à utiliser un port différent en le +précisant dans l'URL. Par exemple, si votre serveur est configuré pour +servir des pages en HTTPS sur le port 8080, vous pourrez y accéder par +l'adresse <code>https://example.com:8080/</code>.</p> + + +<h3><a name="httpstest" id="httpstest">Comment s'exprimer en langage HTTPS à des fins +de test ?</a></h3> + <p>Alors que vous utilisez simplement</p> + + <div class="example"><p><code>$ telnet localhost 80<br /> + GET / HTTP/1.0</code></p></div> + + <p>pour tester facilement Apache via HTTP, les choses ne sont pas si + simples pour HTTPS à cause du protocole SSL situé entre TCP et HTTP. + La commande OpenSSL <code>s_client</code> vous permet cependant + d'effectuer un test similaire via HTTPS :</p> + + <div class="example"><p><code>$ openssl s_client -connect localhost:443 -state -debug<br /> + GET / HTTP/1.0</code></p></div> + + <p>Avant la véritable réponse HTTP, vous recevrez des informations + détaillées à propos de l'établissement de la connexion SSL. Si vous + recherchez un client en ligne de commande à usage plus général qui comprend + directement HTTP et HTTPS, qui peut effectuer des opérations GET et POST, + peut utiliser un mandataire, supporte les requêtes portant sur une partie + d'un fichier (byte-range), etc..., vous devriez vous tourner vers + l'excellent outil <a href="http://curl.haxx.se/">cURL</a>. Grâce à lui, + vous pouvez vérifier si Apache répond correctement aux requêtes via + HTTP et HTTPS comme suit :</p> + + <div class="example"><p><code>$ curl http://localhost/<br /> + $ curl https://localhost/</code></p></div> + + +<h3><a name="hang" id="hang">Pourquoi la communication se bloque-t-elle lorsque je +me connecte à mon serveur Apache configuré pour SSL ?</a></h3> +<p>Ceci peut arriver si vous vous connectez à un serveur HTTPS (ou à +un serveur virtuel) via HTTP (par exemple, en utilisant +<code>http://example.com/</code> au lieu de <code>https://example.com</code>). +Cela peut aussi arriver en essayant de vous connecter via HTTPS à un +serveur HTTP (par exemple, en utilisant <code>https://example.com/</code> +avec un serveur qui ne supporte pas HTTPS, ou le supporte, mais sur un +port non standard). Assurez-vous que vous vous connectez bien à un +serveur (virtuel) qui supporte SSL.</p> + + +<h3><a name="refused" id="refused">Pourquoi, lorsque je tente d'accéder en HTTPS à mon +serveur Apache+mod_ssl fraîchement installé, l'erreur ``Connection Refused'' +s'affiche-t-elle ?</a></h3> +<p>Une configuration incorrecte peut provoquer ce type d'erreur. +Assurez-vous que vos directives <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> s'accordent avec vos directives + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. Si + l'erreur persiste, recommencez depuis le début en restaurant la + configuration par défaut fournie par<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>.</p> + + +<h3><a name="envvars" id="envvars">Pourquoi les variables <code>SSL_XXX</code> +ne sont-elles pas disponibles dans mes scripts CGI et SSI ?</a></h3> +<p>Assurez-vous que la directive ``<code>SSLOptions +StdEnvVars</code>'' est +bien présente dans le contexte de vos requêtes CGI/SSI.</p> + + +<h3><a name="relative" id="relative">Comment puis-je basculer entre les protocoles HTTP et +HTTPS dans les hyperliens relatifs ?</a></h3> + +<p>Normalement, pour basculer entre HTTP et HTTPS, vous devez utiliser des +hyperliens pleinement qualifiés (car vous devez modifier le schéma de l'URL). +Cependant, à l'aide du module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, vous pouvez +manipuler des hyperliens relatifs, pour obtenir le même effet.</p> + <pre class="prettyprint lang-config">RewriteEngine on +RewriteRule "^/(.*)_SSL$" "https://%{SERVER_NAME}/$1" [R,L] +RewriteRule "^/(.*)_NOSSL$" "http://%{SERVER_NAME}/$1" [R,L]</pre> + + + <p>Ce jeu de rÚgles rewrite vous permet d'utiliser des hyperliens de la + forme <code><a href="document.html_SSL"></code> pour passer en HTTPS + dans les liens relatifs. (Remplacez SSL par NOSSL pour passer en HTTP.)</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="aboutcerts" id="aboutcerts">Certificats</a></h2> +<ul> +<li><a href="#keyscerts">Qu'est-ce qu'un clé privée RSA, un certificat, +une demande de signature de certificat (CSR) ?</a></li> +<li><a href="#startup">Y a-t-il une différence au démarrage entre un serveur +Apache non SSL et un serveur Apache supportant SSL ?</a></li> +<li><a href="#selfcert">Comment créer un certificat auto-signé SSL à des +fins de test ?</a></li> +<li><a href="#realcert">Comment créer un vrai certificat SSL ?</a></li> +<li><a href="#ownca">Comment créer et utiliser sa propre Autorité de +certification (CA) ?</a></li> +<li><a href="#passphrase">Comment modifier le mot de passe +de ma clé privée ?</a></li> +<li><a href="#removepassphrase">Comment démarrer Apache sans avoir à entrer de +mot de passe ?</a></li> +<li><a href="#verify">Comment vérifier si une clé privée correspond bien +à son certificat ?</a></li> +<li><a href="#pemder">Comment convertir un certificat du format PEM +au format DER ?</a></li> +<li><a href="#gid">Pourquoi les navigateurs se plaignent-ils de ne pas pouvoir +vérifier mon certificat de serveur ?</a></li> +</ul> + +<h3><a name="keyscerts" id="keyscerts">Qu'est-ce qu'un clé privée RSA, un certificat, +une demande de signature de certificat (CSR) ?</a></h3> +<p>Un fichier de clé privée RSA est un fichier numérique que vous pouvez +utiliser pour déchiffrer des messages que l'on vous a envoyés. Il a son +pendant à caractÚre public que vous pouvez distribuer (par le biais de votre +certificat), ce qui permet aux utilisateurs de chiffrer les messages qu'ils +vous envoient.</p> + <p>Une Demande de Signature de Certificat (CSR) est un fichier numérique + qui contient votre clé publique et votre nom. La CSR doit être envoyée à + une Autorité de Certification (CA), qui va la convertir en vrai certificat + en la signant.</p> + <p>Un certificat contient votre clé publique RSA, votre nom, le nom + de la CA, et est signé numériquement par cette derniÚre. Les navigateurs + qui reconnaissent la CA peuvent vérifier la signature du certificat, et + ainsi en extraire votre clé publique RSA. Ceci leur permet de vous envoyer + des messages chiffrés que vous seul pourrez déchiffrer.</p> + <p>Se référer au chapitre <a href="ssl_intro.html">Introduction</a> + pour une description générale du protocole SSL.</p> + + +<h3><a name="startup" id="startup">Y a-t-il une différence au démarrage entre un serveur +Apache non SSL et un serveur Apache supportant SSL ?</a></h3> +<p>Oui. En général, avec ou sans <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> intégré, le démarrage +d'Apache ne présente pas de différences. Cependant, si votre fichier de clé +privée SSL possÚde un mot de passe, vous devrez le taper au démarrage +d'Apache.</p> + + <p>Devoir entrer manuellement le mot de passe au démarrage du serveur peut + poser quelques problÚmes - par exemple, quand le serveur est démarré au + moyen de scripts au lancement du systÚme. Dans ce cas, vous pouvez suivre + les étapes <a href="#removepassphrase">ci-dessous</a> pour supprimer le + mot de passe de votre clé privée. Gardez à l'esprit qu'agir ainsi augmente + les risques de sécurité - agissez avec précaution !</p> + + +<h3><a name="selfcert" id="selfcert">Comment créer un certificat auto-signé SSL à des +fins de test ?</a></h3> + <ol> + <li>Vérifiez qu'OpenSSL est installé et l'exécutable openssl dans votre + <code>PATH</code>.<br /> + <br /> + </li> + <li>Exécuter la commande suivante pour créer les fichiers + <code>server.key</code> et <code>server.crt</code> :<br /> + <code><strong>$ openssl req -new -x509 -nodes -out server.crt + -keyout server.key</strong></code><br /> + Ces fichiers seront utilisés comme suit dans votre + <code>httpd.conf</code> : + <pre class="prettyprint lang-config">SSLCertificateFile "/path/to/this/server.crt" +SSLCertificateKeyFile "/path/to/this/server.key"</pre> + + </li> + <li>Il est important de savoir que le fichier <code>server.key</code> n'a + <em>pas</em> de mot de passe. Pour ajouter un mot de passe à la clé, vous + devez exécuter la commande suivante et confirmer le mot de passe comme + demandé.<br /> + <p><code><strong>$ openssl rsa -des3 -in server.key -out + server.key.new</strong></code><br /> + <code><strong>$ mv server.key.new server.key</strong></code><br /></p> + Sauvegardez le fichier <code>server.key</code> ainsi que son mot de + passe en lieu sûr. + </li> + </ol> + + +<h3><a name="realcert" id="realcert">Comment créer un vrai certificat SSL ?</a></h3> +<p>Voici la marche à suivre pas à pas :</p> + <ol> + <li>Assurez-vous qu'OpenSSL est bien installé et dans votre <code>PATH</code>. + <br /> + <br /> + </li> + <li>Créez une clé privée RSA pour votre serveur Apache + (elle sera au format PEM et chiffrée en Triple-DES):<br /> + <br /> + <code><strong>$ openssl genrsa -des3 -out server.key 2048</strong></code><br /> + <br /> + Enregistrez le fichier <code>server.key</code> et le mot de passe + éventuellement défini en lieu sûr. + Vous pouvez afficher les détails de cette clé privée RSA à l'aide de la + commande :<br /> + + <br /> + <code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br /> + <br /> + Si nécessaire, vous pouvez aussi créer une version PEM non chiffrée + (non recommandé) de clé privée RSA avec :<br /> + <br /> + <code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br /> + <br /> + + </li> + <li>Créez une Demande de signature de Certificat (CSR) à l'aide de la + clé privée précédemment générée (la sortie sera au format PEM):<br /> + <br /> + <code><strong>$ openssl req -new -key server.key -out server.csr</strong></code><br /> + <br /> + Vous devez entrer le Nom de Domaine Pleinement Qualifié + ("Fully Qualified Domain Name" ou FQDN) de votre serveur lorsqu'OpenSSL + vous demande le "CommonName", c'est à dire que si vous générez une CSR + pour un site web auquel on accÚdera par l'URL + <code>https://www.foo.dom/</code>, le FQDN sera "www.foo.dom". Vous + pouvez afficher les détails de ce CSR avec :<br /> + + <br /> + <code><strong>$ openssl req -noout -text -in server.csr</strong></code><br /> + <br /> + </li> + <li>Vous devez maintenant envoyer la CSR à une Autorité de Certification + (CA), afin que cette derniÚre puisse la signer. Une fois la CSR signée, + vous disposerez d'un véritable certificat que vous pourrez utiliser avec + Apache. Vous pouvez faire signer votre CSR par une CA commerciale ou par + votre propre CA.<br /> + Les CAs commerciales vous demandent en général de leur envoyer la CSR + par l'intermédiaire d'un formulaire web, de régler le montant de la + signature, puis vous envoient un certificat signé que vous pouvez + enregistrer dans un fichier server.crt. + + Pour plus de détails sur la maniÚre de créer sa propre CA, et de + l'utiliser pour signer une CSR, voir <a href="#ownca">ci-dessous</a>.<br /> + + Une fois la CSR signée, vous pouvez afficher les détails du certificat + comme suit :<br /> + <br /> + <code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> + + </li> + <li>Vous devez maintenant disposer de deux fichiers : + <code>server.key</code> et <code>server.crt</code>. Ils sont précisés dans + votre fichier <code>httpd.conf</code> comme suit : + <pre class="prettyprint lang-config">SSLCertificateFile "/path/to/this/server.crt" +SSLCertificateKeyFile "/path/to/this/server.key"</pre> + + Le fichier <code>server.csr</code> n'est plus nécessaire. + </li> + + </ol> + + +<h3><a name="ownca" id="ownca">Comment créer et utiliser sa propre Autorité de +certification (CA) ?</a></h3> + <p>La solution la plus simple consiste à utiliser les scripts + <code>CA.sh</code> ou <code>CA.pl</code> fournis avec OpenSSL. De + préférence, utilisez cette solution, à moins que vous ayez de bonnes + raisons de ne pas le faire. Dans ce dernier cas, vous pouvez créer un + certificat auto-signé comme suit :</p> + + <ol> + <li>Créez une clé privée RSA pour votre serveur + (elle sera au format PEM et chiffrée en Triple-DES) :<br /> + <br /> + <code><strong>$ openssl genrsa -des3 -out server.key 2048</strong></code><br /> + <br /> + Sauvegardez le fichier <code>server.key</code> et le mot de passe + éventuellement défini en lieu sûr. + Vous pouvez afficher les détails de cette clé privée RSA à l'aide de la + commande :<br /> + <br /> + <code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br /> + <br /> + Si nécessaire, vous pouvez aussi créer une version PEM non chiffrée + (non recommandé) de cette clé privée RSA avec :<br /> + <br /> + <code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br /> + <br /> + </li> + <li>Créez un certificat auto-signé (structure X509) à l'aide de la clé RSA + que vous venez de générer (la sortie sera au format PEM) :<br /> + <br /> + <code><strong>$ openssl req -new -x509 -nodes -sha1 -days 365 + -key server.key -out server.crt -extensions usr_cert</strong></code><br /> + <br /> + Cette commande signe le certificat du serveur et produit un fichier + <code>server.crt</code>. Vous pouvez afficher les détails de ce + certificat avec :<br /> + <br /> + <code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> + <br /> + </li> + </ol> + + +<h3><a name="passphrase" id="passphrase">Comment modifier le mot de passe +de ma clé privée ?</a></h3> +<p>Vous devez simplement lire la clé avec l'ancien mot de passe et la +réécrire en spécifiant le nouveau mot de passe. Pour cela, vous pouvez +utiliser les commandes suivantes :</p> + + + <p><code><strong>$ openssl rsa -des3 -in server.key -out server.key.new</strong></code><br /> + <code><strong>$ mv server.key.new server.key</strong></code><br /></p> + + <p>La premiÚre fois qu'il vous est demandé un mot de passe PEM, vous + devez entrer l'ancien mot de passe. Ensuite, on vous demandera d'entrer + encore un mot de passe - cette fois, entrez le nouveau mot de passe. Si on + vous demande de vérifier le mot de passe, vous devrez entrer le nouveau + mot de passe une seconde fois.</p> + + +<h3><a name="removepassphrase" id="removepassphrase">Comment démarrer Apache sans avoir à entrer de +mot de passe ?</a></h3> +<p>L'apparition de ce dialogue au démarrage et à chaque redémarrage provient +du fait que la clé privée RSA contenue dans votre fichier server.key est +enregistrée sous forme chiffrée pour des raisons de sécurité. Le +déchiffrement de ce fichier nécessite un mot de passe, afin de pouvoir être +lu et interprété. Cependant, La suppression du mot de passe diminue le niveau de +sécurité du serveur - agissez avec précautions !</p> + <ol> + <li>Supprimer le chiffrement de la clé privée RSA (tout en conservant une + copie de sauvegarde du fichier original) :<br /> + <br /> + <code><strong>$ cp server.key server.key.org</strong></code><br /> + <code><strong>$ openssl rsa -in server.key.org -out server.key</strong></code><br /> + + <br /> + </li> + <li>Assurez-vous que le fichier server.key n'est lisible que par root :<br /> + <br /> + <code><strong>$ chmod 400 server.key</strong></code><br /> + <br /> + </li> + </ol> + + <p>Maintenant, <code>server.key</code> contient une copie non chiffrée de + la clé. Si vous utilisez ce fichier pour votre serveur, il ne vous + demandera plus de mot de passe. CEPENDANT, si quelqu'un arrive à obtenir + cette clé, il sera en mesure d'usurper votre identité sur le réseau. + Vous DEVEZ par conséquent vous assurer que seuls root ou le serveur web + peuvent lire ce fichier (de préférence, démarrez le serveur web sous + root et faites le s'exécuter sous un autre utilisateur, en n'autorisant + la lecture de la clé que par root).</p> + + <p>Une autre alternative consiste à utiliser la directive + ``<code>SSLPassPhraseDialog exec:/chemin/vers/programme</code>''. Gardez + cependant à l'esprit que ce n'est bien entendu ni plus ni moins + sécurisé.</p> + + +<h3><a name="verify" id="verify">Comment vérifier si une clé privée correspond bien +à son certificat ?</a></h3> +<p>Une clé privée contient une série de nombres. Deux de ces nombres forment la +"clé publique", les autres appartiennent à la "clé privée". Les bits de la +"clé publique" sont inclus quand vous générez une CSR, et font par +conséquent partie du certificat associé.</p> + <p>Pour vérifier que la clé publique contenue dans votre certificat + correspond bien à la partie publique de votre clé privée, il vous suffit + de comparer ces nombres. Pour afficher le certificat et la clé, + utilisez cette commande :</p> + + <p><code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> + <code><strong>$ openssl rsa -noout -text -in server.key</strong></code></p> + + <p>Les parties `modulus' et `public exponent' doivent être identiques dans + la clé et le certificat. Comme le `public exponent' est habituellement + 65537, et comme il est difficile de vérifier visuellement que les nombreux + nombres du `modulus' sont identiques, vous pouvez utiliser l'approche + suivante :</p> + + <p><code><strong>$ openssl x509 -noout -modulus -in server.crt | openssl md5</strong></code><br /> + <code><strong>$ openssl rsa -noout -modulus -in server.key | openssl md5</strong></code></p> + + <p>Il ne vous reste ainsi que deux nombres relativement courts à comparer. + Il est possible, en théorie que ces deux nombres soient les mêmes, sans que + les nombres du modulus soient identiques, mais les chances en sont infimes.</p> + <p>Si vous souhaitez vérifier à quelle clé ou certificat appartient une CSR + particuliÚre, vous pouvez effectuer le même calcul + sur la CSR comme suit :</p> + + <p><code><strong>$ openssl req -noout -modulus -in server.csr | openssl md5</strong></code></p> + + +<h3><a name="pemder" id="pemder">Comment convertir un certificat du format PEM +au format DER ?</a></h3> +<p>Le format des certificats par défaut pour OpenSSL est le format PEM, +qui est tout simplement un format DER codé en Base64, avec des lignes +d'en-têtes et des annotations. Certaines applications, comme +Microsoft Internet Explorer, ont besoin d'un certificat au format DER de base. +Vous pouvez convertir un fichier PEM <code>cert.pem</code> en son équivalent +au format DER <code>cert.der</code> à l'aide de la commande suivante : +<code><strong>$ openssl x509 -in cert.pem -out cert.der +-outform DER</strong></code></p> + + +<h3><a name="gid" id="gid">Pourquoi les navigateurs se plaignent-ils de ne pas pouvoir +vérifier mon certificat de serveur ?</a></h3> + + <p>Ceci peut se produire si votre certificat de serveur est signé + par une autorité de certification intermédiaire. Plusieurs CAs, + comme Verisign ou Thawte, ont commencé à signer les certificats avec + des certificats intermédiaires au lieu de leur certificat racine.</p> + + <p>Les certificats de CA intermédiaires se situe à un niveau + intermédiaire entre le certificat racine de la CA (qui est installé dans les + navigateurs) et le certificat du serveur (que vous avez installé sur + votre serveur). Pour que le navigateur puisse traverser et vérifier + la chaîne de confiance depuis le certificat du serveur jusqu'au + certificat racine, il faut lui fournir les certificats + intermédiaires. Les CAs devraient pouvoir fournir de tels + paquetages de certificats intermédiaires à installer sur les + serveurs.</p> + + <p>Vous devez inclure ces certificats intermédiaires via la + directive <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatechainfile">SSLCertificateChainFile</a></code>.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="aboutssl" id="aboutssl">Le protocole SSL</a></h2> +<ul> +<li><a href="#random">Pourquoi de nombreuses et aléatoires erreurs de +protocole SSL apparaissent-elles en cas de forte charge du serveur ?</a></li> +<li><a href="#load">Pourquoi la charge de mon serveur est-elle plus +importante depuis qu'il sert des ressources chiffrées en SSL ?</a></li> +<li><a href="#establishing">Pourquoi les connexions en HTTPS à mon serveur +prennent-elles parfois jusqu'à 30 secondes pour s'établir ?</a></li> +<li><a href="#ciphers">Quels sont les algorithmes de chiffrement +supportés par mod_ssl ?</a></li> +<li><a href="#adh">Pourquoi une erreur ``no shared cipher'' apparaît-elle +quand j'essaie d'utiliser un algorithme de chiffrement +Diffie-Hellman anonyme (ADH) ?</a></li> +<li><a href="#sharedciphers">Pourquoi une erreur ``no shared cipher'' +apparaît-elle lorsqu'on se connecte à mon serveur +fraîchement installé ?</a></li> +<li><a href="#vhosts">Pourquoi ne peut-on pas utiliser SSL avec des hÎtes +virtuels identifiés par un nom et non par une adresse IP ?</a></li> +<li><a href="#vhosts2">Est-il possible d'utiliser +l'hébergement virtuel basé sur le nom d'hÎte +pour différencier plusieurs hÎtes virtuels ?</a></li> +<li><a href="#comp">Comment mettre en oeuvre la compression SSL ?</a></li> +<li><a href="#lockicon">Lorsque j'utilise l'authentification de base sur HTTPS, +l'icÎne de verrouillage des navigateurs Netscape reste ouverte quand la boîte +de dialogue d'authentification apparaît. Cela signifie-t-il que les utilisateur +et mot de passe sont envoyés en clair ?</a></li> +<li><a href="#msie">Pourquoi des erreurs d'entrée/sortie apparaissent-elles +lorsqu'on se connecte à un serveur Apache+mod_ssl avec +Microsoft Internet Explorer (MSIE) ?</a></li> +<li><a href="#srp">Comment activer TLS-SRP ?</a></li> +<li><a href="#javadh">Pourquoi des erreurs de négociation apparaissent +avec les clients basés sur Java lorsqu'on utilise un certificat de plus +de 1024 bits ?</a></li> +</ul> + +<h3><a name="random" id="random">Pourquoi de nombreuses et aléatoires erreurs de +protocole SSL apparaissent-elles en cas de forte charge du serveur ?</a></h3> +<p>Ce problÚme peut avoir plusieurs causes, mais la principale réside dans le +cache de session SSL défini par la directive +<code class="directive"><a href="../mod/mod_ssl.html#sslsessioncache">SSLSessionCache</a></code>. Le cache de session +DBM est souvent à la source du problÚme qui peut être résolu en utilisant le +cache de session SHM (ou en n'utilisant tout simplement pas de cache).</p> + + +<h3><a name="load" id="load">Pourquoi la charge de mon serveur est-elle plus +importante depuis qu'il sert des ressources chiffrées en SSL ?</a></h3> +<p>SSL utilise un procédé de chiffrement fort qui nécessite la manipulation +d'une quantité trÚs importante de nombres. Lorsque vous effectuez une requête +pour une page web via HTTPS, tout (même les images) est chiffré avant d'être +transmis. C'est pourquoi un accroissement du traffic HTTPS entraîne une +augmentation de la charge.</p> + + +<h3><a name="establishing" id="establishing">Pourquoi les connexions en HTTPS à mon serveur +prennent-elles parfois jusqu'à 30 secondes pour s'établir ?</a></h3> +<p>Ce problÚme provient en général d'un périphérique <code>/dev/random</code> +qui bloque l'appel systÚme read(2) jusqu'à ce que suffisamment d'entropie +soit disponible pour servir la requête. Pour plus d'information, se référer au +manuel de référence de la directive +<code class="directive"><a href="../mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code>.</p> + + +<h3><a name="ciphers" id="ciphers">Quels sont les algorithmes de chiffrement +supportés par mod_ssl ?</a></h3> +<p>En général, tous les algorithmes de chiffrement supportés par la version +d'OpenSSL installée, le sont aussi par <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. La liste des +algorithmes disponibles peut dépendre de la maniÚre dont vous avez installé +OpenSSL. Typiquement, au moins les algorithmes suivants sont supportés :</p> + + <ol> + <li>RC4 avec SHA1</li> + <li>AES avec SHA1</li> + <li>Triple-DES avec SHA1</li> + </ol> + + <p>Pour déterminer la liste réelle des algorithmes disponibles, vous + pouvez utiliser la commande suivante :</p> + <div class="example"><p><code>$ openssl ciphers -v</code></p></div> + + +<h3><a name="adh" id="adh">Pourquoi une erreur ``no shared cipher'' apparaît-elle +quand j'essaie d'utiliser un algorithme de chiffrement +Diffie-Hellman anonyme (ADH) ?</a></h3> +<p>Par défaut et pour des raisons de sécurité, OpenSSl ne permet <em>pas</em> +l'utilisation des algorithmes de chiffrements ADH. Veuillez vous informer +sur les effets pervers potentiels si vous choisissez d'activer le support +de ces algorithmes de chiffrements.</p> +<p>Pour pouvoir utiliser les algorithmes de chiffrements Diffie-Hellman +anonymes (ADH), vous devez compiler OpenSSL avec +``<code>-DSSL_ALLOW_ADH</code>'', puis ajouter ``<code>ADH</code>'' à votre +directive <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code>.</p> + + +<h3><a name="sharedciphers" id="sharedciphers">Pourquoi une erreur ``no shared cipher'' +apparaît-elle lorsqu'on se connecte à mon serveur +fraîchement installé ?</a></h3> +<p>Soit vous avez fait une erreur en définissant votre directive +<code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> (comparez-la avec +l'exemple préconfiguré dans <code>extra/httpd-ssl.conf</code>), soit vous avez +choisi d'utiliser des algorithmes DSA/DH au lieu de RSA lorsque vous avez +généré votre clé privée, et avez ignoré ou êtes passé outre les +avertissements. Si vous avez choisi DSA/DH, votre serveur est incapable de +communiquer en utilisant des algorithmes de chiffrements SSL basés sur RSA +(du moins tant que vous n'aurez pas configuré une paire clé/certificat RSA +additionnelle). Les navigateurs modernes tels que NS ou IE ne peuvent +communiquer par SSL qu'avec des algorithmes RSA. C'est ce qui provoque l'erreur +"no shared ciphers". Pour la corriger, générez une nouvelle paire +clé/certificat pour le serveur en utilisant un algorithme de chiffrement +RSA.</p> + + +<h3><a name="vhosts" id="vhosts">Pourquoi ne peut-on pas utiliser SSL avec des hÎtes +virtuels identifiés par un nom et non par une adresse IP ?</a></h3> +<p>La raison est trÚs technique, et s'apparente au problÚme de la primauté de +l'oeuf ou de la poule. La couche du protocole SSL se trouve en dessous de la +couche de protocole HTTP qu'elle encapsule. Lors de l'établissement d'une +connexion SSL (HTTPS), Apache/mod_ssl doit négocier les paramÚtres du +protocole SSL avec le client. Pour cela, mod_ssl doit consulter la +configuration du serveur virtuel (par exemple, il doit accéder à la suite +d'algorithmes de chiffrement, au certificat du serveur, etc...). Mais afin de +sélectionner le bon serveur virtuel, Apache doit connaître le contenu du champ +d'en-tête HTTP <code>Host</code>. Pour cela, il doit lire l'en-tête de la +requête HTTP. Mais il ne peut le faire tant que la négociation SSL n'est pas +terminée, or, la phase de négociation SSL a besoin du nom d'hÎte contenu +dans l'en-tête de la requête. Voir la question suivante pour +contourner ce problÚme.</p> + + <p>Notez que si votre certificat comporte un nom de serveur avec + caractÚres génériques, ou des noms de serveurs multiples dans le + champ subjectAltName, vous pouvez utiliser SSL avec les serveurs + virtuels à base de noms sans avoir à contourner ce problÚme.</p> + + +<h3><a name="vhosts2" id="vhosts2">Est-il possible d'utiliser +l'hébergement virtuel basé sur le nom d'hÎte +pour différencier plusieurs hÎtes virtuels ?</a></h3> + <p>L'hébergement virtuel basé sur le nom est une méthode trÚs populaire + d'identification des différents hÎtes virtuels. Il permet d'utiliser la + même adresse IP et le même numéro de port pour de nombreux sites + différents. Lorsqu'on se tourne vers SSL, il semble tout naturel de penser + que l'on peut appliquer la même méthode pour gérer plusieurs hÎtes + virtuels SSL sur le même serveur.</p> + + <p>C'est possible, mais seulement si on utilise une version 2.2.12 + ou supérieure du serveur web compilée avec OpenSSL + version 0.9.8j ou supérieure. Ceci est du au fait que + l'utilisation de l'hébergement virtuel à base de nom + avec SSL nécessite une fonctionnalité appelée + Indication du Nom de Serveur (Server Name Indication - SNI) que + seules les révisions les plus récentes de la + spécification SSL supportent.</p> + + <p>Notez que si votre certificat comporte un nom de serveur avec + caractÚres génériques, ou des noms de serveurs multiples dans le + champ subjectAltName, vous pouvez utiliser SSL avec les serveurs + virtuels à base de noms sans avoir à contourner ce problÚme.</p> + + <p>La raison en est que le protocole SSL constitue une couche séparée qui + encapsule le protocole HTTP. Aini, la session SSL nécessite une + transaction séparée qui prend place avant que la session HTTP n'ait débuté. + Le serveur reçoit une requête SSL sur l'adresse IP X et le port Y + (habituellement 443). Comme la requête SSL ne contenait aucun + en-tête Host:, le serveur n'avait aucun moyen de déterminer quel hÎte virtuel SSL il + devait utiliser. En général, il utilisait le premier + qu'il trouvait et qui + correspondait à l'adresse IP et au port spécifiés.</p> + + <p>Par contre, si vous utilisez des versions du serveur web et + d'OpenSSL qui supportent SNI, et si le navigateur du client le + supporte aussi, alors le nom d'hÎte sera inclus dans la + requête SSL originale, et le serveur web pourra + sélectionner le bon serveur virtuel SSL.</p> + + <p>Bien entendu, vous pouvez utiliser l'hébergement virtuel basé sur le nom + pour identifier de nombreux hÎtes virtuels non-SSL + (tous sur le port 80 par exemple), et ne gérer qu'un seul hÎte virtuel SSL + (sur le port 443). Mais dans ce cas, vous devez définir le numéro de port + non-SSL à l'aide de la directive NameVirtualHost dans ce style :</p> + + <pre class="prettyprint lang-config">NameVirtualHost 192.168.1.1:80</pre> + + + <p>il existe d'autres solutions alternatives comme :</p> + + <p>Utiliser des adresses IP différentes pour chaque hÎte SSL. + Utiliser des numéros de port différents pour chaque hÎte SSL.</p> + + +<h3><a name="comp" id="comp">Comment mettre en oeuvre la compression SSL ?</a></h3> +<p>Bien que la négociation pour la compression SSL ait été définie dans la +spécification de SSLv2 et TLS, ce n'est qu'en mai 2004 que la RFC 3749 a +défini DEFLATE comme une méthode de compression standard négociable. +</p> +<p>Depuis la version 0.9.8, OpenSSL supporte cette compression par défaut +lorsqu'il est compilé avec l'option <code>zlib</code>. Si le client et le +serveur supportent la compression, elle sera utilisée. Cependant, la +plupart des clients essaient encore de se connecter avec un Hello SSLv2. +Comme SSLv2 ne comportait pas de table des algorithmes de compression préférés +dans sa négociation, la compression ne peut pas être négociée avec ces clients. +Si le client désactive le support SSLv2, un Hello SSLv3 ou TLS peut être +envoyé, selon la bibliothÚque SSL utilisée, et la compression peut être mise +en oeuvre. Vous pouvez vérifier si un client utilise la compression SSL en +journalisant la variable <code>%{SSL_COMPRESS_METHOD}x</code>. +</p> + + +<h3><a name="lockicon" id="lockicon">Lorsque j'utilise l'authentification de base sur HTTPS, +l'icÎne de verrouillage des navigateurs Netscape reste ouverte quand la boîte +de dialogue d'authentification apparaît. Cela signifie-t-il que les utilisateur +et mot de passe sont envoyés en clair ?</a></h3> +<p>Non, le couple utilisateur/mot de passe est transmis sous forme chiffrée. + L'icÎne de chiffrement dans les navigateurs Netscape n'est pas vraiment + synchronisé avec la couche SSL/TLS. Il ne passe à l'état verrouillé + qu'au moment où la premiÚre partie des données relatives à la page web + proprement dite sont transférées, ce qui peut prêter à confusion. Le + dispositif d'authentification de base appartient à la couche HTTP, qui + est située au dessus de la couche SSL/TLS dans HTTPS. Avant tout + transfert de données HTTP sous HTTPS, la couche SSL/TLS a déjà achevé + sa phase de négociation et basculé dans le mode de communication + chiffrée. Ne vous laissez donc pas abuser par l'état de cet icÎne.</p> + + +<h3><a name="msie" id="msie">Pourquoi des erreurs d'entrée/sortie apparaissent-elles +lorsqu'on se connecte via HTTPS à un serveur Apache+mod_ssl avec des +versions anciennes de +Microsoft Internet Explorer (MSIE) ?</a></h3> +<p>La premiÚre raison en est la présence dans l'implémentation SSL de +certaines versions de MSIE de bogues subtils en rapport avec le +dispositif de "maintien en vie" (keep-alive) HTTP, et les alertes de +notification de fermeture de session SSL en cas de coupure de la +connexion au point d'entrée (socket). De plus, l'interaction entre +SSL et les fonctionnalités HTTP/1.1 pose problÚme avec certaines +versions de MSIE. Vous pouvez contourner ces problÚmes en interdisant +à Apache l'utilisation de HTTP/1.1, les connexions avec maintien en vie +ou l'envoi de messages de notification de fermeture de session SSL aux +clients MSIE. Pour cela, vous pouvez utiliser la directive suivante +dans votre section d'hÎte virtuel avec support SSL :</p> + <pre class="prettyprint lang-config">SetEnvIf User-Agent "MSIE [2-5]" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0</pre> + + <p>En outre, certaines versions de MSIE ont des problÚmes avec des + algorithmes de chiffrement particuliers. Hélas, il n'est pas + possible d'apporter une solution spécifique à MSIE pour ces + problÚmes, car les algorithmes de chiffrement sont utilisés dÚs la + phase de négociation SSL. Ainsi, une directive + <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> spécifique + à MSIE ne peut être d'aucun secours. Par contre, vous devrez + ajuster les paramÚtres généraux de maniÚre drastique. Avant de + vous décider, soyez sûr que vos clients rencontrent vraiment des + problÚmes. Dans la négative, n'effectuez pas ces ajustements car + ils affecteront <em>tous</em> vos clients, ceux utilisant MSIE, + mais aussi les autres.</p> + + + +<h3><a name="srp" id="srp">Comment activer TLS-SRP ?</a></h3> + <p>Le protocole TLS-SRP (Echange de clés sécurisé par mot de passe + pour TLS comme spécifié dans la RFC 5054) peut compléter ou même + remplacer les certificats lors du processus d'authentification des + connexions SSL. Pour utiliser TLS-SRP, spécifiez un fichier de + vérification SRP OpenSSL via la directive <code class="directive"><a href="../mod/mod_ssl.html#sslsrpverifierfile">SSLSRPVerifierFile</a></code>. Vous pouvez créer + le fichier de vérification via l'utilitaire <code>openssl</code> :</p> + <div class="example"><p><code> + openssl srp -srpvfile passwd.srpv -add username + </code></p></div> + <p>Une fois ce fichier créé, vous devez le référencer dans la + configuration du serveur SSL :</p> + <div class="example"><p><code> + SSLSRPVerifierFile /path/to/passwd.srpv + </code></p></div> + <p>Pour forcer les clients à utiliser des algorithmes de chiffrement + basés sur TLS-SRP et s'affranchissant des certificats, utilisez la + directive suivante :</p> + <div class="example"><p><code> + SSLCipherSuite "!DSS:!aRSA:SRP" + </code></p></div> + + +<h3><a name="javadh" id="javadh">Pourquoi des erreurs de négociation apparaissent +avec les clients basés sur Java lorsqu'on utilise un certificat de plus +de 1024 bits ?</a></h3> + <p>Depuis la version 2.4.7, + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> utilise des paramÚtres DH qui comportent + des nombres premiers de plus de 1024 bits. Cependant, java 7 et ses versions + antérieures ne supportent que les nombres premiers DH d'une longueur + maximale de 1024 bits.</p> + + <p>Si votre client basé sur Java s'arrête avec une exception telle + que <code>java.lang.RuntimeException: Could not generate DH + keypair</code> et + <code>java.security.InvalidAlgorithmParameterException: Prime size + must be multiple of 64, and can only range from 512 to 1024 + (inclusive)</code>, et si httpd enregistre le message <code>tlsv1 + alert internal error (SSL alert number 80)</code> dans son journal + des erreurs (avec un <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> + <code>info</code> ou supérieur), vous pouvez soit réarranger la + liste d'algorithmes de mod_ssl via la directive <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> (éventuellement en + conjonction avec la directive <code class="directive"><a href="../mod/mod_ssl.html#sslhonorcipherorder">SSLHonorCipherOrder</a></code>), soit utiliser des + paramÚtres DH personnalisés avec un nombre + premier de 1024 bits, paramÚtres qui seront toujours prioritaires + par rapport à tout autre paramÚtre DH par défaut.</p> + + <p>Pour générer des paramÚtres DH personnalisés, utilisez la + commande <code>openssl dhparam 1024</code>. Vous pouvez aussi + utiliser les + paramÚtres DH standards issus de la <a href="http://www.ietf.org/rfc/rfc2409.txt">RFC 2409</a>, section 6.2 :</p> + <div class="example"><pre>-----BEGIN DH PARAMETERS----- +MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR +Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL +/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC +-----END DH PARAMETERS-----</pre></div> + <p>Ajoute les paramÚtres personnalisés incluant les lignes "BEGIN DH + PARAMETERS" et "END DH PARAMETERS" à la fin du premier fichier de + certificat défini via la directive <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatefile">SSLCertificateFile</a></code>.</p> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="support" id="support">Support de mod_ssl</a></h2> +<ul> +<li><a href="#resources">Quelles sont les sources d'informations +disponibles en cas de problÚme avec mod_ssl ?</a></li> +<li><a href="#contact">Qui peut-on contacter pour un support en cas de +problÚme avec mod_ssl ?</a></li> +<li><a href="#reportdetails">Quelles informations dois-je fournir lors +de l'écriture d'un rapport de bogue ?</a></li> +<li><a href="#coredumphelp">Un vidage mémoire s'est produit, +pouvez-vous m'aider ?</a></li> +<li><a href="#backtrace">Comment puis-je obtenir une journalisation de +ce qui s'est passé, pour m'aider à trouver la raison de ce vidage +mémoire ?</a></li> +</ul> + +<h3><a name="resources" id="resources">Quelles sont les sources d'informations +disponibles en cas de problÚme avec mod_ssl ?</a></h3> +<p>Voici les sources d'informations disponibles ; vous devez chercher +ici en cas de problÚme.</p> + + <dl> + <dt>Vous trouverez des réponses dans la Foire Aux Questions du + manuel utilisateur (ce document)</dt> + <dd><a href="http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html"> + http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html</a><br /> + Cherchez tout d'abord dans la foire aux questions + (ce document). Si votre question est courante, on a déjà dû y + répondre de nombreuses fois, et elle fait probablement partie + de ce document. + </dd> + </dl> + + +<h3><a name="contact" id="contact">Qui peut-on contacter pour un support en cas de +problÚme avec mod_ssl ?</a></h3> + <p>Voici toutes les possibilités de support pour mod_ssl, par ordre + de préférence. Merci d'utiliser ces possibilités + <em>dans cet ordre</em> - ne vous précipitez pas sur celle qui vous + paraît la plus alléchante. </p> + <ol> + <li><em>Envoyez un rapport de problÚme à la liste de diffusion de + support des utilisateurs d'Apache httpd</em><br /> + <a href="mailto:users@httpd.apache.org"> + users@httpd.apache.org</a><br /> + C'est la deuxiÚme maniÚre de soumettre votre rapport de + problÚme. Ici aussi, vous devez d'abord vous abonner à la + liste, mais vous pourrez ensuite discuter facilement de votre + problÚme avec l'ensemble de la communauté d'utilisateurs + d'Apache httpd. + </li> + + <li><em>Ecrire un rapport de problÚme dans la base de données des + bogues</em><br /> + <a href="http://httpd.apache.org/bug_report.html"> + http://httpd.apache.org/bug_report.html</a><br /> + C'est la derniÚre maniÚre de soumettre votre rapport de + problÚme. Vous ne devez utiliser cette solution que si vous + avez déjà écrit aux listes de diffusion, et n'avez pas trouvé + de solution. Merci de suivre les instructions de la page + mentionnée ci-dessus <em>avec soin</em>. + </li> + </ol> + + +<h3><a name="reportdetails" id="reportdetails">Quelles informations dois-je fournir lors +de l'écriture d'un rapport de bogue ?</a></h3> +<p>Vous devez toujours fournir au moins les informations +suivantes :</p> + + <dl> + <dt>Les versions d'Apache httpd et OpenSSL installées</dt> + <dd>La version d'Apache peut être déterminée en exécutant + <code>httpd -v</code>. La version d'OpenSSL peut être déterminée + en exécutant <code>openssl version</code>. Si Lynx est installé, + vous pouvez aussi exécuter la commande<code>lynx -mime_header + http://localhost/ | grep Server</code> et ainsi obtenir ces + informations en une seule fois. + </dd> + + <dt>Les détails de votre installation d'Apache httpd et OpenSSL</dt> + <dd>A cet effet, vous pouvez fournir un fichier journal de votre + session de terminal qui montre les étapes de la configuration et + de l'installation. En cas d'impossibilité, vous devez au moins + fournir la ligne de commande <code class="program"><a href="../programs/configure.html">configure</a></code> que + vous avez utilisée. + </dd> + + <dt>En cas de vidage mémoire, inclure une trace de ce qui s'est + passé</dt> + <dd>Si votre serveur Apache httpd fait un vidage de sa + mémoire, merci de fournir en piÚce jointe un fichier contenant + une trace de la zone dédiée à la pile (voir + <a href="#backtrace">ci-dessous</a> pour des informations sur la maniÚre + de l'obtenir). Il est nécessaire de disposer de ces informations + afin de pouvoir déterminer la raison de votre vidage mémoire. + </dd> + + <dt>Une description détaillée de votre problÚme</dt> + + <dd>Ne riez pas, nous sommes sérieux ! De nombreux rapports + n'incluent pas de description de la véritable nature du problÚme. + Sans ces informations, il est trÚs difficile pour quiconque de + vous aider. Donc, et c'est votre propre intérêt (vous souhaitez + que le problÚme soit résolu, n'est-ce pas ?), fournissez, s'il vous + plait, le maximum de détails possible. Bien entendu, vous devez + aussi inclure tout ce qui a été dit précédemment. + </dd> + </dl> + + +<h3><a name="coredumphelp" id="coredumphelp">Un vidage mémoire s'est produit, +pouvez-vous m'aider ?</a></h3> +<p>En général non, du moins tant que vous n'aurez pas fourni plus de +détails à propos de la localisation dans le code où Apache a effectué +son vidage mémoire. Ce dont nous avons en général besoin pour vous +aider est une trace de ce qui s'est passé (voir la question suivante). +Sans cette information, il est pratiquement impossible de déterminer +la nature du problÚme et de vous aider à le résoudre.</p> + + +<h3><a name="backtrace" id="backtrace">Comment puis-je obtenir une journalisation de +ce qui s'est passé, pour m'aider à trouver la raison de ce vidage +mémoire ?</a></h3> +<p>Vous trouverez ci-dessous les différentes étapes permettant +d'obtenir une journalisation des évÚnements (backtrace) :</p> + <ol> + <li>Assurez-vous que les symboles de débogage sont disponibles, au + moins pour Apache. Pour cela, sur les plates-formes où GCC/GDB est + utilisé, vous devez compiler Apache+mod_ssl avec l'option + ``<code>OPTIM="-g -ggdb3"</code>''. Sur les autres plates-formes, + l'option ``<code>OPTIM="-g"</code>'' est un minimum. + </li> + + <li>Démarrez le serveur et essayez de reproduire le vidage mémoire. + A cet effet, vous pouvez utiliser une directive du style + ``<code>CoreDumpDirectory /tmp</code>'' pour être sûr que le + fichier de vidage mémoire puisse bien être écrit. Vous devriez + obtenir un fichier <code>/tmp/core</code> ou + <code>/tmp/httpd.core</code>. Si ce n'est pas le cas, essayez de + lancer votre serveur sous un UID autre que root. + Pour des raisons de sécurité, de nombreux + noyaux modernes de permettent pas à un processus de vider sa + mémoire une fois qu'il a accompli un <code>setuid()</code> (à moins + qu'il effectue un <code>exec()</code>) car des informations d'un + niveau privilégié pourraient être transmises en mémoire. Si + nécessaire, vous pouvez exécuter <code>/chemin/vers/httpd -X</code> + manuellement afin de ne pas permettre à Apache de se clÎner (fork). + </li> + + <li>Analysez le vidage mémoire. Pour cela, exécutez + <code>gdb /path/to/httpd /tmp/httpd.core</code> ou une commande + similaire. Dans GDB, tout ce que vous avez à faire est d'entrer + <code>bt</code>, et voila, vous obtenez la backtrace. Pour les + débogueurs autres que GDB consulter le manuel correspondant. + </li> + </ol> + +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_faq.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_faq.html" title="Français"> fr </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />Autorisé sous <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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_howto.html b/docs/manual/ssl/ssl_howto.html new file mode 100644 index 0000000..5fbf4e4 --- /dev/null +++ b/docs/manual/ssl/ssl_howto.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ssl_howto.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: ssl_howto.html.fr.utf8 +Content-Language: fr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/ssl/ssl_howto.html.en b/docs/manual/ssl/ssl_howto.html.en new file mode 100644 index 0000000..6d5653a --- /dev/null +++ b/docs/manual/ssl/ssl_howto.html.en @@ -0,0 +1,449 @@ +<?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> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>SSL/TLS Strong Encryption: How-To - Apache HTTP Server Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p> +<p class="apache">Apache HTTP Server Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <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"> en </a> | +<a href="../fr/ssl/ssl_howto.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> +</div> + + +<p>This document is intended to get you started, and get a few things +working. You are strongly encouraged to read the rest of the SSL +documentation, and arrive at a deeper understanding of the material, +before progressing to the advanced techniques.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configexample">Basic Configuration Example</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ciphersuites">Cipher Suites and Enforcing Strong Security</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ocspstapling">OCSP Stapling</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#accesscontrol">Client Authentication and Access Control</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#logging">Logging</a></li> +</ul><h3>See also</h3><ul class="seealso"><li><a href="#comments_section">Comments</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="configexample" id="configexample">Basic Configuration Example</a></h2> + + +<p>Your SSL configuration will need to contain, at minimum, the +following directives.</p> + +<pre class="prettyprint lang-config">LoadModule ssl_module modules/mod_ssl.so + +Listen 443 +<VirtualHost *:443> + ServerName www.example.com + SSLEngine on + SSLCertificateFile "/path/to/www.example.com.cert" + SSLCertificateKeyFile "/path/to/www.example.com.key" +</VirtualHost></pre> + + +</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 Enforcing Strong Security</a></h2> + +<ul> +<li><a href="#onlystrong">How can I create an SSL server which accepts strong encryption only?</a></li> +<li><a href="#strongurl">How can I create an SSL server which accepts all types of ciphers in general, but +requires a strong cipher for access to a particular URL?</a></li> +</ul> + +<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 strongest ciphers:</p> + <pre class="prettyprint lang-config">SSLCipherSuite HIGH:!aNULL:!MD5</pre> + + + <p>While with the following configuration you specify a preference + for specific speed-optimized ciphers (which will be selected by + mod_ssl, provided that they are supported by the client):</p> + + <pre class="prettyprint lang-config">SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5 +SSLHonorCipherOrder on</pre> + + + +<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, a server-wide <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> which restricts + ciphers to the strong variants, isn't the answer here. However, + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> can be reconfigured within <code>Location</code> + blocks, to give a per-directory solution, and can automatically force + a renegotiation of the SSL parameters to meet the new configuration. + This can be done as follows:</p> + <pre class="prettyprint lang-config"># be liberal in general +SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL + +<Location "/strong/area"> +# but https://hostname/strong/area/ and below +# requires strong ciphers +SSLCipherSuite HIGH:!aNULL:!MD5 +</Location></pre> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="ocspstapling" id="ocspstapling">OCSP Stapling</a></h2> + + +<p>The Online Certificate Status Protocol (OCSP) is a mechanism for +determining whether or not a server certificate has been revoked, and OCSP +Stapling is a special form of this in which the server, such as httpd and +mod_ssl, maintains current OCSP responses for its certificates and sends +them to clients which communicate with the server. Most certificates +contain the address of an OCSP responder maintained by the issuing +Certificate Authority, and mod_ssl can communicate with that responder to +obtain a signed response that can be sent to clients communicating with +the server.</p> + +<p>Because the client can obtain the certificate revocation status from +the server, without requiring an extra connection from the client to the +Certificate Authority, OCSP Stapling is the preferred way for the +revocation status to be obtained. Other benefits of eliminating the +communication between clients and the Certificate Authority are that the +client browsing history is not exposed to the Certificate Authority and +obtaining status is more reliable by not depending on potentially heavily +loaded Certificate Authority servers.</p> + +<p>Because the response obtained by the server can be reused for all clients +using the same certificate during the time that the response is valid, the +overhead for the server is minimal.</p> + +<p>Once general SSL support has been configured properly, enabling OCSP +Stapling generally requires only very minor modifications to the httpd +configuration — the addition of these two directives:</p> + + <pre class="prettyprint lang-config">SSLUseStapling On +SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"</pre> + + +<p>These directives are placed at global scope (i.e., not within a virtual +host definition) wherever other global SSL configuration directives are +placed, such as in <code>conf/extra/httpd-ssl.conf</code> for normal +open source builds of httpd, <code>/etc/apache2/mods-enabled/ssl.conf</code> +for the Ubuntu or Debian-bundled httpd, etc.</p> + +<p>The path on the <code class="directive">SSLStaplingCache</code> directive +(e.g., <code>logs/</code>) should match the one on the +<code class="directive">SSLSessionCache</code> directive. This path is relative +to <code class="directive">ServerRoot</code>.</p> + +<p>This particular <code class="directive">SSLStaplingCache</code> directive requires +<code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code> (from the <code>shmcb</code> prefix on the +directive's argument). This module is usually enabled already for +<code class="directive">SSLSessionCache</code> or on behalf of some module other than +<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. If you enabled an SSL session cache using a +mechanism other than <code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code>, use that alternative +mechanism for <code class="directive">SSLStaplingCache</code> as well. For example:</p> + + <pre class="prettyprint lang-config">SSLSessionCache "dbm:logs/ssl_scache" +SSLStaplingCache "dbm:logs/ssl_stapling"</pre> + + +<p>You can use the openssl command-line program to verify that an OCSP response +is sent by your server:</p> + +<pre>$ openssl s_client -connect www.example.com:443 -status -servername www.example.com +... +OCSP response: +====================================== +OCSP Response Data: + OCSP Response Status: successful (0x0) + Response Type: Basic OCSP Response +... + Cert Status: Good +...</pre> + +<p>The following sections highlight the most common situations which require +further modification to the configuration. Refer also to the +<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> reference manual.</p> + +<h3>If more than a few SSL certificates are used for the server</h3> + +<p>OCSP responses are stored in the SSL stapling cache. While the responses +are typically a few hundred to a few thousand bytes in size, mod_ssl +supports OCSP responses up to around 10K bytes in size. With more than a +few certificates, the stapling cache size (32768 bytes in the example above) +may need to be increased. Error message AH01929 will be logged in case of +an error storing a response.</p> + + +<h3>If the certificate does not point to an OCSP responder, or if a +different address must be used</h3> + +<p>Refer to the +<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingforceurl">SSLStaplingForceURL</a></code> directive.</p> + +<p>You can confirm that a server certificate points to an OCSP responder +using the openssl command-line program, as follows:</p> + +<pre>$ openssl x509 -in ./www.example.com.crt -text | grep 'OCSP.*http' +OCSP - URI:http://ocsp.example.com</pre> + +<p>If the OCSP URI is provided and the web server can communicate to it +directly without using a proxy, no configuration is required. Note that +firewall rules that control outbound connections from the web server may +need to be adjusted.</p> + +<p>If no OCSP URI is provided, contact your Certificate Authority to +determine if one is available; if so, configure it with +<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingforceurl">SSLStaplingForceURL</a></code> in the virtual +host that uses the certificate.</p> + + +<h3>If multiple SSL-enabled virtual hosts are configured and OCSP +Stapling should be disabled for some</h3> + + +<p>Add <code>SSLUseStapling Off</code> to the virtual hosts for which OCSP +Stapling should be disabled.</p> + + +<h3>If the OCSP responder is slow or unreliable</h3> + +<p>Several directives are available to handle timeouts and errors. Refer +to the documentation for the +<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingfaketrylater">SSLStaplingFakeTryLater</a></code>, +<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingrespondertimeout">SSLStaplingResponderTimeout</a></code>, and +<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></code> +directives.</p> + + +<h3>If mod_ssl logs error AH02217</h3> + +<pre>AH02217: ssl_stapling_init_cert: Can't retrieve issuer certificate!</pre> +<p>In order to support OCSP Stapling when a particular server certificate is +used, the certificate chain for that certificate must be configured. If it +was not configured as part of enabling SSL, the AH02217 error will be issued +when stapling is enabled, and an OCSP response will not be provided for clients +using the certificate.</p> + +<p>Refer to the <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatechainfile">SSLCertificateChainFile</a></code> +and <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatefile">SSLCertificateFile</a></code> for instructions +for configuring the certificate chain.</p> + + +</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">How can I force clients to authenticate using certificates?</a></li> +<li><a href="#arbitraryclients">How can I force clients to authenticate using certificates for a + particular URL, but still allow arbitrary clients to access the rest of the server?</a></li> +<li><a href="#certauthenticate">How can I allow only clients who have certificates to access a + particular URL, but allow all clients to access the rest of the server?</a></li> +<li><a href="#intranet">How can I require HTTPS with strong ciphers, and either +basic authentication or client certificates, for access to part of the +Intranet website, for clients coming from the Internet?</a></li> +</ul> + +<h3><a name="allclients" id="allclients">How can I force clients to authenticate using certificates?</a></h3> + + + <p>When you know all of your users (eg, as is often the case on a corporate + Intranet), you can require plain certificate authentication. All you + need 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> + <pre class="prettyprint lang-config"># require a client certificate which has to be directly +# signed by our CA certificate in ca.crt +SSLVerifyClient require +SSLVerifyDepth 1 +SSLCACertificateFile "conf/ssl.crt/ca.crt"</pre> + + + +<h3><a name="arbitraryclients" id="arbitraryclients">How can I force clients to authenticate using certificates for a + particular URL, but still allow arbitrary clients to access the rest of the server?</a></h3> + + + <p>To force clients to authenticate using certificates for a particular URL, + you can use the per-directory reconfiguration features of + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>:</p> + + <pre class="prettyprint lang-config">SSLVerifyClient none +SSLCACertificateFile "conf/ssl.crt/ca.crt" + +<Location "/secure/area"> +SSLVerifyClient require +SSLVerifyDepth 1 +</Location></pre> + + + +<h3><a name="certauthenticate" id="certauthenticate">How can I allow only clients who have certificates to access a + particular URL, but allow all clients to access the rest of the server?</a></h3> + + + <p>The key to doing this is checking that part of the client certificate + matches what you expect. Usually this means checking all or part of the + Distinguished Name (DN), to see if it contains some known string. + There are two ways to do this, using either <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or + <code class="directive"><a href="../mod/mod_ssl.html#sslrequire">SSLRequire</a></code>.</p> + + <p>The <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> method is generally required when + the certificates are completely arbitrary, or when their DNs have + no common fields (usually the organisation, etc.). In this case, + you should establish a password database containing <em>all</em> + clients allowed, as follows:</p> + + <pre class="prettyprint lang-config">SSLVerifyClient none +SSLCACertificateFile "conf/ssl.crt/ca.crt" +SSLCACertificatePath "conf/ssl.crt" + +<Directory "/usr/local/apache2/htdocs/secure/area"> + SSLVerifyClient require + SSLVerifyDepth 5 + SSLOptions +FakeBasicAuth + SSLRequireSSL + AuthName "Snake Oil Authentication" + AuthType Basic + AuthBasicProvider file + AuthUserFile "/usr/local/apache2/conf/httpd.passwd" + Require valid-user +</Directory></pre> + + + <p>The password used in this example is the DES encrypted string "password". + See the <code class="directive"><a href="../mod/mod_ssl.html#ssloptions">SSLOptions</a></code> docs for more + information.</p> + + <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>When your clients are all part of a common hierarchy, which is encoded + into the DN, you can match them more easily using <code class="directive"><a href="../mod/mod_ssl.html#sslrequire">SSLRequire</a></code>, as follows:</p> + + + <pre class="prettyprint lang-config">SSLVerifyClient none +SSLCACertificateFile "conf/ssl.crt/ca.crt" +SSLCACertificatePath "conf/ssl.crt" + +<Directory "/usr/local/apache2/htdocs/secure/area"> + SSLVerifyClient require + SSLVerifyDepth 5 + SSLOptions +FakeBasicAuth + SSLRequireSSL + SSLRequire %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ + and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} +</Directory></pre> + + + +<h3><a name="intranet" id="intranet">How can I require HTTPS with strong ciphers, and either basic +authentication or client certificates, for access to part of the +Intranet website, for clients coming from the Internet? I still want to allow +plain HTTP access for clients on the Intranet.</a></h3> + + + <p>These examples presume that clients on the Intranet have IPs in the range + 192.168.1.0/24, and that the part of the Intranet website you want to allow + internet access to is <code>/usr/local/apache2/htdocs/subarea</code>. + This configuration should remain outside of your HTTPS virtual host, so + that it applies to both HTTPS and HTTP.</p> + + <pre class="prettyprint lang-config">SSLCACertificateFile "conf/ssl.crt/company-ca.crt" + +<Directory "/usr/local/apache2/htdocs"> + # Outside the subarea only Intranet access is granted + Require ip 192.168.1.0/24 +</Directory> + +<Directory "/usr/local/apache2/htdocs/subarea"> + # 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} >= 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 + Require ip 192.168.1.0/24 + + # HTTP Basic Authentication + AuthType basic + AuthName "Protected Intranet Area" + AuthBasicProvider file + AuthUserFile "conf/protected.passwd" + Require valid-user +</Directory></pre> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="logging" id="logging">Logging</a></h2> + + + <p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> can log extremely verbose debugging information + to the error log, when its <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> is + set to the higher trace levels. On the other hand, on a very busy server, + level <code>info</code> may already be too much. Remember that you can + configure the <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> per module to + suite your needs.</p> +</div></div> +<div class="bottomlang"> +<p><span>Available Languages: </span><a href="../en/ssl/ssl_howto.html" title="English"> en </a> | +<a href="../fr/ssl/ssl_howto.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_howto.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 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> +<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_howto.html.fr.utf8 b/docs/manual/ssl/ssl_howto.html.fr.utf8 new file mode 100644 index 0000000..bd6ee35 --- /dev/null +++ b/docs/manual/ssl/ssl_howto.html.fr.utf8 @@ -0,0 +1,489 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="fr" xml:lang="fr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Chiffrement fort SSL/TLS : Mode d'emploi - Serveur HTTP Apache Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> +<p class="apache">Serveur HTTP Apache Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>Chiffrement fort SSL/TLS : Mode d'emploi</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_howto.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_howto.html" title="Français"> fr </a></p> +</div> + + +<p>Ce document doit vous permettre de démarrer et de faire fonctionner +une configuration de base. Avant de vous lancer dans l'application de +techniques avancées, il est fortement recommandé de lire le reste +de la documentation SSL afin d'en comprendre le fonctionnement de +maniÚre plus approfondie.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configexample">Exemple de configuration basique</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ciphersuites">Suites de chiffrement et mise en application de la sécurité +de haut niveau</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ocspstapling">Agrafage OCSP</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#accesscontrol">Authentification du client et contrÎle d'accÚs</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</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="configexample" id="configexample">Exemple de configuration basique</a></h2> + + +<p>Votre configuration SSL doit comporter au moins les directives +suivantes :</p> + +<pre class="prettyprint lang-config">LoadModule ssl_module modules/mod_ssl.so + +Listen 443 +<VirtualHost *:443> + ServerName www.example.com + SSLEngine on + SSLCertificateFile "/path/to/www.example.com.cert" + SSLCertificateKeyFile "/path/to/www.example.com.key" +</VirtualHost></pre> + + +</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">Suites de chiffrement et mise en application de la sécurité +de haut niveau</a></h2> + +<ul> +<li><a href="#onlystrong">Comment créer un serveur SSL +qui n'accepte que le chiffrement fort ?</a></li> +<li><a href="#strongurl">Comment créer un serveur qui accepte tous les types de +chiffrement en général, mais exige un chiffrement fort pour pouvoir +accéder à une URL particuliÚre ?</a></li> +</ul> + + +<h3><a name="onlystrong" id="onlystrong">Comment créer un serveur SSL qui n'accepte +que le chiffrement fort ?</a></h3> + + <p>Les directives suivantes ne permettent que les + chiffrements de plus haut niveau :</p> + <pre class="prettyprint lang-config">SSLCipherSuite HIGH:!aNULL:!MD5</pre> + + + <p>Avec la configuration qui suit, vous indiquez une préférence pour + des algorityhmes de chiffrement spécifiques optimisés en matiÚre de + rapidité (le choix final sera opéré par mod_ssl, dans la mesure ou le + client les supporte) :</p> + + <pre class="prettyprint lang-config">SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5 +SSLHonorCipherOrder on</pre> + + + +<h3><a name="strongurl" id="strongurl">Comment créer un serveur qui accepte tous les types de +chiffrement en général, mais exige un chiffrement fort pour pouvoir +accéder à une URL particuliÚre ?</a></h3> + + <p>Dans ce cas bien évidemment, une directive <code class="directive"><a href="../mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> au niveau du serveur principal + qui restreint le choix des suites de chiffrement aux versions les plus + fortes ne conviendra pas. <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> peut cependant être + reconfiguré au sein de blocs <code>Location</code> qui permettent + d'adapter la configuration générale à un répertoire spécifique ; + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> peut alors forcer automatiquement une + renégociation des paramÚtres SSL pour parvenir au but recherché. + Cette configuration peut se présenter comme suit :</p> + <pre class="prettyprint lang-config"># soyons trÚs tolérant a priori +SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL + +<Location "/strong/area"> +# sauf pour https://hostname/strong/area/ et ses sous-répertoires +# qui exigent des chiffrements forts +SSLCipherSuite HIGH:!aNULL:!MD5 +</Location></pre> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="ocspstapling" id="ocspstapling">Agrafage OCSP</a></h2> + + +<p>Le protocole de contrÎle du statut des certificats en ligne (Online +Certificate Status Protocol - OCSP) est un mécanisme permettant de +déterminer si un certificat a été révoqué ou non, et l'agrafage OCSP en +est une fonctionnalité particuliÚre par laquelle le serveur, par exemple +httpd et mod_ssl, maintient une liste des réponses OCSP actuelles pour +ses certificats et l'envoie aux clients qui communiquent avec lui. La +plupart des certificats contiennent l'adresse d'un répondeur OCSP maintenu +par l'Autorité de Certification (CA) spécifiée, et mod_ssl peut requérir +ce répondeur pour obtenir une réponse signée qui peut être envoyée aux +clients qui communiquent avec le serveur.</p> + +<p>L'agrafage OCSP est la méthode la plus performante pour obtenir le +statut d'un certificat car il est disponible au niveau du serveur, et le +client n'a donc pas besoin d'ouvrir une nouvelle connexion vers +l'autorité de certification. Autres avantages de l'absence de +communication entre le client et l'autorité de certification : +l'autorité de certification n'a pas accÚs à l'historique de navigation +du client, et l'obtention du statut du certificat est plus efficace car +elle n'est plus assujettie à une surcharge éventuelle des serveurs de +l'autorité de certification.</p> + +<p>La charge du serveur est moindre car la réponse qu'il a obtenu du +répondeur OCSP peut être réutilisée par tous les clients qui utilisent +le même certificat dans la limite du temps de validité de la réponse.</p> + +<p>Une fois le support général SSL correctement configuré, l'activation +de l'agrafage OCSP ne requiert que des modifications mineures +à la configuration de httpd et il suffit en général de l'ajout de ces +deux directives :</p> + + <pre class="prettyprint lang-config">SSLUseStapling On +SSLStaplingCache "shmcb:ssl_stapling(32768)"</pre> + + +<p>Ces directives sont placées de façon à ce qu'elles aient une portée +globale (et particuliÚrement en dehors de toute section VirtualHost), le +plus souvent où sont placées les autres directives de configuration +globales SSL, comme <code>conf/extra/httpd-ssl.conf</code> pour les +installations de httpd à partir des sources, ou +<code>/etc/apache2/mods-enabled/ssl.conf</code> pour Ubuntu ou Debian, +etc...</p> + +<p>Le chemin spécifié par la directive +<code class="directive">SSLStaplingCache</code> (par exemple <code>logs/</code>) +doit être le même que celui spécifié par la directive +<code class="directive">SSLSessionCache</code>. Ce chemin est relatif au chemin +spécifié par la directive <code class="directive">ServerRoot</code>.</p> + +<p>Cette directive <code class="directive">SSLStaplingCache</code> particuliÚre +nécessite le chargement du module <code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code> (à +cause du préfixe <code>shmcb</code> de son argument). Ce module est en +général déjà activé pour la directive +<code class="directive">SSLSessionCache</code>, ou pour des modules autres que +<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. Si vous activez un cache de session SSL +utilisant un mécanisme autre que <code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code>, +utilisez aussi ce mécanisme alternatif pour la directive +<code class="directive">SSLStaplingCache</code>. Par exemple :</p> + + <pre class="prettyprint lang-config">SSLSessionCache "dbm:ssl_scache" +SSLStaplingCache "dbm:ssl_stapling"</pre> + + +<p>Vous pouvez utiliser la commande openssl pour vérifier que votre +serveur envoie bien une réponse OCSP :</p> + +<pre>$ openssl s_client -connect www.example.com:443 -status -servername www.example.com +... +OCSP response: +====================================== +OCSP Response Data: + OCSP Response Status: successful (0x0) + Response Type: Basic OCSP Response +... + Cert Status: Good +...</pre> + +<p>Les sections suivantes explicitent les situations courantes qui +requiÚrent des modifications supplémentaires de la configuration. Vous +pouvez aussi vous référer au manuel de référence de +<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>.</p> + +<h3>Si l'on utilise plus que quelques certificats SSL pour le serveur</h3> + +<p>Les réponses OCSP sont stockées dans le cache d'agrafage SSL. Alors +que les réponses ont une taille de quelques centaines à quelques +milliers d'octets, mod_ssl supporte des réponses d'une taille jusqu'à +environ 10 ko. Dans notre cas, le nombre de certificats est conséquent +et la taille du cache (32768 octets dans l'exemple ci-dessus) doit être +augmentée. En cas d'erreur lors du stockage d'une réponse, le +message AH01929 sera enregistré dans le journal.</p> + + +<h3>Si le certificat ne spécifie pas de répondeur OCSP, ou si une +adresse différente doit être utilisée</h3> + +<p>Veuillez vous référer à la documentation de la directive <code class="directive"><a href="../mod/mod_ssl.html#sslstaplingforceurl">SSLStaplingForceURL</a></code>.</p> + +<p>Vous pouvez vérifier si un certificat spécifie un répondeur OCSP en +utilisant la commande openssl comme suit :</p> + +<pre>$ openssl x509 -in ./www.example.com.crt -text | grep 'OCSP.*http' +OCSP - URI:http://ocsp.example.com</pre> + +<p>Si un URI OCSP est fourni et si le serveur web peut communiquer +directement avec lui sans passer par un mandataire, aucune modification +supplémentaire de la configuration n'est requise. Notez que les rÚgles +du pare-feu qui contrÎlent les connexions sortantes en provenance du +serveur web devront peut-être subir quelques ajustements.</p> + +<p>Si aucun URI OCSP n'est fourni, contactez votre autorité de +certification pour savoir s'il en existe une ; si c'est le +cas, utilisez la directive <code class="directive"><a href="../mod/mod_ssl.html#sslstaplingforceurl">SSLStaplingForceURL</a></code> pour la spécifier dans +la configuration du serveur virtuel qui utilise le certificat.</p> + + +<h3>Si plusieurs serveurs virtuels sont configurés pour utiliser SSL +et si l'agrafage OCSP doit être désactivé pour certains d'entre eux</h3> + + +<p>Ajoutez la directive <code>SSLUseStapling Off</code> à la +configuration des serveurs virtuels pour lesquels l'agrafage OCSP doit +être désactivé.</p> + + +<h3>Si le répondeur OCSP est lent ou instable</h3> + +<p>De nombreuses directives permettent de gérer les temps de réponse et +les erreurs. Référez-vous à la documentation de <code class="directive"><a href="../mod/mod_ssl.html#sslstaplingfaketrylater">SSLStaplingFakeTryLater</a></code>, <code class="directive"><a href="../mod/mod_ssl.html#sslstaplingrespondertimeout">SSLStaplingResponderTimeout</a></code>, et <code class="directive"><a href="../mod/mod_ssl.html#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></code>.</p> + + +<h3>Si mod_ssl enregistre l'erreur AH02217 dans le journal</h3> + +<pre>AH02217: ssl_stapling_init_cert: Can't retrieve issuer certificate!</pre> +<p>Afin de pouvoir supporter l'agrafage OCSP lorsqu'un certificat de +serveur particulier est utilisé, une chaîne de certification pour ce +certificat doit être spécifiée. Si cela n'a pas été fait lors de +l'activation de SSL, l'erreur AH02217 sera enregistrée lorsque +l'agrafage OCSP sera activé, et les clients qui utilisent le certificat +considéré ne recevront pas de réponse OCSP.</p> + +<p>Veuillez vous référer à la documentation des directives <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatechainfile">SSLCertificateChainFile</a></code> et <code class="directive"><a href="../mod/mod_ssl.html#sslcertificatefile">SSLCertificateFile</a></code> pour spécifier une +chaîne de certification.</p> + + +</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">Authentification du client et contrÎle d'accÚs</a></h2> + +<ul> +<li><a href="#allclients">Comment forcer les clients +à s'authentifier à l'aide de certificats ?</a></li> +<li><a href="#arbitraryclients">Comment forcer les clients +à s'authentifier à l'aide de certificats pour une URL particuliÚre, +mais autoriser quand-même tout client anonyme +à accéder au reste du serveur ?</a></li> +<li><a href="#certauthenticate">Comment n'autoriser l'accÚs à une URL +particuliÚre qu'aux clients qui possÚdent des certificats, mais autoriser +l'accÚs au reste du serveur à tous les clients ?</a></li> +<li><a href="#intranet">Comment imposer HTTPS avec chiffrements forts, +et soit authentification de base, soit possession de certificats clients, +pour l'accÚs à une partie de l'Intranet, pour les clients en +provenance de l'Internet ?</a></li> +</ul> + +<h3><a name="allclients" id="allclients">Comment forcer les clients +à s'authentifier à l'aide de certificats ? +</a></h3> + + + <p>Lorsque vous connaissez tous vos clients (comme c'est en général le cas + au sein d'un intranet d'entreprise), vous pouvez imposer une + authentification basée uniquement sur les certificats. Tout ce dont vous + avez besoin pour y parvenir est de créer des certificats clients signés par + le certificat de votre propre autorité de certification + (<code>ca.crt</code>), et d'authentifier les clients à l'aide de ces + certificats.</p> + <pre class="prettyprint lang-config"># exige un certificat client signé par le certificat de votre CA +# contenu dans ca.crt +SSLVerifyClient require +SSLVerifyDepth 1 +SSLCACertificateFile "conf/ssl.crt/ca.crt"</pre> + + + +<h3><a name="arbitraryclients" id="arbitraryclients">Comment forcer les clients +à s'authentifier à l'aide de certificats pour une URL particuliÚre, +mais autoriser quand-même tout client anonyme +à accéder au reste du serveur ?</a></h3> + + +<p>Pour forcer les clients à s'authentifier à l'aide de certificats pour une +URL particuliÚre, vous pouvez utiliser les fonctionnalités de reconfiguration +de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en fonction du répertoire :</p> + + <pre class="prettyprint lang-config">SSLVerifyClient none +SSLCACertificateFile "conf/ssl.crt/ca.crt" + +<Location "/secure/area"> +SSLVerifyClient require +SSLVerifyDepth 1 +</Location></pre> + + + +<h3><a name="certauthenticate" id="certauthenticate">Comment n'autoriser l'accÚs à une URL +particuliÚre qu'aux clients qui possÚdent des certificats, mais autoriser +l'accÚs au reste du serveur à tous les clients ?</a></h3> + + + <p>La clé du problÚme consiste à vérifier si une partie du certificat + client correspond à ce que vous attendez. Cela signifie en général + consulter tout ou partie du nom distinctif (DN), afin de vérifier s'il + contient une chaîne connue. Il existe deux méthodes pour y parvenir ; + on utilise soit le module <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, soit la + directive <code class="directive"><a href="../mod/mod_ssl.html#sslrequire">SSLRequire</a></code>.</p> + + <p>La méthode du module <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> est en général + incontournable lorsque les certificats ont un contenu arbitraire, ou + lorsque leur DN ne contient aucun champ connu + (comme l'organisation, etc...). Dans ce cas, vous devez construire une base + de données de mots de passe contenant <em>tous</em> les clients + autorisés, comme suit :</p> + + <pre class="prettyprint lang-config">SSLVerifyClient none +SSLCACertificateFile "conf/ssl.crt/ca.crt" +SSLCACertificatePath "conf/ssl.crt" + +<Directory "/usr/local/apache2/htdocs/secure/area"> +SSLVerifyClient require + SSLVerifyDepth 5 + SSLOptions +FakeBasicAuth + SSLRequireSSL + AuthName "Snake Oil Authentication" + AuthType Basic + AuthBasicProvider file + AuthUserFile "/usr/local/apache2/conf/httpd.passwd" + Require valid-user +</Directory></pre> + + + + <p>Le mot de passe utilisé dans cet exemple correspond à la chaîne de + caractÚres "password" chiffrée en DES. Voir la documentation de la + directive <code class="directive"><a href="../mod/mod_ssl.html#ssloptions">SSLOptions</a></code> pour + plus de détails.</p> + + <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>Lorsque vos clients font tous partie d'une même hiérarchie, ce qui + apparaît dans le DN, vous pouvez les authentifier plus facilement en + utilisant la directive <code class="directive"><a href="../mod/mod_ssl.html#sslrequire">SSLRequire</a></code>, comme suit :</p> + + + <pre class="prettyprint lang-config">SSLVerifyClient none +SSLCACertificateFile "conf/ssl.crt/ca.crt" +SSLCACertificatePath "conf/ssl.crt" + +<Directory "/usr/local/apache2/htdocs/secure/area"> + SSLVerifyClient require + SSLVerifyDepth 5 + SSLOptions +FakeBasicAuth + SSLRequireSSL + SSLRequire %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ + and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} +</Directory></pre> + + + +<h3><a name="intranet" id="intranet">Comment imposer HTTPS avec chiffrements forts, +et soit authentification de base, soit possession de certificats clients, +pour l'accÚs à une partie de l'Intranet, pour les clients en +provenance de l'Internet ? Je souhaite quand-même autoriser l'accÚs en HTTP +aux clients de l'intranet.</a></h3> + + + <p>On suppose dans ces exemples que les clients de l'intranet ont des + adresses IP dans la gamme 192.168.1.0/24, et que la partie de l'intranet + à laquelle vous voulez autoriser l'accÚs depuis l'Internet est + <code>/usr/local/apache2/htdocs/subarea</code>. Ces lignes de configuration + doivent se trouver en dehors de votre hÎte virtuel HTTPS, afin qu'elles + s'appliquent à la fois à HTTP et HTTPS.</p> + + <pre class="prettyprint lang-config">SSLCACertificateFile "conf/ssl.crt/company-ca.crt" + +<Directory "/usr/local/apache2/htdocs"> +# En dehors de subarea, seul l'accÚs depuis l'intranet est +# autorisé + Require ip 192.168.1.0/24 +</Directory> + +<Directory "/usr/local/apache2/htdocs/subarea"> +# Dans subarea, tout accÚs depuis l'intranet est autorisé +# mais depuis l'Internet, seul l'accÚs par HTTPS + chiffrement fort + Mot de passe +# ou HTTPS + chiffrement fort + certificat client n'est autorisé. + +# Si HTTPS est utilisé, on s'assure que le niveau de chiffrement est fort. +# Autorise en plus les certificats clients comme une alternative à +# l'authentification basique. + SSLVerifyClient optional + SSLVerifyDepth 1 + SSLOptions +FakeBasicAuth +StrictRequire + SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 + + # ON oblige les clients venant d'Internet à utiliser HTTPS + RewriteEngine on + RewriteCond "%{REMOTE_ADDR}" "!^192\.168\.1\.[0-9]+$" + RewriteCond "%{HTTPS}" "!=on" + RewriteRule "." "-" [F] + + # On permet l'accÚs soit sur les critÚres réseaux, soit par authentification Basique + Satisfy any + + # ContrÎle d'accÚs réseau + Require ip 192.168.1.0/24 + + # Configuration de l'authentification HTTP Basique + AuthType basic + AuthName "Protected Intranet Area" + AuthBasicProvider file + AuthUserFile "conf/protected.passwd" + Require valid-user +</Directory></pre> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="logging" id="logging">Journalisation</a></h2> + + + <p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> peut enregistrer des informations de + débogage trÚs verbeuses dans le journal des erreurs, lorsque sa + directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> est définie + à des niveaux de trace élevés. Par contre, sur un serveur trÚs + sollicité, le niveau <code>info</code> sera probablement déjà trop + élevé. Souvenez-vous que vous pouvez configurer la directive + <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> par module afin de + pourvoir à vos besoins.</p> +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_howto.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_howto.html" title="Français"> fr </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_howto.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />Autorisé sous <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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_intro.html b/docs/manual/ssl/ssl_intro.html new file mode 100644 index 0000000..6c80387 --- /dev/null +++ b/docs/manual/ssl/ssl_intro.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ssl_intro.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: ssl_intro.html.fr.utf8 +Content-Language: fr +Content-type: text/html; charset=UTF-8 + +URI: ssl_intro.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/ssl/ssl_intro.html.en b/docs/manual/ssl/ssl_intro.html.en new file mode 100644 index 0000000..a8c5d0b --- /dev/null +++ b/docs/manual/ssl/ssl_intro.html.en @@ -0,0 +1,672 @@ +<?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> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>SSL/TLS Strong Encryption: An Introduction - Apache HTTP Server Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p> +<p class="apache">Apache HTTP Server Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>SSL/TLS Strong Encryption: An Introduction</h1> +<div class="toplang"> +<p><span>Available Languages: </span><a href="../en/ssl/ssl_intro.html" title="English"> en </a> | +<a href="../fr/ssl/ssl_intro.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/ssl_intro.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> +</div> + + +<p>As an introduction this chapter is aimed at readers who are familiar +with the Web, HTTP, and Apache, but are not security experts. It is not +intended to be a definitive guide to the SSL protocol, nor does it discuss +specific techniques for managing certificates in an organization, or the +important legal issues of patents and import and export restrictions. +Rather, it is intended to provide a common background to <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> users by pulling together various concepts, definitions, +and examples as a starting point for further exploration.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#cryptographictech">Cryptographic Techniques</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#certificates">Certificates</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ssl">Secure Sockets Layer (SSL)</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#references">References</a></li> +</ul><h3>See also</h3><ul class="seealso"><li><a href="#comments_section">Comments</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="cryptographictech" id="cryptographictech">Cryptographic Techniques</a></h2> + +<p>Understanding SSL requires an understanding of cryptographic +algorithms, message digest functions (aka. one-way or hash functions), and +digital signatures. These techniques are the subject of entire books (see +for instance [<a href="#AC96">AC96</a>]) and provide the basis for privacy, +integrity, and authentication.</p> + +<h3><a name="cryptographicalgo" id="cryptographicalgo">Cryptographic Algorithms</a></h3> + + <p>Suppose Alice wants to send a message to her bank to transfer some + money. Alice would like the message to be private, since it will + include information such as her account number and transfer amount. One + solution is to use a cryptographic algorithm, a technique that would + transform her message into an encrypted form, unreadable until it is + decrypted. Once in this form, the message can only be + decrypted by using a secret key. Without the key the message is useless: + good cryptographic algorithms make it so difficult + for intruders to decode the original text that it isn't worth their + effort.</p> + + <p>There are two categories of cryptographic algorithms: conventional + and public key.</p> + + <dl> + <dt>Conventional cryptography</dt> + <dd>also known as symmetric cryptography, requires the sender and + receiver to share a key: a secret piece of information that may be + used to encrypt or decrypt a message. As long as this key is kept + secret, nobody other than the sender or recipient can read the message. + If Alice and the bank know a secret key, then they can send each other + private messages. The task of sharing a key between sender and recipient + before communicating, while also keeping it secret from others, can be + problematic.</dd> + + <dt>Public key cryptography</dt> + <dd>also known as asymmetric cryptography, solves the key exchange + problem by defining an algorithm which uses two keys, each of which + may be used to encrypt a message. If one key is used to encrypt a + message then the other must be used to decrypt it. This makes it + possible to receive secure messages by simply publishing one key + (the public key) and keeping the other secret (the private key).</dd> + </dl> + + <p>Anyone can encrypt a message using the public key, but only the + owner of the private key will be able to read it. In this way, Alice + can send private messages to the owner of a key-pair (the bank), by + encrypting them using their public key. Only the bank will be able to + decrypt them.</p> + + +<h3><a name="messagedigests" id="messagedigests">Message Digests</a></h3> + + <p>Although Alice may encrypt her message to make it private, there + is still a concern that someone might modify her original message or + substitute it with a different one, in order to transfer the money + to themselves, for instance. One way of guaranteeing the integrity + of Alice's message is for her to create a concise summary of her + message and send this to the bank as well. Upon receipt of the message, + the bank creates its own summary and compares it with the one Alice + sent. If the summaries are the same then the message has been received + intact.</p> + + <p>A summary such as this is called a <dfn>message digest</dfn>, <em>one-way + function</em> or <em>hash function</em>. Message digests are used to create + a short, fixed-length representation of a longer, variable-length message. + Digest algorithms are designed to produce a unique digest for each + message. Message digests are designed to make it impractically difficult + to determine the message from the digest and (in theory) impossible to + find two different messages which create the same digest -- thus + eliminating the possibility of substituting one message for another while + maintaining the same digest.</p> + + <p>Another challenge that Alice faces is finding a way to send the digest + to the bank securely; if the digest is not sent securely, its integrity may + be compromised and with it the possibility for the bank to determine the + integrity of the original message. Only if the digest is sent securely can + the integrity of the associated message be determined.</p> + + <p>One way to send the digest securely is to include it in a digital + signature.</p> + + +<h3><a name="digitalsignatures" id="digitalsignatures">Digital Signatures</a></h3> +<p>When Alice sends a message to the bank, the bank needs to ensure that the +message is really from her, so an intruder cannot request a transaction +involving her account. A <em>digital signature</em>, created by Alice and +included with the message, serves this purpose.</p> + +<p>Digital signatures are created by encrypting a digest of the message and +other information (such as a sequence number) with the sender's private key. +Though anyone can <em>decrypt</em> the signature using the public key, only the +sender knows the private key. This means that only the sender can have signed +the message. Including the digest in the signature means the signature is only +good for that message; it also ensures the integrity of the message since no one +can change the digest and still sign it.</p> +<p>To guard against interception and reuse of the signature by an intruder at a +later date, the signature contains a unique sequence number. This protects +the bank from a fraudulent claim from Alice that she did not send the message +-- only she could have signed it (non-repudiation).</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="certificates" id="certificates">Certificates</a></h2> + +<p>Although Alice could have sent a private message to the bank, signed +it and ensured the integrity of the message, she still needs to be sure +that she is really communicating with the bank. This means that she needs +to be sure that the public key she is using is part of the bank's key-pair, +and not an intruder's. Similarly, the bank needs to verify that the message +signature really was signed by the private key that belongs to Alice.</p> + +<p>If each party has a certificate which validates the other's identity, +confirms the public key and is signed by a trusted agency, then both +can be assured that they are communicating with whom they think they are. +Such a trusted agency is called a <em>Certificate Authority</em> and +certificates are used for authentication.</p> + +<h3><a name="certificatecontents" id="certificatecontents">Certificate Contents</a></h3> + + <p>A certificate associates a public key with the real identity of + an individual, server, or other entity, known as the subject. As + shown in <a href="#table1">Table 1</a>, information about the subject + includes identifying information (the distinguished name) and the + public key. It also includes the identification and signature of the + Certificate Authority that issued the certificate and the period of + time during which the certificate is valid. It may have additional + information (or extensions) as well as administrative information + for the Certificate Authority's use, such as a serial number.</p> + + <h4><a name="table1" id="table1">Table 1: Certificate Information</a></h4> + + <table> + + <tr><th>Subject</th> + <td>Distinguished Name, Public Key</td></tr> + <tr><th>Issuer</th> + <td>Distinguished Name, Signature</td></tr> + <tr><th>Period of Validity</th> + <td>Not Before Date, Not After Date</td></tr> + <tr><th>Administrative Information</th> + <td>Version, Serial Number</td></tr> + <tr><th>Extended Information</th> + <td>Basic Constraints, Netscape Flags, etc.</td></tr> + </table> + + + <p>A distinguished name is used to provide an identity in a specific + context -- for instance, an individual might have a personal + certificate as well as one for their identity as an employee. + Distinguished names are defined by the X.509 standard [<a href="#X509">X509</a>], which defines the fields, field names and + abbreviations used to refer to the fields (see <a href="#table2">Table + 2</a>).</p> + + <h4><a name="table2" id="table2">Table 2: Distinguished Name Information</a></h4> + + <table class="bordered"> + + <tr><th>DN Field</th> + <th>Abbrev.</th> + <th>Description</th> + <th>Example</th></tr> + <tr><td>Common Name</td> + <td>CN</td> + <td>Name being certified</td> + <td>CN=Joe Average</td></tr> + <tr><td>Organization or Company</td> + <td>O</td> + <td>Name is associated with this<br />organization</td> + <td>O=Snake Oil, Ltd.</td></tr> + <tr><td>Organizational Unit</td> + <td>OU</td> + <td>Name is associated with this <br />organization unit, such + as a department</td> + <td>OU=Research Institute</td></tr> + <tr><td>City/Locality</td> + <td>L</td> + <td>Name is located in this City</td> + <td>L=Snake City</td></tr> + <tr><td>State/Province</td> + <td>ST</td> + <td>Name is located in this State/Province</td> + <td>ST=Desert</td></tr> + <tr><td>Country</td> + <td>C</td> + <td>Name is located in this Country (ISO code)</td> + <td>C=XZ</td></tr> + </table> + + + <p>A Certificate Authority may define a policy specifying which + distinguished field names are optional and which are required. It + may also place requirements upon the field contents, as may users of + certificates. For example, a Netscape browser requires that the + Common Name for a certificate representing a server matches a wildcard + pattern for the domain name of that server, such + as <code>*.snakeoil.com</code>.</p> + + <p>The binary format of a certificate is defined using the ASN.1 + notation [<a href="#ASN1">ASN1</a>] [<a href="#PKCS">PKCS</a>]. This + notation defines how to specify the contents and encoding rules + define how this information is translated into binary form. The binary + encoding of the certificate is defined using Distinguished Encoding + Rules (DER), which are based on the more general Basic Encoding Rules + (BER). For those transmissions which cannot handle binary, the binary + form may be translated into an ASCII form by using Base64 encoding + [<a href="#MIME">MIME</a>]. When placed between begin and end delimiter + lines (as below), this encoded version is called a PEM ("Privacy Enhanced + Mail") encoded certificate.</p> + + <div class="example"><h3>Example of a PEM-encoded certificate (snakeoil.crt)</h3><pre>-----BEGIN CERTIFICATE----- +MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx +FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG +A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv +cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz +bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL +MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h +a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl +cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN +AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB +gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b +vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa +lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV +HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB +gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt +2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7 +dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ== +-----END CERTIFICATE-----</pre></div> + + +<h3><a name="certificateauthorities" id="certificateauthorities">Certificate Authorities</a></h3> + + <p>By verifying the information in a certificate request + before granting the certificate, the Certificate Authority assures + itself of the identity of the private key owner of a key-pair. + For instance, if Alice requests a personal certificate, the + Certificate Authority must first make sure that Alice really is the + person the certificate request claims she is.</p> + + <h4><a name="certificatechains" id="certificatechains">Certificate Chains</a></h4> + + <p>A Certificate Authority may also issue a certificate for + another Certificate Authority. When examining a certificate, + Alice may need to examine the certificate of the issuer, for each + parent Certificate Authority, until reaching one which she has + confidence in. She may decide to trust only certificates with a + limited chain of issuers, to reduce her risk of a "bad" certificate + in the chain.</p> + + + <h4><a name="rootlevelca" id="rootlevelca">Creating a Root-Level CA</a></h4> + + <p>As noted earlier, each certificate requires an issuer to assert + the validity of the identity of the certificate subject, up to + the top-level Certificate Authority (CA). This presents a problem: + who can vouch for the certificate of the top-level + authority, which has no issuer? In this unique case, the + certificate is "self-signed", so the issuer of the certificate is + the same as the subject. Browsers are preconfigured to trust well-known + certificate authorities, but it is important to exercise extra care in + trusting a self-signed certificate. The wide publication of a + public key by the root authority reduces the risk in trusting this + key -- it would be obvious if someone else publicized a key + claiming to be the authority.</p> + + <p>A number of companies, such as <a href="http://www.thawte.com/">Thawte</a> and <a href="http://www.verisign.com/">VeriSign</a> + have established themselves as Certificate Authorities. These + companies provide the following services:</p> + + <ul> + <li>Verifying certificate requests</li> + <li>Processing certificate requests</li> + <li>Issuing and managing certificates</li> + </ul> + + <p>It is also possible to create your own Certificate Authority. + Although risky in the Internet environment, it may be useful + within an Intranet where the organization can easily verify the + identities of individuals and servers.</p> + + + <h4><a name="certificatemanagement" id="certificatemanagement">Certificate Management</a></h4> + + <p>Establishing a Certificate Authority is a responsibility which + requires a solid administrative, technical and management + framework. Certificate Authorities not only issue certificates, + they also manage them -- that is, they determine for how long + certificates remain valid, they renew them and keep lists of + certificates that were issued in the past but are no longer valid + (Certificate Revocation Lists, or CRLs).</p> + + <p>For example, if Alice is entitled to a certificate as an + employee of a company but has now left + that company, her certificate may need to be revoked. + Because certificates are only issued after the subject's identity has + been verified and can then be passed around to all those with whom + the subject may communicate, it is impossible to tell from the + certificate alone that it has been revoked. + Therefore when examining certificates for validity + it is necessary to contact the issuing Certificate Authority to + check CRLs -- this is usually not an automated part of the process.</p> + + <div class="note"><h3>Note</h3> + <p>If you use a Certificate Authority that browsers are not configured + to trust by default, it is necessary to load the Certificate + Authority certificate into the browser, enabling the browser to + validate server certificates signed by that Certificate Authority. + Doing so may be dangerous, since once loaded, the browser will + accept all certificates signed by that Certificate Authority.</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="ssl" id="ssl">Secure Sockets Layer (SSL)</a></h2> + +<p>The Secure Sockets Layer protocol is a protocol layer which may be +placed between a reliable connection-oriented network layer protocol +(e.g. TCP/IP) and the application protocol layer (e.g. HTTP). SSL provides +for secure communication between client and server by allowing mutual +authentication, the use of digital signatures for integrity and encryption +for privacy.</p> + +<p>The protocol is designed to support a range of choices for specific +algorithms used for cryptography, digests and signatures. This allows +algorithm selection for specific servers to be made based on legal, export +or other concerns and also enables the protocol to take advantage of new +algorithms. Choices are negotiated between client and server when +establishing a protocol session.</p> + +<h3><a name="table4" id="table4">Table 4: Versions of the SSL protocol</a></h3> + + <table class="bordered"> + + <tr><th>Version</th> + <th>Source</th> + <th>Description</th> + </tr> + <tr><td>SSL v2.0</td> + <td>Vendor Standard (from Netscape Corp.)</td> + <td>First SSL protocol for which implementations exist</td> + </tr> + <tr><td>SSL v3.0</td> + <td>Expired Internet Draft (from Netscape Corp.) [<a href="#SSL3">SSL3</a>]</td> + <td>Revisions to prevent specific security attacks, add non-RSA + ciphers and support for certificate chains</td> + </tr> + <tr><td>TLS v1.0</td> + <td>Proposed Internet Standard (from IETF) [<a href="#TLS1">TLS1</a>]</td> + <td>Revision of SSL 3.0 to update the MAC layer to HMAC, add block + padding for block ciphers, message order standardization and more + alert messages.</td> + </tr> + <tr><td>TLS v1.1</td> + <td>Proposed Internet Standard (from IETF) [<a href="#TLS11">TLS11</a>]</td> + <td>Update of TLS 1.0 to add protection against Cipher block chaining + (CBC) attacks.</td> + </tr> + <tr><td>TLS v1.2</td> + <td>Proposed Internet Standard (from IETF) [<a href="#TLS12">TLS12</a>]</td> + <td>Update of TLS 1.1 deprecating MD5 as hash, and adding incompatibility + to SSL so it will never negotiate the use of SSLv2.</td> + </tr> + </table> + + +<p>There are a number of versions of the SSL protocol, as shown in +<a href="#table4">Table 4</a>. As noted there, one of the benefits in +SSL 3.0 is that it adds support of certificate chain loading. This feature +allows a server to pass a server certificate along with issuer certificates +to the browser. Chain loading also permits the browser to validate the +server certificate, even if Certificate Authority certificates are not +installed for the intermediate issuers, since they are included in the +certificate chain. SSL 3.0 is the basis for the Transport Layer Security +[<a href="#TLS1">TLS</a>] protocol standard, currently in development by +the Internet Engineering Task Force (IETF).</p> + +<h3><a name="session" id="session">Establishing a Session</a></h3> + + <p>The SSL session is established by following a handshake sequence + between client and server, as shown in <a href="#figure1">Figure 1</a>. This sequence may vary, depending on whether the server + is configured to provide a server certificate or request a client + certificate. Although cases exist where additional handshake steps + are required for management of cipher information, this article + summarizes one common scenario. See the SSL specification for the full + range of possibilities.</p> + + <div class="note"><h3>Note</h3> + <p>Once an SSL session has been established, it may be reused. This + avoids the performance penalty of repeating the many steps needed + to start a session. To do this, the server assigns each SSL session a + unique session identifier which is cached in the server and which the + client can use in future connections to reduce the handshake time + (until the session identifier expires from the cache of the server).</p> + </div> + + <p class="figure"> + <img src="../images/ssl_intro_fig1.gif" alt="" width="423" height="327" /><br /> + <a id="figure1" name="figure1"><dfn>Figure 1</dfn></a>: Simplified SSL + Handshake Sequence</p> + + <p>The elements of the handshake sequence, as used by the client and + server, are listed below:</p> + + <ol> + <li>Negotiate the Cipher Suite to be used during data transfer</li> + <li>Establish and share a session key between client and server</li> + <li>Optionally authenticate the server to the client</li> + <li>Optionally authenticate the client to the server</li> + </ol> + + <p>The first step, Cipher Suite Negotiation, allows the client and + server to choose a Cipher Suite supported by both of them. The SSL3.0 + protocol specification defines 31 Cipher Suites. A Cipher Suite is + defined by the following components:</p> + + <ul> + <li>Key Exchange Method</li> + <li>Cipher for Data Transfer</li> + <li>Message Digest for creating the Message Authentication Code (MAC)</li> + </ul> + + <p>These three elements are described in the sections that follow.</p> + + +<h3><a name="keyexchange" id="keyexchange">Key Exchange Method</a></h3> + + <p>The key exchange method defines how the shared secret symmetric + cryptography key used for application data transfer will be agreed + upon by client and server. SSL 2.0 uses RSA key exchange only, while + SSL 3.0 supports a choice of key exchange algorithms including + RSA key exchange (when certificates are used), and Diffie-Hellman key + exchange (for exchanging keys without certificates, or without prior + communication between client and server).</p> + + <p>One variable in the choice of key exchange methods is digital + signatures -- whether or not to use them, and if so, what kind of + signatures to use. Signing with a private key provides protection + against a man-in-the-middle-attack during the information exchange + used to generating the shared key [<a href="#AC96">AC96</a>, p516].</p> + + +<h3><a name="ciphertransfer" id="ciphertransfer">Cipher for Data Transfer</a></h3> + + <p>SSL uses conventional symmetric cryptography, as described earlier, + for encrypting messages in a session. + There are nine choices of how to encrypt, including the option not to + encrypt:</p> + + <ul> + <li>No encryption</li> + <li>Stream Ciphers + <ul> + <li>RC4 with 40-bit keys</li> + <li>RC4 with 128-bit keys</li> + </ul></li> + <li>CBC Block Ciphers + <ul><li>RC2 with 40 bit key</li> + <li>DES with 40 bit key</li> + <li>DES with 56 bit key</li> + <li>Triple-DES with 168 bit key</li> + <li>Idea (128 bit key)</li> + <li>Fortezza (96 bit key)</li> + </ul></li> + </ul> + + <p>"CBC" refers to Cipher Block Chaining, which means that a + portion of the previously encrypted cipher text is used in the + encryption of the current block. "DES" refers to the Data Encryption + Standard [<a href="#AC96">AC96</a>, ch12], which has a number of + variants (including DES40 and 3DES_EDE). "Idea" is currently one of + the best and cryptographically strongest algorithms available, + and "RC2" is a proprietary algorithm from RSA DSI [<a href="#AC96">AC96</a>, ch13].</p> + + +<h3><a name="digestfunction" id="digestfunction">Digest Function</a></h3> + + <p>The choice of digest function determines how a digest is created + from a record unit. SSL supports the following:</p> + + <ul> + <li>No digest (Null choice)</li> + <li>MD5, a 128-bit hash</li> + <li>Secure Hash Algorithm (SHA-1), a 160-bit hash</li> + </ul> + + <p>The message digest is used to create a Message Authentication Code + (MAC) which is encrypted with the message to verify integrity and to + protect against replay attacks.</p> + + +<h3><a name="handshake" id="handshake">Handshake Sequence Protocol</a></h3> + + <p>The handshake sequence uses three protocols:</p> + + <ul> + <li>The <dfn>SSL Handshake Protocol</dfn> + for performing the client and server SSL session establishment.</li> + <li>The <dfn>SSL Change Cipher Spec Protocol</dfn> for actually + establishing agreement on the Cipher Suite for the session.</li> + <li>The <dfn>SSL Alert Protocol</dfn> for conveying SSL error + messages between client and server.</li> + </ul> + + <p>These protocols, as well as application protocol data, are + encapsulated in the <dfn>SSL Record Protocol</dfn>, as shown in + <a href="#figure2">Figure 2</a>. An encapsulated protocol is + transferred as data by the lower layer protocol, which does not + examine the data. The encapsulated protocol has no knowledge of the + underlying protocol.</p> + + <p class="figure"> + <img src="../images/ssl_intro_fig2.gif" alt="" width="428" height="217" /><br /> + <a id="figure2" name="figure2"><dfn>Figure 2</dfn></a>: SSL Protocol Stack + </p> + + <p>The encapsulation of SSL control protocols by the record protocol + means that if an active session is renegotiated the control protocols + will be transmitted securely. If there was no previous session, + the Null cipher suite is used, which means there will be no encryption and + messages will have no integrity digests, until the session has been + established.</p> + + +<h3><a name="datatransfer" id="datatransfer">Data Transfer</a></h3> + + <p>The SSL Record Protocol, shown in <a href="#figure3">Figure 3</a>, + is used to transfer application and SSL Control data between the + client and server, where necessary fragmenting this data into smaller units, + or combining multiple higher level protocol data messages into single + units. It may compress, attach digest signatures, and encrypt these + units before transmitting them using the underlying reliable transport + protocol (Note: currently, no major SSL implementations include support + for compression).</p> + + <p class="figure"> + <img src="../images/ssl_intro_fig3.gif" alt="" width="423" height="323" /><br /> + <a id="figure3" name="figure3"><dfn>Figure 3</dfn></a>: SSL Record Protocol + </p> + + +<h3><a name="securehttp" id="securehttp">Securing HTTP Communication</a></h3> + + <p>One common use of SSL is to secure Web HTTP communication between + a browser and a webserver. This does not preclude the use of + non-secured HTTP - the secure version (called HTTPS) is the same as + plain HTTP over SSL, but uses the URL scheme <code>https</code> + rather than <code>http</code>, and a different server port (by default, + port 443). This functionality is a large part of what <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> provides for the Apache webserver.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="references" id="references">References</a></h2> + +<dl> +<dt><a id="AC96" name="AC96">[AC96]</a></dt> +<dd>Bruce Schneier, <q>Applied Cryptography</q>, 2nd Edition, Wiley, +1996. See <a href="http://www.counterpane.com/">http://www.counterpane.com/</a> for various other materials by Bruce +Schneier.</dd> + +<dt><a id="ASN1" name="ASN1">[ASN1]</a></dt> +<dd>ITU-T Recommendation X.208, <q>Specification of Abstract Syntax Notation +One (ASN.1)</q>, last updated 2008. See <a href="http://www.itu.int/ITU-T/asn1/">http://www.itu.int/ITU-T/asn1/</a>. +</dd> + +<dt><a id="X509" name="X509">[X509]</a></dt> +<dd>ITU-T Recommendation X.509, <q>The Directory - Authentication +Framework</q>. For references, see <a href="http://en.wikipedia.org/wiki/X.509">http://en.wikipedia.org/wiki/X.509</a>. +</dd> + +<dt><a id="PKCS" name="PKCS">[PKCS]</a></dt> +<dd><q>Public Key Cryptography Standards (PKCS)</q>, +RSA Laboratories Technical Notes, See <a href="http://www.rsasecurity.com/rsalabs/pkcs/">http://www.rsasecurity.com/rsalabs/pkcs/</a>.</dd> + +<dt><a id="MIME" name="MIME">[MIME]</a></dt> +<dd>N. Freed, N. Borenstein, <q>Multipurpose Internet Mail Extensions +(MIME) Part One: Format of Internet Message Bodies</q>, RFC2045. +See for instance <a href="http://tools.ietf.org/html/rfc2045">http://tools.ietf.org/html/rfc2045</a>.</dd> + +<dt><a id="SSL3" name="SSL3">[SSL3]</a></dt> +<dd>Alan O. Freier, Philip Karlton, Paul C. Kocher, <q>The SSL Protocol +Version 3.0</q>, 1996. See <a href="http://www.netscape.com/eng/ssl3/draft302.txt">http://www.netscape.com/eng/ssl3/draft302.txt</a>.</dd> + +<dt><a id="TLS1" name="TLS1">[TLS1]</a></dt> +<dd>Tim Dierks, Christopher Allen, <q>The TLS Protocol Version 1.0</q>, +1999. See <a href="http://ietf.org/rfc/rfc2246.txt">http://ietf.org/rfc/rfc2246.txt</a>.</dd> + +<dt><a id="TLS11" name="TLS11">[TLS11]</a></dt> +<dd><q>The TLS Protocol Version 1.1</q>, +2006. See <a href="http://tools.ietf.org/html/rfc4346">http://tools.ietf.org/html/rfc4346</a>.</dd> + +<dt><a id="TLS12" name="TLS12">[TLS12]</a></dt> +<dd><q>The TLS Protocol Version 1.2</q>, +2008. See <a href="http://tools.ietf.org/html/rfc5246">http://tools.ietf.org/html/rfc5246</a>.</dd> +</dl> +</div></div> +<div class="bottomlang"> +<p><span>Available Languages: </span><a href="../en/ssl/ssl_intro.html" title="English"> en </a> | +<a href="../fr/ssl/ssl_intro.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/ssl_intro.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_intro.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 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> +<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_intro.html.fr.utf8 b/docs/manual/ssl/ssl_intro.html.fr.utf8 new file mode 100644 index 0000000..cc4fb39 --- /dev/null +++ b/docs/manual/ssl/ssl_intro.html.fr.utf8 @@ -0,0 +1,727 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="fr" xml:lang="fr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Chiffrement SSL/TLS fort : Introduction - Serveur HTTP Apache Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> +<p class="apache">Serveur HTTP Apache Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>Chiffrement SSL/TLS fort : Introduction</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_intro.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_intro.html" title="Français"> fr </a> | +<a href="../ja/ssl/ssl_intro.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> +</div> + + +<p>Ce chapitre en guise d'introduction est destiné aux lecteurs pour lesquels +le Web, HTTP et Apache sont familiers, mais ne sont pas des experts en matiÚre +de sécurité. Il n'a pas la prétention d'être un guide détaillé sur le +protocole SSL, il ne traitera pas non plus des techniques spécifiques de gestion +des certificats dans une organisation, ni des importants problÚmes légaux de +brevets ou des restrictions d'importation ou d'exportation. Il se veut plutÎt +une base de travail pour les utilisateurs de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en +rassemblant différents concepts, définitions et exemples comme point de départ +pour une exploration plus détaillée.</p> + +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#cryptographictech">Techniques de chiffrement</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#certificates">Certificats</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ssl">Couche Points d'AccÚs Sécurisés - Secure Sockets Layer (SSL)</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#references">Références</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</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="cryptographictech" id="cryptographictech">Techniques de chiffrement</a></h2> + +<p>La maîtrise de SSL nécessite la compréhension des algorithmes de +chiffrement, des fonctions relatives aux empreintes de messages (comme les +fonctions de type hash ou non réversibles), et des signatures numériques. Ces +techniques pourraient faire l'objet d'un ouvrage à elles seules (voir par +exemple [<a href="#AC96">AC96</a>]) et constituent les bases de la +confidentialité, de l'intégrité et de l'authentification.</p> + +<h3><a name="cryptographicalgo" id="cryptographicalgo">Algorithmes de chiffrement</a></h3> + + <p>Supposons qu'Alice veuille envoyer un message à sa banque pour + transférer une certaine somme. Alice souhaiterait que le message soit + privé, car il contient des informations comme son numéro de compte et le + montant du transfert. Une solution consisterait à utiliser un algorithme de + chiffrement, technique qui permet de remplacer un message par sa version + chiffrée, illisible jusqu'à ce qu'elle soit déchiffrée. + Sous sa forme chiffrée, + le message ne peut être déchiffré qu'en utilisant une clé secrÚte. Sans la + clé, le message est inutilisable : les bons algorithmes de chiffrement + rendent si difficile la restitution du texte original par des intrus que + ceux-ci y gaspilleraient leurs efforts.</p> + + <p>Il existe deux catégories d'algorithmes de chiffrement : conventionnel + ou à clé publique.</p> + + <dl> + <dt>Chiffrement conventionnel</dt> + <dd>aussi connu sous le nom de chiffrement symétrique, il nécessite le + partage d'une clé entre l'expéditeur et le destinataire : une portion + d'information secrÚte permettant de chiffrer et déchiffrer un message. + Tant que cette clé reste secrÚte, personne à part l'expéditeur et le + destinataire ne peut lire le message. Si Alice et sa banque partagent une + clé secrÚte, ils peuvent donc s'envoyer l'un à l'autre des messages privés. + Le fait de partager une clé entre l'expéditeur et le destinataire avant + de communiquer, tout en la maintenant secrÚte vis à vis des autres, peut + toutefois poser des problÚmes.</dd> + + <dt>Chiffrement à clé publique</dt> + <dd>aussi connu sous le nom de chiffrement asymétrique, il résoud le + problÚme d'échange de clé en définissant un algorithme qui utilise deux + clés, chacune d'entre elles pouvant être utilisée pour chiffrer un message. + Si une des clés a été utilisée pour chiffrer le message, on doit utiliser + l'autre clé pour le déchiffrer. Il est ainsi possible de recevoir des + messages sécurisés simplement en rendant publique une des clés (la clé + publique), et en gardant l'autre clé secrÚte (la clé privée).</dd> + </dl> + + <p>Tout le monde peut chiffrer un message en utilisant la clé publique, + mais seul le propriétaire de la clé privée sera en mesure de le lire. De + cette façon, Alice peut envoyer des messages privés au propriétaire d'une + paire de clés (sa banque), en les chiffrant à l'aide de la clé publique. + Seule la banque sera en mesure de les déchiffrer.</p> + + +<h3><a name="messagedigests" id="messagedigests">Empreinte d'un message</a></h3> + + <p>Bien qu'Alice puisse chiffrer son message pour le rendre privé, il + subsiste toujours le risque que quelqu'un puisse modifier le message + original ou le remplacer par un autre, afin d'effectuer le transfert de + fonds à son profit, par exemple. Une solution pour garantir l'intégrité du + message consisterait pour Alice à créer un résumé concentré de son message + qu'elle enverrait à sa banque avec ce dernier. A la réception du message, + la banque crée son propre résumé et le compare avec celui qu'Alice a + envoyé. Si les deux résumés sont identiques, le message reçu n'a pas + été modifié.</p> + + <p>Un résumé tel que celui-ci est appelé + <dfn>empreinte numérique de message</dfn> (message digest), + <em>fonction irréversible</em> (one-way function) ou + <em>fonction de hashage</em> (hash function). Une empreinte de message + constitue une représentation courte et de longueur fixe, d'un message plus + long et de longueur variable. Les algorithmes de création d'empreintes sont + conçus pour produire une empreinte unique pour chaque message. Les + empreintes de messages sont conçues pour que la restitution du message + à partir de l'empreinte soit d'une difficulté insurmontable, et qu'il soit + (en théorie) impossible de trouver deux messages différents qui produisent + la même empreinte -- ce qui élimine la possibilité de remplacer un message + par un autre en conservant la même empreinte.</p> + + <p>Trouver le moyen d'envoyer l'empreinte de maniÚre sécurisée à la banque + constitue un autre défit auquel Alice doit faire face ; si l'empreinte + n'est pas envoyée de maniÚre sécurisée, son intégrité peut être compromise, + et avec elle, la possibilité pour la banque de vérifier l'intégrité du + message original. L'intégrité du message ne peut être vérifiée que si + l'empreinte qui lui est associée est envoyée de maniÚre sécurisée.</p> + + <p>Une solution pour envoyer l'empreinte de maniÚre sécurisée consiste à + l'inclure dans une signature numérique.</p> + + +<h3><a name="digitalsignatures" id="digitalsignatures">Signatures numériques</a></h3> +<p>Quand Alice envoie un message à sa banque, cette derniÚre doit s'assurer +que le message a bien été envoyé par elle, pour éviter qu'un intrus puisse +effectuer une transaction sur son compte. Une <em>signature numérique</em>, +créée par Alice et incluse dans le message, permet d'atteindre cet +objectif.</p> + +<p>Les signatures numériques peuvent être créées en chiffrant une empreinte de +message, ainsi que d'autres informations (comme un numéro d'ordre) avec la clé +privée de l'expéditeur. Bien que tout le monde puisse <em>déchiffrer</em> la +signature à l'aide de la clé publique, seul l'expéditeur connait la clé privée. +Ce qui implique que seul l'expéditeur peut avoir signé le message. Inclure +l'empreinte dans la signature entraîne que cette derniÚre n'est valable que +pour ce message ; ceci assure aussi l'intégrité du message car personne ne +peut modifier l'empreinte et ensuite signer le message.</p> +<p>Afin de se prémunir contre l'interception et la réutilisation de la +signature par un intrus quelques jours plus tard, la signature contient un +numéro d'ordre unique. Ceci protÚge la banque contre une plainte frauduleuse +de la part d'Alice alléguant qu'elle n'a pas envoyé le message -- +elle seule peut l'avoir signé (non-répudiation).</p> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="certificates" id="certificates">Certificats</a></h2> + +<p>Bien qu'Alice soit parvenue à envoyer un message privé à sa banque, aprÚs +l'avoir signé et avoir ainsi assuré l'intégrité du message, elle doit encore vérifier +qu'elle communique réellement avec la banque. C'est à dire qu'elle doit +s'assurer que la clé publique qu'elle utilise appartient bien à la paire de +clés de la banque, et non à celle d'un intrus. +De même, la banque doit vérifier que la +signature du message a bien été construite avec la clé privée d'Alice.</p> + +<p>Si chaque partie possÚde un certificat qui valide l'identité de l'autre, +confirme la clé publique, et est signé par un organisme de confiance, alors +les deux protagonistes peuvent être sûrs que la personne avec laquelle ils +communiquent est bien celle avec laquelle ils désirent le faire. Un tel +organisme de confiance s'appelle une <em>Autorité de Certification</em>, et +on utilise les certificats à des fins d'authentification.</p> + +<h3><a name="certificatecontents" id="certificatecontents">Contenu d'un certificat</a></h3> + + <p>Un certificat associe une clé publique avec l'identité réelle d'un + individu, d'un serveur, ou d'une autre entité plus connue sous le nom de + sujet. Comme on le voit dans le <a href="#table1">Tableau 1</a>, les + information concernant le sujet comprennent des informations + d'identification (le nom distinctif ou distinguished name - dn), ainsi que + la clé publique. Il comporte aussi l'identification et la signature de + l'autorité de certification qui a délivré le certificat, ainsi que la + période de validité de ce dernier. Il peut aussi contenir des informations + supplémentaires (ou extensions) telles que des informations de gestion + destinées à l'autorité de certification, comme un numéro de série.</p> + + <h4><a name="table1" id="table1">Tableau 1: Information contenues dans un certificat</a></h4> + + <table> + + <tr><th>Sujet</th> + <td>Nom distinctif, Clé publique</td></tr> + <tr><th>Fournisseur</th> + <td>Nom distinctif, Signature</td></tr> + <tr><th>Période de validité</th> + <td>Pas avant, Pas aprÚs</td></tr> + <tr><th>Informations de gestion</th> + <td>Version, Numéro de série</td></tr> + <tr><th>Extensions</th> + <td>Contraintes de base, Drapeaux Netscape, etc.</td></tr> + </table> + + + <p>Un nom distinctif sert à fournir une identité dans un contexte + spécifique -- par exemple, un individu peut posséder un certificat + personnel, et aussi un certificat en tant qu'employé. Les noms distinctifs + doivent respecter le standard X509 [<a href="#X509">X509</a>], qui définit + les champs, les noms de champs, et les abréviations utilisées pour faire + référence aux champs (voir <a href="#table2">Tableau 2</a>).</p> + + <h4><a name="table2" id="table2">Tableau 2: Informations contenues dans le nom distinctif</a></h4> + + <table class="bordered"> + + <tr><th>Champ du DN</th> + <th>Abrév.</th> + <th>Description</th> + <th>Exemple</th></tr> + <tr><td>Nom complet (Common Name)</td> + <td>CN</td> + <td>Nom certifié</td> + <td>CN=Joe Average</td></tr> + <tr><td>Organisation or Entreprise</td> + <td>O</td> + <td>Nom est associé à cette<br />organisation</td> + <td>O=Snake Oil, Ltd.</td></tr> + <tr><td>Unité organisationnelle (Organizational Unit)</td> + <td>OU</td> + <td>Nom est associé avec cette <br />unité organisationnelle, + par exemple un département</td> + <td>OU=Research Institute</td></tr> + <tr><td>Ville/Localisation</td> + <td>L</td> + <td>Nom est localisé dans cette ville</td> + <td>L=Snake City</td></tr> + <tr><td>Etat/Province</td> + <td>ST</td> + <td>Nom est localisé dans cet état/province</td> + <td>ST=Desert</td></tr> + <tr><td>Pays</td> + <td>C</td> + <td>Nom est localisé dans ce pays (code ISO)</td> + <td>C=XZ</td></tr> + </table> + + + <p>Une autorité de certification peut définir une contrainte spécifiant + quels champs du nom distinctif sont optionnels et lesquels sont + obligatoires. Elle peut aussi imposer des contraintes sur le contenu des + champs, ce que peuvent aussi faire les utilisateurs de certificats. Par + exemple, un navigateur Netscape peut exiger, dans le cas d'un certificat + de serveur, que le nom complet (Common Name) corresponde à un nom générique + contenant le nom de domaine du serveur, comme + <code>*.snakeoil.com</code>.</p> + + <p>Le format binaire d'un certificat est défini en utilisant la + notation ASN.1 [<a href="#ASN1">ASN1</a>] [<a href="#PKCS">PKCS</a>]. + Cette notation definit la maniÚre de spécifier les contenus, et les rÚgles + d'encodage définissent la maniÚre dont ces information sont converties au + format binaire. L'encodage binaire du certificat est défini par les RÚgles + d'Encodage Distinctives (Distinguished Encoding Rules - DER), qui se basent + d'une maniÚre plus générale sur les RÚgles d'Encodage de Base (Basic + Encoding Rules - BER). Pour les transmissions qui ne supportent pas le + format binaire, ce dernier peut être converti au format ASCII en utilisant + le codage Base64 [<a href="#MIME">MIME</a>]. Lorsqu'il est placé entre des + délimiteurs de début et de fin (comme ci-dessous), on dit que le certificat + est encodé au format PEM ("Privacy Enhanced Mail").</p> + + <div class="example"><h3>Exemple de certificat encodé au format PEM (snakeoil.crt)</h3><pre>-----BEGIN CERTIFICATE----- +MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx +FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG +A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv +cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz +bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL +MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h +a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl +cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN +AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB +gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b +vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa +lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV +HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB +gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt +2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7 +dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ== +-----END CERTIFICATE-----</pre></div> + + +<h3><a name="certificateauthorities" id="certificateauthorities">Autorités de certification</a></h3> + + <p>En vérifiant les informations contenues dans une demande de certificat + avant de l'accorder, l'autorité de certification s'assure de l'identité du + propriétaire de la clé privée issue de sa paire de clés. Par exemple, Si + Alice demande un certificat personnel, l'autorité de certification doit + d'abord s'assurer qu'elle correspond vraiment à la personne à laquelle + la demande de certificat fait référence.</p> + + <h4><a name="certificatechains" id="certificatechains">Chaînes de certification</a></h4> + + <p>Une autorité de certification peut aussi émettre un certificat à + destination d'une + autre autorité de certification. Pour vérifier un certificat, Alice + peut être amenée à vérifier le certificat de l'émetteur pour chaque + autorité de certification parente, jusqu'à ce qu'elle en atteigne une + en qui elle a confiance. Elle peut aussi ne faire confiance qu'aux + certificats faisant l'objet d'une chaîne limitée d'émetteurs, afin + de réduire le risque de rencontrer un "mauvais" certificat dans la + chaîne.</p> + + + <h4><a name="rootlevelca" id="rootlevelca">Création d'une autorité de certification racine</a></h4> + + <p>Comme indiqué plus haut, chaque certificat nécessite la validation + de l'identité du sujet par un émetteur de certificats + de niveau supérieur, et ceci en + remontant jusqu'à l'Autorité de Certification (CA) racine. Ceci pose un + problÚme : qui va se porter garant du certificat de l'autorité racine + qui ne possÚde pas d'émetteur de certificat ? C'est uniquement dans ce + cas que le certificat est auto-signé, l'émetteur du certificat et son + sujet étant confondus. Les navigateurs sont préconfigurés avec une + liste d'autorités de certification de confiance, mais il est important + d'être extrÚmement prudent avant de faire confiance à un certificat + auto-signé. La large publication d'une clé publique par l'autorité + racine réduit cependant les risques encourus + en faisant confiance à cette clé -- + si quelqu'un publiait une clé en se faisant passer pour l'autorité, il + serait vite démasqué.</p> + + <p>Quelques compagnies, comme <a href="http://www.thawte.com/">Thawte</a> et <a href="http://www.verisign.com/">VeriSign</a>, + se sont proclamées elles-mêmes Autorités de Certification. Ces + compagnies proposent les services suivant :</p> + + <ul> + <li>Vérification des demandes de certificats</li> + <li>Traitement des demandes de certificats</li> + <li>Emission et gestion des certificats</li> + </ul> + + <p>Vous pouvez aussi créer votre propre autorité de certification. Bien + que risqué dans l'environnement de l'Internet, ceci peut s'avérer utile + dans un Intranet, où l'organisme peut vérifier facilement les identités + des individus et des serveurs.</p> + + + <h4><a name="certificatemanagement" id="certificatemanagement">Gestion des certificats</a></h4> + + <p>Constituer une autorité de certification représente une + responsabilité qui nécessite une solide infrastructure administrative, + technique et gestionnaire. Les autorités de certification ne se + contentent pas d'émettre des certificats, elles doivent aussi les gérer + -- à savoir elles déterminent leur durée de validité, elles les + renouvellent, et elles maintiennent des listes de certificats qui ont + été émis dans le passé mais ne sont plus valides (Listes de révocations + de certificats, ou CRLs).</p> + + <p>Par exemple, si Alice est titulaire d'un certificat en tant + qu'employée d'une compagnie, mais vient de quitter cette compagnie, + son certificat doit être révoqué. Comme les certificats ne sont émis + qu'aprÚs vérification de l'identité du sujet, et peuvent être envoyés + à tous ceux avec lesquels le sujet peut communiquer, il est impossible + de discerner à partir du seul certificat s'il a été révoqué. Pour + vérifier la validité d'un certificat, il est donc nécessaire de + contacter l'autorité de certification qui l'a émis afin de pouvoir + consulter ses listes de révocations de certificats -- ce qui n'est + en général pas une partie automatique du processus.</p> + + <div class="note"><h3>Note</h3> + <p>Si votre autorité de certification ne fait pas partie de la liste + des autorités de confiance de votre navigateur, il faut enregistrer le + certificat de l'autorité de certification dans ce dernier, ce qui lui + permettra de valider les certificats de serveurs signés par cette + autorité de certification. Ceci peut être dangereux, car une fois le + certificat enregistré, le navigateur acceptera tous les certificats + signés par cette autorité de certification.</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="ssl" id="ssl">Couche Points d'AccÚs Sécurisés - Secure Sockets Layer (SSL)</a></h2> + +<p>Le protocole Couche Points d'AccÚs Sécurisés est une couche protocolaire +qui pourrait s'intercaler entre un protocole d'une couche réseau orientée +connexion (comme TCP/IP) et une couche protocolaire d'application (comme HTTP). +SSL fournit une communication sécurisée entre client et serveur en permettant +l'authentification mutuelle, l'utilisation des signatures numériques pour la +vérification de l'intégrité des données, et le chiffrement pour la +confidentialité.</p> + +<p>Ce protocole est conçu pour supporter un grand choix d'algorithmes +spécifiques utilisés pour la cryptographie, les empreintes et les signatures. +Ceci permet la sélection d'un algorithme pour des serveurs spécifiques en +respectant la légalité, les rÚgles d'exportation ou autres contraintes, et +permet aussi au protocole de tirer parti des nouveaux algorithmes. Ces choix +font l'objet d'une négociation entre client et serveur lors de +l'établissement de la session protocolaire.</p> + +<h3><a name="table4" id="table4">Tableau 4: Versions du protocole SSL</a></h3> + + <table class="bordered"> + + <tr><th>Version</th> + <th>Source</th> + <th>Description</th> + </tr> + <tr><td>SSL v2.0</td> + <td>Standard du fournisseur (de Netscape Corp.)</td> + <td>Premier protocole SSL pour lequel il existe des implémentations</td> + </tr> + <tr><td>SSL v3.0</td> + <td>Projet Internet arrivé à expiration (de Netscape Corp.) [<a href="#SSL3">SSL3</a>]</td> + <td>Comporte des révisions permettant de prévenir certaines attaques de + sécurité spécifiques, ajout de chiffrements non RSA, et support des + chaînes de certification</td> + </tr> + <tr><td>TLS v1.0</td> + <td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS1">TLS1</a>]</td> + <td>Révision de SSL 3.0 pour mettre à jour la couche MAC vers HMAC, + ajout du bourrage de bloc pour le chiffrement de bloc, standardisation + de l'ordonnancement des messages et plus de messages d'alerte.</td> + </tr> + <tr><td>TLS v1.1</td> + <td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS11">TLS11</a>]</td> + <td>Mise à jour de TLS 1.0 pour la protection contre les + attaques de type Cipher block chaining (CBC).</td> + </tr> + <tr><td>TLS v1.2</td> + <td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS12">TLS12</a>]</td> + <td>Mise à jour de TLS 1.1 rendant les condensés MD5 obsolÚtes, + et introduisant une incompatibilité avec SSL ce qui interdit toute + négociation en vue d'une utilisation de SSLv2.</td> + </tr> + </table> + + +<p>Il existe plusieurs versions du protocole SSL, comme le montre le +<a href="#table4">Tableau 4</a>. Comme indiqué dans ce dernier, un des apports +de SSL 3.0 est le support du chargement des chaînes de certification. Cette +fonctionnalité permet à un serveur de passer au navigateur un certificat de +serveur accompagné du certificat de l'émetteur. Le chargement de la +chaîne permet aussi au navigateur de valider le certificat du serveur, même si +les certificats de l'autorité de certification ne sont pas installés pour les +émetteurs intermédiaires, car ils sont inclus dans la chaîne de certification. +SSL 3.0 sert de base au standard du protocole Sécurité de la Couche Transport +ou Transport Layer Security +[<a href="#TLS1">TLS</a>], actuellement en développement au sein de +l'Internet Engineering Task Force (IETF).</p> + +<h3><a name="session" id="session">Etablissement d'une session</a></h3> + + <p>La session SSL est établie en suivant une séquence d'échanges + d'informations entre client et serveur, comme le montre la + <a href="#figure1">Figure 1</a>. Cette séquence peut varier, selon que + le serveur est configuré pour fournir un certificat de serveur ou + réclame un certificat client. Bien que dans certains cas, des étapes + d'échanges d'informations supplémentaires soient nécessaires pour la + gestion des informations de chiffrement, cet article résume un scénario + courant. Se reporter aux spécifications SSL pour avoir la liste de + toutes les possibilités.</p> + + <div class="note"><h3>Note</h3> + <p>Une fois la session SSL établie, elle peut être réutilisée. Ceci + permet d'éviter la perte de performances due à la répétition des nombreuses + étapes nécessaires à l'établissement d'une session. Pour parvenir à ceci, + le serveur assigne un identifiant de session unique à chaque session SSL ; + cet identifiant est mis en cache dans le serveur et le client peut + l'utiliser pour des connexions ultérieures afin de réduire la durée des + échanges d'informations (et ceci jusqu'à ce que l'identifiant de session + arrive à expiration dans le cache du serveur).</p> + </div> + + <p class="figure"> + <img src="../images/ssl_intro_fig1.gif" alt="" width="423" height="327" /><br /> + <a id="figure1" name="figure1"><dfn>Figure 1</dfn></a> : Séquence + simplifiée d'échanges d'informations SSL</p> + + <p>Les éléments de la séquence d'échanges d'informations, tels qu'ils + sont utilisés par le client et le serveur, sont énumérés ci-aprÚs :</p> + + <ol> + <li>Négociation de la suite de chiffrement à utiliser durant le transfert des données</li> + <li>Elaboration et échange d'une clé de session entre le client et le serveur</li> + <li>Authentification éventuelle du serveur par le client</li> + <li>Authentification éventuelle du client par le serveur</li> + </ol> + + <p>La premiÚre étape, la négociation de la suite de chiffrement, permet au + client et au serveur de choisir une suite de chiffrement qu'ils supportent + tous les deux. La spécification du protocole SSL 3.0 définit 31 suites de + chiffrement. Une suite de chiffrement se compose des éléments + suivants :</p> + + <ul> + <li>Méthode d'échange de la clé</li> + <li>Chiffrement du transfert des données</li> + <li>Empreinte du message servant à créer le code d'authentification du + message (MAC)</li> + </ul> + + <p>Ces trois éléments sont décrits dans les sections suivantes.</p> + + +<h3><a name="keyexchange" id="keyexchange">Méthode d'échange de la clé</a></h3> + + <p>La méthode d'échange de la clé définit la maniÚre + dont la clé de chiffrement + symétrique secrÚte et partagée utilisée pour le transfert des données de + l'application sera acceptée par le client et le serveur. SSL 2.0 utilise + l'échange de clé RSA seulement, tandis que SSL 3.0 supporte tout un choix + d'algorithmes d'échange de clé incluant l'échange de clé RSA (quand les + certificats sont utilisés), et l'échange de clés Diffie-Hellman (pour + échanger des clés sans certificat, ou en l'absence de communication + préalable entre le client et le serveur).</p> + + <p>Les signatures numériques constituent une variante dans le choix des + méthodes d'échange de clé -- utiliser les signatures ou pas, et dans + l'affirmative, quel genre de signatures utiliser. La signature à l'aide + d'une clé privée fournit une protection contre une attaque + "man-in-the-middle" au cours de laquelle + l'échange d'informations destiné à générer la + clé partagée peut être intercepté [<a href="#AC96">AC96</a>, p516].</p> + + +<h3><a name="ciphertransfer" id="ciphertransfer">Chiffrement du transfert de données</a></h3> + + <p>Comme décrit plus haut, SSL utilise le chiffrement symétrique + conventionnel pour chiffrer les messages au cours d'une session. Il existe + neuf choix possibles pour le chiffrement, y compris l'option du transfert + non chiffré :</p> + + <ul> + <li>Pas de chiffrement</li> + <li>Chiffrement en continu (Stream Ciphers) + <ul> + <li>RC4 avec clés de 40 bits</li> + <li>RC4 avec clés de 128 bits</li> + </ul></li> + <li>Chiffrement par blocs CBC (CBC Block Ciphers) + <ul><li>RC2 avec clé de 40 bits</li> + <li>DES avec clé de 40 bits</li> + <li>DES avec clé de 56 bits</li> + <li>Triple-DES avec clé de 168 bits</li> + <li>Idea (clé de 128 bits)</li> + <li>Fortezza (clé de 96 bits)</li> + </ul></li> + </ul> + + <p>"CBC" signifie Cipher Block Chaining (Chaînage de blocs chiffrés), + c'est à dire qu'une portion du bloc de texte chiffré précédent est utilisée + pour le chiffrement du bloc courant. "DES" signifie Data Encryption + Standard (Standard de Chiffrement des Données) + [<a href="#AC96">AC96</a>, ch12], et possÚde de nombreuses variantes + (telles que DES40 et 3DES_EDE). Parmi les algorithmes disponibles, "Idea" + est actuellement un des meilleurs et des plus puissants sur le plan + cryptographique, et "RC2" est un algorithme propriétaire de RSA DSI + [<a href="#AC96">AC96</a>, ch13].</p> + + +<h3><a name="digestfunction" id="digestfunction">Fonction de création d'empreinte</a></h3> + + <p>Le choix d'une fonction de création d'empreinte détermine la maniÚre + dont une empreinte est créée à partir d'une unité de données. SSL supporte + les fonctions suivantes :</p> + + <ul> + <li>Pas d'empreinte (choix Null)</li> + <li>MD5, une empreinte de 128 bits</li> + <li>Algorithme d'Empreinte Sécurisée (Secure Hash Algorithm - SHA-1), une + empreinte de 160 bits</li> + </ul> + + <p>On utilise l'empreinte de message pour créer un Code d'Authentification + de Message (Message Authentication Code - MAC) qui est chiffré avec le + message afin de vérifier son intégrité et de se protéger contre les + attaques de type "rejeu".</p> + + +<h3><a name="handshake" id="handshake">Protocole de la séquence d'échanges d'informations</a></h3> + + <p>La séquence d'échanges d'informations utilise trois protocoles :</p> + + <ul> + <li>Le <dfn>Protocole d'échanges d'informations SSL</dfn> pour établir + la session SSl entre le client et le serveur.</li> + <li>Le <dfn>Protocole de spécification du chiffrement SSL</dfn> pour + l'agrément effectif de la suite de chiffrement à utiliser + pour la session.</li> + <li>Le <dfn>Protocole d'alertes SSL</dfn> pour la transmission de + messages d'erreur SSL entre le client et le serveur.</li> + </ul> + + <p>Ces protocoles, ainsi que les données du protocole de l'application, + sont encapsulés dans le <dfn>Protocole d'enregistrement SSL + (SSL Record Protocol)</dfn>, comme + le montre la <a href="#figure2">Figure 2</a>. Un protocole encapsulé est + tranféré en tant que données par le protocole de la couche de niveau + inférieur, qui ne se préoccupe pas du contenu des données. Le protocole + encapsulé n'a aucune connaissance du protocole sous-jacent.</p> + + <p class="figure"> + <img src="../images/ssl_intro_fig2.gif" alt="" width="428" height="217" /><br /> + <a id="figure2" name="figure2"><dfn>Figure 2</dfn></a>: + Pile du protocole SSL</p> + + <p>L'encapsulation des protocoles de contrÎle SSL dans le protocole + d'enregistrement signifie que si une session active est renégociée, les + protocoles de contrÎle seront transmis de maniÚre sécurisée. S'il n'y + avait pas de session préalable, la suite de chiffrement Null est utilisée, + ce qui signifie que les messages ne seront pas chiffrés et ne possÚderont + pas d'empreinte d'intégrité, jusqu'à ce que la session ait été établie.</p> + + +<h3><a name="datatransfer" id="datatransfer">Transmission des données</a></h3> + + <p>Le protocole d'enregistrement SSL, comme le montre la + <a href="#figure3">Figure 3</a>, est utilisé pour transmettre les données + de l'application et les données de contrÎle SSL entre le client et le + serveur, les données étant nécessairement fragmentées en éléments plus + petits, ou plusieurs messages de données avec protocole de niveau + supérieur pouvant être combinés en un seul élément. Ce protocole peut + joindre des signatures d'empreintes, compresser et chiffrer ces éléments + avant de les transmettre en utilisant le protocole fiable de transport + sous-jacent (Note : actuellement, aucune implémentation majeure de SSL + n'inclut le support de la compression).</p> + + <p class="figure"> + <img src="../images/ssl_intro_fig3.gif" alt="" width="423" height="323" /><br /> + <a id="figure3" name="figure3"><dfn>Figure 3</dfn></a>: + Protocole d'enregistrement SSL</p> + + +<h3><a name="securehttp" id="securehttp">Sécurisation des communications HTTP</a></h3> + + <p>Une des utilisations courantes de SSL est la sécurisation des + communication HTTP sur le Web entre un navigateur et un serveur web. Ceci + n'exclut pas l'utilisation de HTTP non sécurisé - la version sécurisée + (appelée HTTPS) est identique à du vrai HTTP sur SSL, + mais utilise le préfixe + d'URL <code>https</code> au lieu de <code>http</code>, et un port + de serveur différent (par défaut le port 443). + Ceci constitue pour une large part + ce qu'apporte <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> au serveur web Apache.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="references" id="references">Références</a></h2> + +<dl> +<dt><a id="AC96" name="AC96">[AC96]</a></dt> +<dd>Bruce Schneier, <q>Applied Cryptography</q>, 2nd Edition, Wiley, +1996. Voir <a href="http://www.counterpane.com/">http://www.counterpane.com/</a> pour diverses autres productions de Bruce +Schneier.</dd> + +<dt><a id="ASN1" name="ASN1">[ASN1]</a></dt> +<dd>ITU-T Recommendation X.208, <q>Specification of Abstract Syntax Notation +One (ASN.1)</q>, derniÚre mise à jour en 2008. Voir <a href="http://www.itu.int/ITU-T/asn1/">http://www.itu.int/ITU-T/asn1/</a>. +</dd> + +<dt><a id="X509" name="X509">[X509]</a></dt> +<dd>ITU-T Recommendation X.509, <q>The Directory - Authentication +Framework</q>. A titre de référence, voir <a href="http://en.wikipedia.org/wiki/X.509">http://en.wikipedia.org/wiki/X.509</a>. +</dd> + +<dt><a id="PKCS" name="PKCS">[PKCS]</a></dt> +<dd><q>Public Key Cryptography Standards (PKCS)</q>, +RSA Laboratories Technical Notes, Voir <a href="http://www.rsasecurity.com/rsalabs/pkcs/">http://www.rsasecurity.com/rsalabs/pkcs/</a>.</dd> + +<dt><a id="MIME" name="MIME">[MIME]</a></dt> +<dd>N. Freed, N. Borenstein, <q>Multipurpose Internet Mail Extensions +(MIME) Part One: Format of Internet Message Bodies</q>, RFC2045. +Voir par exemple <a href="http://tools.ietf.org/html/rfc2045">http://tools.ietf.org/html/rfc2045</a>.</dd> + +<dt><a id="SSL3" name="SSL3">[SSL3]</a></dt> +<dd>Alan O. Freier, Philip Karlton, Paul C. Kocher, <q>The SSL Protocol +Version 3.0</q>, 1996. Voir <a href="http://www.netscape.com/eng/ssl3/draft302.txt">http://www.netscape.com/eng/ssl3/draft302.txt</a>.</dd> + +<dt><a id="TLS1" name="TLS1">[TLS1]</a></dt> +<dd>Tim Dierks, Christopher Allen, <q>The TLS Protocol Version 1.0</q>, +1999. Voir <a href="http://ietf.org/rfc/rfc2246.txt">http://ietf.org/rfc/rfc2246.txt</a>.</dd> + +<dt><a id="TLS11" name="TLS11">[TLS11]</a></dt> +<dd><q>Le protocole TLS Version 1.1</q>, +2006. Voir <a href="http://tools.ietf.org/html/rfc4346">http://tools.ietf.org/html/rfc4346</a>.</dd> + +<dt><a id="TLS12" name="TLS12">[TLS12]</a></dt> +<dd><q>Le protocole TLS Version 1.2</q>, +2008. Voir <a href="http://tools.ietf.org/html/rfc5246">http://tools.ietf.org/html/rfc5246</a>.</dd> +</dl> +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_intro.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_intro.html" title="Français"> fr </a> | +<a href="../ja/ssl/ssl_intro.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_intro.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />Autorisé sous <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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/ssl/ssl_intro.html.ja.utf8 b/docs/manual/ssl/ssl_intro.html.ja.utf8 new file mode 100644 index 0000000..a7dd171 --- /dev/null +++ b/docs/manual/ssl/ssl_intro.html.ja.utf8 @@ -0,0 +1,730 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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="ja" xml:lang="ja"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>SSL/TLS æå·å: ã¯ããã« - Apache HTTP ãµãŒã ããŒãžã§ã³ 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">ã¢ãžã¥ãŒã«</a> | <a href="../mod/directives.html">ãã£ã¬ã¯ãã£ã</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">çšèª</a> | <a href="../sitemap.html">ãµã€ãããã</a></p> +<p class="apache">Apache HTTP ãµãŒã ããŒãžã§ã³ 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP ãµãŒã</a> > <a href="http://httpd.apache.org/docs/">ããã¥ã¡ã³ããŒã·ã§ã³</a> > <a href="../">ããŒãžã§ã³ 2.4</a> > <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>SSL/TLS æå·å: ã¯ããã«</h1> +<div class="toplang"> +<p><span>翻蚳æžã¿èšèª: </span><a href="../en/ssl/ssl_intro.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_intro.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/ssl_intro.html" title="Japanese"> ja </a></p> +</div> +<div class="outofdate">ãã®æ¥æ¬èªèš³ã¯ãã§ã«å€ããªã£ãŠãã + å¯èœæ§ããããŸãã + æè¿æŽæ°ãããå
容ãèŠãã«ã¯è±èªçãã芧äžããã + </div> + +<blockquote> +<p>æšæºèŠæ Œã®è¯ãæã¯ãããããã®èŠæ Œããéžã¹ããšããããšã ã +ãããŠãããæ¬åœã«ã©ã®èŠæ Œãæ°ã«å
¥ããªããã°ã +äžå¹ŽåŸ
ã€ã ãã§æ¢ããŠããèŠæ ŒãçŸããã</p> + +<p class="cite">-- <cite>A. Tanenbaum</cite>, "Introduction to +Computer Networks"</p> +</blockquote> + +<p> +å
¥éãšããããšã§ããã®ç« 㯠WebãHTTPãApache ã«éããŠãã +èªè
åãã§ãããã»ãã¥ãªãã£å°é家åãã§ã¯ãããŸããã +SSL ãããã³ã«ã®æ±ºå®çãªæåŒãã§ããã€ããã¯ãããŸããã +ãŸããçµç¹å
ã®èªèšŒç®¡çã®ããã®ç¹å®ã®ãã¯ããã¯ãã +ç¹èš±ã茞åºèŠå¶ãªã©ã®éèŠãªæ³çãªåé¡ã«ã€ããŠãæ±ããŸããã +ããããæŽãªãç 究ãžã®åºçºç¹ãšããŠè²ã
ãªæŠå¿µãå®çŸ©ãäŸã䞊ã¹ãããšã§ +<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ã®ãŠãŒã¶ã«åºç€ç¥èãæäŸããäºãç®çãšããŠããŸãã</p> + +<p>ããã«ç€ºãããå
容ã¯äž»ã«ãåèè
ã®èš±å¯ã®äž +The Open Group Research Institute ã® <a href="http://home.earthlink.net/~fjhirsch/">Frederick J. Hirsch</a> + æ°ã®èšäº <a href="http://home.earthlink.net/~fjhirsch/Papers/wwwj/"> +Introducing SSL and Certificates using SSLeay</a> ãåºã«ããŠããŸãã +æ°ã®èšäºã¯ <a href="http://www.ora.com/catalog/wjsum97/">Web Security: A Matter of +Trust</a>, World Wide Web Journal, Volume 2, Issue 3, Summer 1997 +ã«æ²èŒãããŸããã +è¯å®çãªæèŠã¯ <a href="mailto:hirsch@fjhirsch.com">Frederick Hirsch</a> æ° + (å
èšäºã®èè
) ãžå
šãŠã®èŠæ
㯠<a href="mailto:rse@engelschall.com">Ralf S. Engelschall</a> ( +<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ã®äœè
) ãžãé¡ãããŸãã +<span class="transnote">(<em>蚳泚:</em> èš³ã«ã€ããŠã¯ <a href="mailto:apache-docs@ml.apache.or.jp"> +Apache ããã¥ã¡ã³ã翻蚳ãããžã§ã¯ã</a> +ãžãé¡ãããŸãã)</span></p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#cryptographictech">æå·åæè¡</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#certificates">蚌ææž</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ssl">Secure Sockets Layer (SSL)</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#references">åèæç®</a></li> +</ul><h3>åç
§</h3><ul class="seealso"><li><a href="#comments_section">ã³ã¡ã³ã</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="cryptographictech" id="cryptographictech">æå·åæè¡</a></h2> + +<p>SSL ãç解ããã«ã¯ãæå·ã¢ã«ãŽãªãºã ã +ã¡ãã»ãŒãžãã€ãžã§ã¹ãé¢æ°(å¥å: äžæ¹åé¢æ°ãããã·ã¥é¢æ°)ã +é»å眲åãªã©ãžã®ç解ãå¿
èŠã§ãã +ãããã®æè¡ã¯æ¬ãäžžããšå¿
èŠãªé¡ç®ã§ +(äŸãã° [<a href="#AC96">AC96</a>] ãåç
§)ã +ãã©ã€ãã·ãŒãä¿¡çšãèªèšŒãªã©ã®æè¡ã®åºç€ãšãªã£ãŠããŸãã</p> + +<h3><a name="cryptographicalgo" id="cryptographicalgo">æå·ã¢ã«ãŽãªãºã </a></h3> + + <p>äŸãã°ãã¢ãªã¹ãééã®ããã«éè¡ã«ã¡ãã»ãŒãžãéããããšããŸãã + å£åº§çªå·ãééã®éé¡ãå«ãŸããããã + ã¢ãªã¹ã¯ãã®ã¡ãã»ãŒãžãç§å¯ã«ããããšæããŸãã + 解決æ¹æ³ã®äžã€ã¯æå·ã¢ã«ãŽãªãºã ã䜿ã£ãŠãã¡ãã»ãŒãžã + 埩å·ããããŸã§èªãããšãã§ããªãæå·åããã + 圢æ
ã«å€ããŠããŸãããšã§ãã + ãã®åœ¢æ
ã«ãªããšã + ã¡ãã»ãŒãžã¯ç§å¯ã®éµã«ãã£ãŠã®ã¿åŸ©å·åããããšãã§ããŸãã + éµãªãã§ã¯ãã¡ãã»ãŒãžã¯åœ¹ã«ç«ã¡ãŸããã + è¯ãæå·ã¢ã«ãŽãªãºã ã¯ã䟵å
¥è
ãå
ã®ããã¹ãã解èªããããšã + éåžžã«é£ãããããããåªåãå²ã«åããªããããŸãã</p> + + <p>æå·ã¢ã«ãŽãªãºã ã«ã¯ + åŸæ¥åãšå
¬ééµã®äºã€ã®çš®é¡ããããŸãã</p> + + <dl> + <dt>åŸæ¥åæå·</dt> + <dd>察称æå·ãšããŠãç¥ããã + éä¿¡è
ãšåä¿¡è
ãéµãå
±æããããšãå¿
èŠã§ãã + éµãšã¯ãã¡ãã»ãŒãžãæå·åããã埩å·ããã®ã«äœ¿ãããç§å¯ + ã®æ
å ±ã®ããšã§ãã + ãã®éµãç§å¯ã«ãªã£ãŠããéããéä¿¡è
ãšåä¿¡è
以å€ã¯èª°ãã¡ãã»ãŒãžãèª + ãããšãã§ããŸããã + ããããã¢ãªã¹ãšéè¡ãç§å¯ã®éµãç¥ã£ãŠãããªãã + 圌ãã¯ãäºãã«ç§å¯ã®ã¡ãã»ãŒãžãéãããšãã§ããã§ãããã + ãã ã亀信ã®åã«ãäºåã«å
å¯ã«éµãå
±æãããšããäœæ¥èªäœã¯é£é¡ãããããŸããã</dd> + + <dt>å
¬ééµæå·</dt> + <dd>é察称æå·ãšããŠãç¥ããã + ã¡ãã»ãŒãžãæå·åããããšã®ã§ããäºã€ã®éµ + ã䜿çšããã¢ã«ãŽãªãºã ãå®çŸ©ããããšã§éµã®ããåãã®åé¡ã解決 + ããŸãã + ãããããéµãæå·åã«äœ¿ããããªãã + ããçæ¹ã®éµã§åŸ©å·ããªããã°ãããŸããã + ãã®æ¹åŒã«ãã£ãŠãäžã€ã®éµãå
¬è¡šããŠ(å
¬ééµ)ã + ããçæ¹ãç§å¯ã«ããŠãã(ç§å¯éµ)ã ãã§ã + å®å
šãªã¡ãã»ãŒãžãåãåãããšãã§ããŸãã</dd> + </dl> + + <p>å
¬ééµã䜿ã£ãŠèª°ããã¡ãã»ãŒãžãæå·åã§ããŸãããç§ + å¯éµã®æã¡äž»ã ãããããèªãããšãã§ããŸãã + ãã®æ¹æ³ã§ãéè¡ã®å
¬ééµã䜿ã£ãŠæå·åããããšã§ã + ã¢ãªã¹ã¯ç§å¯ã®ã¡ãã»ãŒãžãéãããšãã§ããŸãã + éè¡ã®ã¿ãéãããã¡ãã»ãŒãžã埩å·ããããšãã§ããŸãã</p> + + +<h3><a name="messagedigests" id="messagedigests">ã¡ãã»ãŒãžãã€ãžã§ã¹ã</a></h3> + + <p>ã¢ãªã¹ã¯ã¡ãã»ãŒãžãç§å¯ã«ããããšãã§ããŸããã + 誰ããäŸãã°èªåã«ééããããã«ã¡ãã»ãŒãžãå€æŽãããã + å¥ã®ãã®ã«çœ®ãæããŠããŸããããããªããšããåé¡ããããŸãã + ã¢ãªã¹ã®ã¡ãã»ãŒãžã ãšããä¿¡ææ§ãä¿èšŒããæ¹æ³ã®äžã€ã¯ã + ã¡ãã»ãŒãžã®ç°¡æœãªãã€ãžã§ã¹ããäœã£ãŠããããéè¡ã«éããšãããã®ã§ãã + ã¡ãã»ãŒãžãåãåããšéè¡åŽã§ããã€ãžã§ã¹ããäœæãã + ã¢ãªã¹ãéã£ããã€ãžã§ã¹ããšæ¯ã¹ãŸããããäžèŽãããªãã + åãåã£ãã¡ãã»ãŒãžã¯ç¡å·ã ãšããããšã«ãªããŸãã</p> + + <p>ãã®ãããªèŠçŽã¯<dfn>ã¡ãã»ãŒãžãã€ãžã§ã¹ã</dfn>ã + <em>äžæ¹è¡é¢æ°</em>ããŸãã¯<em>ããã·ã¥é¢æ°</em>ãšåŒã°ããŸãã + ã¡ãã»ãŒãžãã€ãžã§ã¹ãã¯é·ãå¯å€é·ã®ã¡ãã»ãŒãžãã + çãåºå®é·ã®è¡šçŸãäœãã®ã«äœ¿ãããŸãã + ãã€ãžã§ã¹ãã¢ã«ãŽãªãºã ã¯ã¡ãã»ãŒãžãã + äžæãªãã€ãžã§ã¹ããçæããããã«äœãããŠããŸãã + ã¡ãã»ãŒãžãã€ãžã§ã¹ãã¯ãã€ãžã§ã¹ãããå
ã®ã¡ãã»ãŒãžã + å€å®ããã®ããšãŠãé£ããããã«ã§ããŠããŠã + åãèŠçŽãäœæããäºã€ã®ã¡ãã»ãŒãžãæ¢ãã®ã¯(çè«äž)äžå¯èœã§ãã + ããã«ãã£ãŠãèŠçŽãå€æŽããããšãªãã¡ãã»ãŒãžã眮ãæãããã + å¯èœæ§ãæé€ããŠããŸãã</p> + + <p>ã¢ãªã¹ãžã®ããäžã€ã®åé¡ã¯ããã®ãã€ãžã§ã¹ããå®å
šã«éãæ¹æ³ãæ¢ãããšã§ãã + ãã€ãžã§ã¹ããå®å
šã«éãããã°ãã€ãžã§ã¹ãã®ä¿¡ææ§ãä¿éãããŠã + ãã€ãžã§ã¹ãã®ä¿¡ææ§ããã£ãŠãªãªãžãã«ã¡ãã»ãŒãžã®ä¿¡ææ§ãåŸãããšãã§ããŸãã + ãã€ãžã§ã¹ããå®å
šã«éã£ãå Žåã«ã®ã¿ããã®ã¡ãã»ãŒãžã® + ä¿¡ææ§ãåŸãããŸãã</p> + + <p>ãã€ãžã§ã¹ãå®å
šã«éãæ¹æ³ã®äžã€ã¯ãé»å眲åã«å«ããæ¹æ³ã§ãã</p> + + +<h3><a name="digitalsignatures" id="digitalsignatures">é»å眲å</a></h3> +<p>ã¢ãªã¹ãéè¡ã«ã¡ãã»ãŒãžãéã£ããšãã +䟵å
¥è
ã圌女ã«ãªãããŸããŠåœŒå¥³ã®å£åº§ãžã®ååŒãç³è«ã§ããªãããã«ã +éè¡åŽã§ã¯ã¡ãã»ãŒãžãæ¬åœã«åœŒå¥³ããã®ãã®ã確å®ã«åããããã«ããªããã°ãªããŸããã +ã¢ãªã¹ã«ãã£ãŠäœæãããŠãã¡ãã»ãŒãžã«å«ãŸãã +<em>é»å眲å</em>ãããã§åœ¹ã«ç«ã¡ãŸãã</p> + +<p>é»å眲åã¯ã¡ãã»ãŒãžã®ãã€ãžã§ã¹ãããã®ä»ã®æ
å ±(åŠççªå·ãªã©)ã +éä¿¡è
ã®ç§å¯éµã§æå·åããããšã§äœãããŸãã +誰ããå
¬ééµã䜿ã£ãŠçœ²åã<em>埩å·</em>ããããšãã§ããŸããã +éä¿¡è
ã®ã¿ãç§å¯éµãç¥ã£ãŠããŸãã +ããã¯éä¿¡è
ã®ã¿ã眲åãããããšãæå³ããŸãã +ãã€ãžã§ã¹ããé»å眲åã«å«ãããšã¯ã +ãã®çœ²åããã®ã¡ãã»ãŒãžã®ã¿ã«æå¹ã§ããããšãæå³ããŸãã +ããã¯ã誰ããã€ãžã§ã¹ããå€ããŠçœ²åãããããšãã§ããªãããã +ã¡ãã»ãŒãžã®ä¿¡çšãä¿èšŒããŸãã</p> + +<p>䟵å
¥è
ã眲åãååããŠåŸæ¥ã«åå©çšããã®ãé²ããã +é»å眲åã«ã¯äžæãªåŠççªå·ãå«ãŸããŸãã +ããã¯ãã¢ãªã¹ããããªã¡ãã»ãŒãžã¯éã£ãŠããªããšèšãè©æ¬º +ããéè¡ãå®ããŸãã +圌女ã ãã眲åãããããã§ãã(åŠèªé²æ¢)</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="certificates" id="certificates">蚌ææž</a></h2> + +<p>ã¢ãªã¹ã¯ç§å¯ã®ã¡ãã»ãŒãžãéè¡ã«éãã +眲åãããŠãã¡ãã»ãŒãžã®ä¿¡çšãä¿èšŒããããšãã§ããããã«ãªããŸãããã +éä¿¡ããŠããçžæãæ¬åœã«éè¡ãªã®ã確ãããªããŠã¯ãããŸããã +ã€ãŸã圌女ã䜿ãããšããŠããå
¬ééµããéè¡ã®ç§å¯éµãšå¯Ÿã«ãªã£ãŠããŠã +䟵å
¥è
ã®ç§å¯éµãšå¯Ÿã«ãªã£ãŠããããã§ã¯ãªãããšã +確ãããªããŠã¯ãããªãããšãæå³ããŠããŸãã +åæ§ã«éè¡ã¯ãã¡ãã»ãŒãžã®çœ²åãæ¬åœã«ã¢ãªã¹ã®æã£ãŠãã +ç§å¯éµã§çœ²åããã眲åãã確èªããå¿
èŠããããŸãã</p> + +<p>ããäž¡è
ã«èº«å
ã蚌æããå
¬ééµã確èªãããŸãä¿¡é Œãããæ©é¢ã眲å +ãã蚌ææžãããã°ãäž¡è
ãšãéä¿¡çžæã«ã€ããŠæ£ããçžæã ãš +確信ããããšãã§ããŸãã +ãã®ãããªä¿¡é Œãããæ©é¢ã¯<em>èªèšŒå±</em> + (Certificate Authority ãŸã㯠CA) ãšåŒã°ãã +蚌ææž (certificate) ãèªèšŒ (authentication) ã«äœ¿ãããŸãã</p> + +<h3><a name="certificatecontents" id="certificatecontents">蚌ææžã®å
容</a></h3> + + <p>蚌ææžã¯å
¬ééµãšå人ããµãŒãããã®ä»ã®äž»äœã®å®åšã®èº«å
ã + é¢é£ä»ããŸãã + <a href="#table1">è¡š1</a>ã«ç€ºãããããã«èšŒæ察象ã®æ
å ±ã¯ + 身å
蚌æã®æ
å ±(èå¥å)ãšå
¬ééµãå«ãŸããŸãã + 蚌ææžã¯ãŸããèªèšŒå±ã®èº«å
蚌æãšçœ²åããããŠèšŒææžã®æå¹æéã + å«ã¿ãŸãã + ã·ãªã¢ã«ãã³ããŒãªã©ã®èªèšŒå±ã®ç®¡çäžã®æ
å ±ã + ãã®ä»ã®è¿œå ã®æ
å ±ãå«ãŸããŠãããããããŸããã</p> + + <h4><a name="table1" id="table1">è¡š1: 蚌ææžæ
å ±</a></h4> + + <table> + + <tr><th>蚌æ察象</th> + <td>èå¥åãå
¬ééµ</td></tr> + <tr><th>çºè¡è
</th> + <td>èå¥åãå
¬ééµ</td></tr> + <tr><th>æå¹æé</th> + <td>éå§æ¥ã倱å¹æ¥</td></tr> + <tr><th>管çæ
å ±</th> + <td>ããŒãžã§ã³ãã·ãªã¢ã«ãã³ããŒ</td></tr> + <tr><th>æ¡åŒµæ
å ±</th> + <td>åºæ¬çãªå¶çŽããããã¹ã±ãŒããã©ãã°ããã®ä»</td></tr> + </table> + + + <p>èå¥å(ãã£ã¹ãã£ã³ã°ã€ãã·ã¥ã»ããŒã )ã¯ç¹å®ã®ç¶æ³ã«ããã + 身å蚌æãæäŸããã®ã«äœ¿ãããŠããŸããäŸãã°ããã人㯠+ ç§çšãšäŒç€Ÿãšã§å¥ã
ã®èº«å蚌æãæã€ãããããŸããã + + èå¥å㯠X.509 æšæºèŠæ Œ [<a href="#X509">X509</a>] ã§å®çŸ©ãããŠããŸãã + X.509 æšæºèŠæ Œã¯ãé
ç®ãé
ç®åããããŠé
ç®ã®ç¥ç§°ãå®çŸ©ããŠããŸãã(<a href="#table2">è¡š + 2</a> åç
§)</p> + + <h4><a name="table2" id="table2">è¡š 2: èå¥åæ
å ±</a></h4> + + <table class="bordered"> + + <tr><th>èå¥åé
ç®</th> + <th>ç¥ç§°</th> + <th>説æ</th> + <th>äŸ</th></tr> + <tr><td>Common Name (ã³ã¢ã³ããŒã )</td> + <td>CN</td> + <td>èªèšŒãããåå<br /> + SSLæ¥ç¶ããURL</td> + <td>CN=www.example.com</td></tr> + <tr><td>Organization or Company (çµç¹å)</td> + <td>O</td> + <td>å£äœã®æ£åŒè±èªçµç¹å</td> + <td>O=Example Japan K.K.</td></tr> + <tr><td>Organizational Unit (éšéå)</td> + <td>OU</td> + <td>éšçœ²åãªã©</td> + <td>OU=Customer Service</td></tr> + <tr><td>City/Locality (åžåºçºæ)</td> + <td>L</td> + <td>æåšããŠãåžåºçºæ</td> + <td>L=Sapporo</td></tr> + <tr><td>State/Province (éœéåºç)</td> + <td>ST</td> + <td>æåšããŠãéœéåºç</td> + <td>ST=Hokkaido</td></tr> + <tr><td>Country(åœ)</td> + <td>C</td> + <td>æåšããŠããåœåã® ISO ã³ãŒã<br /> + æ¥æ¬ã®å Žå JP + </td> + <td>C=JP</td></tr> + </table> + + + <p>èªèšŒå±ã¯ã©ã®é
ç®ãçç¥å¯èœã§ã©ããå¿
é ãã®æ¹éãå®çŸ©ãã + ãããããŸãããé
ç®ã®å
容ã«ã€ããŠãèªèšŒå±ã蚌ææžã®ãŠãŒã¶ããã® + èŠä»¶ããããããããŸããã + äŸãã°ãããã¹ã±ãŒãã®ãã©ãŠã¶ã¯ããµãŒãã®èšŒææžã® + Common Name (ã³ã¢ã³ããŒã )ããµãŒãã®ãã¡ã€ã³åã® + <code>*.snakeoil.com</code> + ãšãããããªã¯ã€ã«ãã«ãŒãã®ãã¿ãŒã³ã«ãããããããš + ãèŠæ±ããŸãã</p> + + <p>ãã€ããªåœ¢åŒã®èšŒææžã¯ ASN.1 è¡šèšæ³ + [<a href="#X208">X208</a>] [<a href="#PKCS">PKCS</a>] 㧠+ å®çŸ©ãããŠããŸãã + ãã®è¡šèšæ³ã¯å
容ãã©ã®ããã«èšè¿°ããããå®çŸ©ãã + 笊å·åã®èŠå®ããã®æ
å ±ãã©ã®ããã«ãã€ããªåœ¢åŒã«å€æããããã + å®çŸ©ããŸãã + 蚌ææžã®ãã€ããªç¬Šå·å㯠Distinguished Encoding + Rules (DER) ã§å®çŸ©ãããããã¯ããäžè¬ç㪠Basic Encoding Rules + (BER) ã«åºã¥ããŠããŸãã + ãã€ããªåœ¢åŒãæ±ãããšã®ã§ããªãéä¿¡ã§ã¯ã + ãã€ããªåœ¢åŒã¯ Base64 笊å·å [<a href="#MIME">MIME</a>] 㧠+ ASCII 圢åŒã«å€æãããããšããããŸãã + éå§ããªãã¿è¡ãšçµäºããªãã¿è¡ã§å²ãŸããããã®åœ¢åŒã®ããšã + PEM ("Privacy Enhanced Mail") 笊å·åããã蚌ææžãšèšããŸãã</p> + + <div class="example"><h3>PEM 笊å·åããã蚌ææžã®äŸ (example.crt)</h3><pre>-----BEGIN CERTIFICATE----- +MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx +FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG +A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv +cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz +bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL +MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h +a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl +cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN +AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB +gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b +vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa +lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV +HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB +gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt +2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7 +dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ== +-----END CERTIFICATE-----</pre></div> + + +<h3><a name="certificateauthorities" id="certificateauthorities">èªèšŒå±</a></h3> + + <p>蚌ææžãæ¿èªããåã«ã蚌ææžèŠæ±ã«èšèŒãããŠããæ
å ±ã確èªãã + èªèšŒå±ã¯éµã®ææè
ã®èº«å
ã確èªããŸãã + äŸãã°ãã¢ãªã¹ãå人蚌ææžãç³è«ãããšãããšã + èªèšŒå±ã¯ã¢ãªã¹ã蚌ææžã®ç³è«ã䞻匵ããéãã® + åœã®æ¬äººã ãšããããšã確èªããªããŠã¯ãããŸããã</p> + + <h4><a name="certificatechains" id="certificatechains">蚌ææžã®é£é</a></h4> + + <p>èªèšŒå±ã¯ä»ã®èªèšŒå±ãžã®èšŒææžãçºè¡ããããšãã§ããŸãã + æªç¥ã®èšŒææžã調ã¹ãæã«ãã¢ãªã¹ã¯ãã®èšŒææžã®çºè¡è
+ ã«èªä¿¡ãæãŠããŸã§ãçºè¡è
ã®èšŒææžã + ãã®äžäœéå±€ã®èªèšŒå±ããã©ã£ãŠèª¿ã¹ãå¿
èŠããããŸãã + ãæªè³ªãªã蚌ææžã®å±éºæ§ãæžããããã + 圌女ã¯éãããé£éã®çºè¡è
ã®ã¿ä¿¡é Œããããã« + 決ããããšãã§ããŸãã</p> + + + <h4><a name="rootlevelca" id="rootlevelca">æäžäœèªèšŒå±ã®äœæ</a></h4> + + <p>åã«è¿°ã¹ãããã«ãå
šãŠã®èšŒææžã«ã€ããŠã + æäžäœã®èªèšŒå±(CA)ãŸã§ããããã®çºè¡è
ã + 察象ã®èº«å
蚌æã®æå¹æ§ãæããã«ããå¿
èŠããããŸãã + åé¡ã¯ã誰ããã®æäžäœã®èªèšŒæ©é¢ã®èšŒææžãä¿èšŒããã®ãã + ãšããããšã§ãã + ãã®ãããªå Žåã«éãã蚌ææžã¯ãèªå·±çœ²åããããŸãã + ãã©ãŠã¶ã«ã¯ããšãŠãããç¥ãããŠããèªèšŒå±ãåæç»é²ãããŠããŸããã + èªå·±çœ²åããã蚌ææžãä¿¡çšããéã«ã¯ + 现å¿ã®æ³šæãå¿
èŠã§ãã + æäžäœèªèšŒå±ãå
¬ééµãåºãå
¬è¡šããããšã§ã + ãã®éµãä¿¡é Œãããªã¹ã¯ãäœãããããšãã§ããŸãã + ãããä»äººããã®èªèšŒå±ã«ãªãããŸããæã«ããããé²èŠãã + ããããã§ãã</p> + + <p><a href="http://www.thawte.com/">Thawte</a> + ã <a href="http://www.verisign.com/">VeriSign</a> + ã®ãããªå€ãã®äŒç€ŸãèªèšŒå±ãšããŠéèšããŸããã + ãã®ãããªäŒç€Ÿã¯ä»¥äžã®ãµãŒãã¹ãæäŸããŸã:</p> + + <ul> + <li>蚌ææžç³è«ã®ç¢ºèª</li> + <li>蚌ææžç³è«ã®åŠç</li> + <li>蚌ææžã®çºè¡ãšç®¡ç</li> + </ul> + + <p>èªåã§èªèšŒå±ãäœãããšãå¯èœã§ãã + ã€ã³ã¿ãŒãããç°å¢ã§ã¯å±éºã§ããã + å人ããµãŒãã®èº«å
蚌æãç°¡åã«è¡ããçµç¹ã® + ã€ã³ãã©ãããå
ã§ã¯åœ¹ã«ç«ã€ãããããŸããã</p> + + + <h4><a name="certificatemanagement" id="certificatemanagement">蚌ææžç®¡ç</a></h4> + + <p>èªèšŒå±ã®éèšã¯åŸ¹åºãã管çãæè¡ãéçšã®äœå¶ãå¿
èŠãšãã + 責任ã®ããä»äºã§ãã + èªèšŒå±ã¯èšŒææžãçºè¡ããã ãã§ãªãã + 管çãããªããã°ãªããŸããã + å
·äœçã«ã¯ã蚌ææžããã€ãŸã§æå¹ã§ããç¶ãããã決å®ããæŽæ°ãã + ãŸãéå»çºè¡ãããŠå€±å¹ãã蚌ææžã®ãªã¹ã + (Certificate Revocation Lists ãŸã㯠CRL) + ã管çããªããã°ãããŸããã</p> + + <p>äŸãã°ã¢ãªã¹ãéå»ãäŒç€Ÿã®ç€Ÿå¡ã§ããããšã蚌æãã蚌ææžãæã£ãŠãããã + çŸåšã¯éè·ããŠããéããã®èšŒææžã¯å€±å¹ãããªããã°ãªããŸããã + 蚌ææžã¯æ¬¡ã
ãšäººã«æž¡ãããŠãããã®ãªã®ã§ã + 蚌ææžãã®ãã®ããããããåãæ¶ããããå€æããããšã¯ + äžå¯èœã§ãã + ãã£ãŠã蚌ææžã®æå¹æ§ã調ã¹ããšãã«ã¯ã + èªèšŒå±ã«é£çµ¡ã㊠CRL ãç
§åããå¿
èŠããããŸãã + æ®éãã®éçšã¯èªååãããŠãããã®ã§ã¯ãããŸããã</p> + + <div class="note"><h3>泚æ</h3> + <p>ãã©ãŠã¶ã«ä¿¡çšã§ããèªèšŒå±ãšããŠããã©ã«ãã§ç»é²ãããŠããªã + èªèšŒå±ã䜿ãããšããå Žåã + èªèšŒå±ã®èšŒææžããã©ãŠã¶ã«èªã¿èŸŒãã§ã + ãã©ãŠã¶ããã®èªèšŒå±ã«ãã£ãŠçœ²åããããµãŒãã®èšŒææžã + æå¹ã«ããå¿
èŠããããŸãã + äžåºŠèªã¿èŸŒãŸãããšããã®èªèšŒå±ã«ãã£ãŠçœ²åãããå
šãŠã® + 蚌ææžãåãå
¥ãããããå±éºã䌎ããŸãã</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="ssl" id="ssl">Secure Sockets Layer (SSL)</a></h2> + +<p>Secure Sockets Layer ãããã³ã«ã¯ä¿¡é Œæ§ã®ããã³ãã¯ã·ã§ã³åã® +ãããã¯ãŒã¯å±€ã®ãããã³ã«(äŸãã°ãTCP/IP)ãš +ã¢ããªã±ãŒã·ã§ã³å±€ã®ãããã³ã«(äŸãã°ãHTTP) +ã®éã«çœ®ãããšãã§ããŸãã +SSL ã¯ãçžäºèªèšŒã«ãã£ãŠãµãŒããšã¯ã©ã€ã¢ã³ãéã®å®å
šãªéä¿¡ãã +é»å眲åã«ãã£ãŠããŒã¿ã®å®å
šæ§ãã +ãããŠæå·åã«ãã£ãŠãã©ã€ãã·ãæäŸããŸãã</p> + +<p>SSL ãããã³ã«ã¯æå·åããã€ãžã§ã¹ããé»å眲åã«ã€ããŠã +æ§ã
ãªã¢ã«ãŽãªãºã ããµããŒãããããã«ã§ããŠããŸãã +ããããããšã§ãæ³ã茞åºã®èŠå¶ãèæ
®ã«å
¥ããŠããµãŒãã«åããã +ã¢ã«ãŽãªãºã ãéžã¶ããšãã§ãããŸããæ°ããã¢ã«ãŽãªãºã ã +å©çšããŠããããšãå¯èœã«ããŠããŸãã +ã¢ã«ãŽãªãºã ã®éžæã¯ãããã³ã«ã»ãã·ã§ã³éå§æã« +ãµãŒããšã¯ã©ã€ã¢ã³ãéã§åã決ããããŸãã</p> + +<h3><a name="table4" id="table4">è¡š4: SSL ãããã³ã«ã®ããŒãžã§ã³</a></h3> + + <table class="bordered"> + + <tr><th>ããŒãžã§ã³</th> + <th>åºå
ž</th> + <th>説æ</th> + <th>ãã©ãŠã¶ã®ãµããŒã</th></tr> + <tr><td>SSL v2.0</td> + <td>Vendor Standard (Netscape Corp. ãã) [<a href="#SSL2">SSL2</a>]</td> + <td>å®è£
ãçŸåããåããŠã® SSL ãããã³ã«</td> + <td>- NS Navigator 1.x/2.x<br /> + - MS IE 3.x<br /> + - Lynx/2.8+OpenSSL</td></tr> + <tr><td>SSL v3.0</td> + <td>Expired Internet Draft (Netscape Corp. ãã) [<a href="#SSL3">SSL3</a>]</td> + <td>ç¹å®ã®ã»ãã¥ãªãã£æ»æãé²ãããã®æ¹èšã + éRSA æå·ã®è¿œå ã蚌ææžéå±€æ§é ã®ãµããŒã</td> + <td>- NS Navigator 2.x/3.x/4.x<br /> + - MS IE 3.x/4.x<br /> + - Lynx/2.8+OpenSSL</td></tr> + <tr><td>TLS v1.0</td> + <td>Proposed Internet Standard (IETF ãã) [<a href="#TLS1">TLS1</a>]</td> + <td>MAC ã¬ã€ã€ã HMAC ãžæŽæ°ããããã¯æå·ã® block + paddingãã¡ãã»ãŒãžé åºã®æšæºåãèŠåæã®å
å®ãªã©ã®ãã + SSL 3.0 ãæ¹èšã</td> + <td>- Lynx/2.8+OpenSSL</td></tr> + </table> + + +<p><a href="#table4">è¡š4</a>ã«ç€ºããããšãããSSL ãããã³ã«ã«ã¯ +ããã€ãã®ããŒãžã§ã³ããããŸãã +è¡šã«ãæžãããŠããããã«ãSSL 3.0 ã®å©ç¹ã®äžã€ã¯ +蚌ææžéå±€æ§é ããµããŒãããããšã§ãã +ãã®æ©èœã«ãã£ãŠããµãŒãã¯èªåã®èšŒææžã«å ããŠã +çºè¡è
ã®èšŒææžããã©ãŠã¶ã«æž¡ãããšãã§ããŸãã +蚌ææžéå±€æ§é ã«ãã£ãŠã +ãã©ãŠã¶ã«çºè¡è
ã®èšŒææžãçŽæ¥ç»é²ãããŠããªããŠãã +éå±€ã®äžã«å«ãŸããŠããã°ã +ãã©ãŠã¶ã¯ãµãŒãã®èšŒææžãæå¹åããããšãã§ããŸãã +SSL 3.0 ã¯çŸåš Internet Engineering Task Force (IETF) +ã«ãã£ãŠéçºãããŠãã Transport Layer Security +[<a href="#TLS1">TLS</a>] ãããã³ã«æšæºèŠæ Œã®åºç€ãšãªã£ãŠããŸãã</p> + +<h3><a name="session" id="session">ã»ãã·ã§ã³ã®ç¢ºç«</a></h3> + + <p><a href="#figure1">å³1</a>ã§ç€ºãããããã«ã + ã»ãã·ã§ã³ã®ç¢ºç«ã¯ã¯ã©ã€ã¢ã³ããšãµãŒãéã® + ãã³ãã·ã§ãŒã¯ã·ãŒã¯ãšã³ã¹ã«ãã£ãŠè¡ãªãããŸãã + ãµãŒãã蚌ææžãæäŸããããã¯ã©ã€ã¢ã³ãã®èšŒææžããªã¯ãšã¹ãããã + ãšãããµãŒãã®èšå®ã«ããããã®ã·ãŒã¯ãšã³ã¹ã¯ç°ãªããã®ãšãªããŸãã + æå·æ
å ±ã®ç®¡çã®ããã«ãè¿œå ã®ãã³ãã·ã§ãŒã¯éçšãå¿
èŠã«ãªã + å ŽåããããŸããããã®èšäºã§ã¯ + ããããã·ããªãªãæçã«èª¬æããŸãã + å
šãŠã®å¯èœæ§ã«ã€ãã¯ãSSL ä»æ§æžãåç
§ããŠãã ããã</p> + + <div class="note"><h3>泚æ</h3> + <p>äžåºŠ SSL ã»ãã·ã§ã³ã確ç«ãããšãã»ãã·ã§ã³ãåå©çšããããšã§ã + ã»ãã·ã§ã³ãéå§ããããã®å€ãã®éçšãç¹°ãè¿ããšãã + ããã©ãŒãã³ã¹ã®æ倱ãé²ããŸãã + ãã®ããããµãŒãã¯å
šãŠã®ã»ãã·ã§ã³ã«äžæãªã»ãã·ã§ã³èå¥åã + å²ãåœãŠããµãŒãã«ãã£ãã·ã¥ããã¯ã©ã€ã¢ã³ãã¯æ¬¡åãã + (èå¥åããµãŒãã®ãã£ãã·ã¥ã§æéåãã«ãªããŸã§ã¯) + ãã³ãã·ã§ãŒã¯ãªãã§æ¥ç¶ããããšãã§ããŸãã</p> + </div> + + <p class="figure"> + <img src="../images/ssl_intro_fig1.gif" alt="" width="423" height="327" /><br /> + <a id="figure1" name="figure1"><dfn>å³1</dfn></a>: SSL + ãã³ãã·ã§ãŒã¯ã·ãŒã¯ãšã³ã¹æŠç¥</p> + + <p>ãµãŒããšã¯ã©ã€ã¢ã³ãã§äœ¿ããã + ãã³ãã·ã§ãŒã¯ã·ãŒã¯ãšã³ã¹ã®èŠçŽ ã以äžã«ç€ºããŸã:</p> + + <ol> + <li>ããŒã¿éä¿¡ã«äœ¿ãããæå·ã¹ã€ãŒãã®åã決ã</li> + <li>ã¯ã©ã€ã¢ã³ããšãµãŒãéã§ã®ã»ãã·ã§ã³éµã®ç¢ºç«ãšå
±æ</li> + <li>ãªãã·ã§ã³ãšããŠãã¯ã©ã€ã¢ã³ãã«å¯ŸãããµãŒãã®èªèšŒ</li> + <li>ãªãã·ã§ã³ãšããŠããµãŒãã«å¯Ÿããã¯ã©ã€ã¢ã³ãã®èªèšŒ</li> + </ol> + + <p>第äžã¹ãããã®æå·ã¹ã€ãŒãåã決ãã«ãã£ãŠã + ãµãŒããšã¯ã©ã€ã¢ã³ãã¯ããããã«ãã£ã + æå·ã¹ã€ãŒããéžã¶ããšãã§ããŸãã + SSL3.0 ãããã³ã«ã®ä»æ§æžã¯ 31 ã®æå·ã¹ã€ãŒããå®çŸ©ããŠããŸãã + æå·ã¹ã€ãŒãã¯ä»¥äžã®ã³ã³ããŒãã³ãã«ããå®çŸ©ãããŠããŸã:</p> + + <ul> + <li>éµã®äº€ææ段</li> + <li>ããŒã¿éä¿¡ã®æå·è¡</li> + <li>Message Authentication Code (MAC) äœæã®ããã® + ã¡ãã»ãŒãžãã€ãžã§ã¹ã</li> + </ul> + + <p>ãããã®äžã€ã®èŠçŽ ã¯ä»¥äžã®ã»ã¯ã·ã§ã³ã§èª¬æãããŠããŸãã</p> + + +<h3><a name="keyexchange" id="keyexchange">éµã®äº€ææ段</a></h3> + + <p>éµã®äº€ææ段ã¯ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿éä¿¡ã«äœ¿ããã + å
±æããã察称æå·éµãã©ã®ããã«ãã¯ã©ã€ã¢ã³ããšãµãŒã㧠+ åã決ããããå®çŸ©ããŸãã + SSL 2.0 㯠RSA éµäº€æãã䜿ããŸãããã + SSL 3.0 㯠(蚌ææžã䜿ããããšãã®) RSA éµäº€æãã + (蚌ææžç¡ãã®å Žåãã¯ã©ã€ã¢ã³ããšãµãŒãã®äºåã®éä¿¡ãç¡ãå Žåã®) + Diffie-Hellman éµäº€æ + ãªã©æ§ã
ãªéµäº€æã¢ã«ãŽãªãºã ããµããŒãããŸãã</p> + + <p>éµã®äº€ææ¹æ³ã«ãããäžã€ã®éžæè¢ã¯é»å眲åã§ãã + é»å眲åã䜿ããã©ããããŸãã + ã©ã®çš®é¡ã®çœ²åã䜿ãããšããéžæããããŸãã + ç§å¯éµã§çœ²åããããšã§å
±æéµãä¿è·ããæ
å ±äº€æããæã® + ãã³ã»ã€ã³ã»ã¶ã»ããã«æ»æãé²ãããšãã§ããŸãã + [<a href="#AC96">AC96</a>, p516]</p> + + +<h3><a name="ciphertransfer" id="ciphertransfer">ããŒã¿éä¿¡ã®æå·è¡</a></h3> + + <p>SSL ã¯ã»ãã·ã§ã³ã®ã¡ãã»ãŒãžã®æå·åã«åè¿°ãã + 察称æå·æ¹åŒãçšããŸãã + æå·åããªããšããéžæè¢ãå«ãä¹ã€ã®æå·æ¹åŒã®éžæè¢ããããŸã:</p> + + <ul> + <li>æå·åãªã</li> + <li>ã¹ããªãŒã æå· + <ul> + <li>40-bit éµã§ã® RC4</li> + <li>128-bit éµã§ã® RC4</li> + </ul></li> + <li>CBC ãããã¯æå· + <ul><li>40 bit éµã§ã® RC2</li> + <li>40 bit éµã§ã® DES</li> + <li>56 bit éµã§ã® DES</li> + <li>168 bit éµã§ã® Triple-DES</li> + <li>Idea (128 bit éµ)</li> + <li>Fortezza (96 bit éµ)</li> + </ul></li> + </ul> + + <p>CBC ãšã¯æå·ãããã¯é£é (Cipher Block Chaining) + ã®ç¥ã§ãäžã€åã®æå·åãããæå·æã®äžéšã + ãããã¯ã®æå·åã«äœ¿ãããããšãæå³ããŸãã + DES ã¯ããŒã¿æå·åæšæºèŠæ Œ (Data Encryption Standard) + [<a href="#AC96">AC96</a>, ch12] ã®ç¥ã§ã + DES40 ã 3DES_EDE ãå«ãããã€ãã®çš®é¡ããããŸãã + Idea ã¯çŸåšæé«ãªãã®ã®äžã€ã§ãæå·è¡çã«ã¯çŸåšããäžã§ + æã匷åãªãã®ã§ãã + RC2 㯠RSA DSI ã«ããç¬å çãªã¢ã«ãŽãªãºã ã§ãã + [<a href="#AC96">AC96</a>, + ch13]</p> + + +<h3><a name="digestfuntion" id="digestfuntion">ãã€ãžã§ã¹ãé¢æ°</a></h3> + + <p> + ãã€ãžã§ã¹ãé¢æ°ã®éžæã¯ã¬ã³ãŒããŠãããããã©ã®ããã«ãã€ãžã§ã¹ããçæããããã決å®ããŸãã + SSL ã¯ä»¥äžããµããŒãããŸã:</p> + + <ul> + <li>ãã€ãžã§ã¹ããªã</li> + <li>MD5 (128-bit ããã·ã¥)</li> + <li>Secure Hash Algorithm (SHA-1) (160-bit ããã·ã¥)</li> + </ul> + + <p>ã¡ãã»ãŒãžãã€ãžã§ã¹ã㯠Message Authentication Code (MAC) + ã®çæã«äœ¿ãããã¡ãã»ãŒãžãšå
±ã«æå·åãããã¡ãã»ãŒãžã®ä¿¡ææ§ã + 確èªãããªãã¬ã€æ»æãé²ããŸãã</p> + + +<h3><a name="handshake" id="handshake">ãã³ãã·ã§ãŒã¯ã·ãŒã¯ãšã³ã¹ãããã³ã«</a></h3> + + <p>ãã³ãã·ã§ãŒã¯ã·ãŒã¯ãšã³ã¹ã¯äžã€ã®ãããã³ã«ã䜿ããŸã:</p> + + <ul> + <li><dfn>SSL ãã³ãã·ã§ãŒã¯ãããã³ã«</dfn>㯠+ ã¯ã©ã€ã¢ã³ããšãµãŒãéã§ã® SSL ã»ãã·ã§ã³ã®ç¢ºç«ã«äœ¿ãããŸãã</li> + <li><dfn>SSL æå·ä»æ§å€æŽãããã³ã«</dfn>㯠+ ã»ãã·ã§ã³ã§ã®æå·ã¹ã€ãŒãã®åã決ãã«äœ¿ãããŸãã</li> + <li><dfn>SSL èŠåãããã³ã«</dfn>㯠+ ã¯ã©ã€ã¢ã³ããµãŒãé㧠SSL ãšã©ãŒãäŒéããã®ã«äœ¿ãããŸãã</li> + </ul> + + <p>äžã€ã®ãããã³ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãããã³ã«ããŒã¿ãšãšãã«ã + <a href="#figure2">å³2</a>ã«ç€ºããšãã <dfn>SSL ã¬ã³ãŒããããã³ã«</dfn> + ã§ã«ãã»ã«åãããŸãã + ã«ãã»ã«åããããããã³ã«ã¯ããŒã¿ãæ€æ»ããªã + äžå±€ã®ãããã³ã«ã«ãã£ãŠããŒã¿ãšããŠäŒéãããŸãã + ã«ãã»ã«åããããããã³ã«ã¯äžå±€ã®ãããã³ã«ã«é¢ããŠäžåé¢ç¥ããŸããã</p> + + <p class="figure"> + <img src="../images/ssl_intro_fig2.gif" alt="" width="428" height="217" /><br /> + <a id="figure2" name="figure2"><dfn>å³2</dfn></a>: SSL ãããã³ã«ã¹ã¿ã㯠+ </p> + + <p> + ã¬ã³ãŒããããã³ã«ã§ SSL ã³ã³ãããŒã«ãããã³ã«ãã«ãã»ã«åãããŠãããšããããšã¯ã + ã¢ã¯ãã£ããªã»ãã·ã§ã³äžã§åããŽã·ãšãŒã·ã§ã³ããããšãã«ãã + ã³ã³ãããŒã«ãããã³ã«ã¯å®å
šã§ããããšãæå³ããŸãã + æ¢åã®ã»ãã·ã§ã³ãç¡ãå Žåã¯ãNull æå·ã¹ã€ãŒãã䜿ããã + æå·åã¯è¡ãªããããã»ãã·ã§ã³ã確ç«ãããŸã§ã¯ + ãã€ãžã§ã¹ããç¡ãç¶æ
ãšãªããŸãã</p> + + +<h3><a name="datatransfer" id="datatransfer">ããŒã¿éä¿¡</a></h3> + + <p><a href="#figure3">å³3</a>ã«ç€ºããã SSL ã¬ã³ãŒããããã³ã« + ã¯ã¯ã©ã€ã¢ã³ããšãµãŒãéã®ã¢ããªã±ãŒã·ã§ã³ã + SSL ã³ã³ãããŒã«ããŒã¿ã®éä¿¡ã«äœ¿ãããŸãã + å¿
èŠã«å¿ããŠãã®ããŒã¿ã¯ããå°ãããŠãããã«åãããããã + ããã€ãã®é«çŽãããã³ã«ããŸãšããŠäžãŠããããšããŠéä¿¡ã + è¡ãªãããããšããããŸãã + ããŒã¿ãå§çž®ãããã€ãžã§ã¹ã眲åãæ·»ä»ããŠã + ãããã®ãŠããããæå·åããã®ã¡ãããŒã¹ãšãªã£ãŠãã + ä¿¡é Œæ§ã®ãããã©ã³ã¹ããŒããããã³ã«ãçšãããããããŸããã + (泚æ: çŸåšã¡ãžã£ãŒãª SLL å®è£
ã§å§çž®ããµããŒãããŠãããã®ã¯ãããŸãã)</p> + + <p class="figure"> + <img src="../images/ssl_intro_fig3.gif" alt="" width="423" height="323" /><br /> + <a id="figure3" name="figure3"><dfn>å³ 3</dfn></a>: SSL ã¬ã³ãŒããããã³ã« + </p> + + +<h3><a name="securehttp" id="securehttp">HTTP éä¿¡ã®å®å
šå</a></h3> + + <p>ãããã SSL ã®äœ¿ãæ¹ã¯ãã©ãŠã¶ãšãŠã§ããµãŒãéã® HTTP éä¿¡ + ã®å®å
šåã§ãã + ããã¯ãåŸæ¥ã®å®å
šã§ã¯ãªã HTTP ã®äœ¿çšãé€å€ãããã®ã§ã¯ãããŸããã + å®å
šåããããã® (HTTPS ãšåŒã°ããŸã) ã¯ãSSL äžã§ã®æ®éã® HTTP ã§ã + URL ã¹ããŒã ã« <code>http</code> ã®ä»£ããã« <code>https</code> + ãçšãããµãŒãã§å¥ã®ããŒãã䜿ãããšã§ã (ããã©ã«ãã§ã¯443)ã + ããã䞻㫠<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ã Apache + ãŠã§ããµãŒãã«æäŸããæ©èœã§ãã</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="references" id="references">åèæç®</a></h2> + +<dl> +<dt><a id="AC96" name="AC96">[AC96]</a></dt> +<dd>Bruce Schneier, <q>Applied Cryptography</q>, 2nd Edition, Wiley, +1996. See <a href="http://www.counterpane.com/">http://www.counterpane.com/</a> for various other materials by Bruce +Schneier.</dd> + +<dt><a id="X208" name="X208">[X208]</a></dt> +<dd>ITU-T Recommendation X.208, <q>Specification of Abstract Syntax Notation +One (ASN.1)</q>, 1988. See for instance <a href="http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-X.208-198811-I">http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-X.208-198811-I</a>. +</dd> + +<dt><a id="X509" name="X509">[X509]</a></dt> +<dd>ITU-T Recommendation X.509, <q>The Directory - Authentication +Framework</q>. See for instance <a href="http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-X.509">http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-X.509</a>. +</dd> + +<dt><a id="PKCS" name="PKCS">[PKCS]</a></dt> +<dd><q>Public Key Cryptography Standards (PKCS)</q>, +RSA Laboratories Technical Notes, See <a href="http://www.rsasecurity.com/rsalabs/pkcs/">http://www.rsasecurity.com/rsalabs/pkcs/</a>.</dd> + +<dt><a id="MIME" name="MIME">[MIME]</a></dt> +<dd>N. Freed, N. Borenstein, <q>Multipurpose Internet Mail Extensions +(MIME) Part One: Format of Internet Message Bodies</q>, RFC2045. +See for instance <a href="http://ietf.org/rfc/rfc2045.txt">http://ietf.org/rfc/rfc2045.txt</a>.</dd> + +<dt><a id="SSL2" name="SSL2">[SSL2]</a></dt> +<dd>Kipp E.B. Hickman, <q>The SSL Protocol</q>, 1995. See <a href="http://www.netscape.com/eng/security/SSL_2.html">http://www.netscape.com/eng/security/SSL_2.html</a>.</dd> + +<dt><a id="SSL3" name="SSL3">[SSL3]</a></dt> +<dd>Alan O. Freier, Philip Karlton, Paul C. Kocher, <q>The SSL Protocol +Version 3.0</q>, 1996. See <a href="http://www.netscape.com/eng/ssl3/draft302.txt">http://www.netscape.com/eng/ssl3/draft302.txt</a>.</dd> + +<dt><a id="TLS1" name="TLS1">[TLS1]</a></dt> +<dd>Tim Dierks, Christopher Allen, <q>The TLS Protocol Version 1.0</q>, +1999. See <a href="http://ietf.org/rfc/rfc2246.txt">http://ietf.org/rfc/rfc2246.txt</a>.</dd> +</dl> +</div></div> +<div class="bottomlang"> +<p><span>翻蚳æžã¿èšèª: </span><a href="../en/ssl/ssl_intro.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/ssl/ssl_intro.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/ssl/ssl_intro.html" title="Japanese"> ja </a></p> +</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">ã³ã¡ã³ã</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_intro.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2019 The Apache Software Foundation.<br />ãã®ææžã¯ <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> ã®ã©ã€ã»ã³ã¹ã§æäŸãããŠããŸãã.</p> +<p class="menu"><a href="../mod/">ã¢ãžã¥ãŒã«</a> | <a href="../mod/directives.html">ãã£ã¬ã¯ãã£ã</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">çšèª</a> | <a href="../sitemap.html">ãµã€ãããã</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file |