1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
<?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="es" xml:lang="es"><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>Cómo Cifrar su Tráfico - Servidor HTTP Apache Versión 2.5</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/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p>
<p class="apache">Versión 2.5 del Servidor HTTP Apache</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/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <a href="./">How-To /
Tutoriales</a></div><div id="page-content"><div id="preamble"><h1>Cómo Cifrar su Tráfico</h1>
<div class="toplang">
<p><span>Idiomas disponibles: </span><a href="../en/howto/encrypt.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../es/howto/encrypt.html" title="Español"> es </a> |
<a href="../fr/howto/encrypt.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
</div>
<p>En esta guía se explica cómo hacer que su servidor Apache httpd
use un cifrado para transferir datos entre el servidor y sus visitantes.
En vez de usar enlaces http:, su sitio web usará https:,
si todo está configurado correctamente, toda persona que visite su web, tendrá
más privacidad y protección.
</p>
<p>
Este manual está pensado para aquellos que no están muy familiarizados con
SSL/TLS y cifrados, junto con toda la jerga técnica incomprensible (Estamos bromeando, este tema es bastante importante, con serios expertos en el tema, y problemas reales que resolver - pero sí, suena a jerga técnica incomprensible para todos aquellos que no hayan tratado con esto).
Personas que han escuchado que su servidor http: no es del todo seguro a día de hoy. Que los espías y los malos están escuchando. Que incluso las empresas legítimas están poniendo datos en sus páginas web y vendiendo perfiles de visitantes.
</p>
<p>
En esta guía nos centraremos en ayudarle a migrar su servidor httpd, para que deje de servir enlaces vía http: y los sirva vía https: sin necesidad de que te conviertas en un experto en SSL. Puede que te sientas fascinado con todas estas cosas de criptografía y estudies más sobre el tema y te conviertas en un experto de verdad. Pero también, puede que no esté ejecutando un servidor web razonablemente seguro, y haga otras cosas buenas para la humanidad con tu tiempo.
</p>
<p>
Obtendrá una idea aproximada de los roles, que estas cosas misteriosas denominadas "certificados" y el uso de "clave privada", como son usadas para que tus visitantes estén seguros de que contactan con tu servidor.
<em>No</em> se comentará en esta documentación <em>cómo</em> funciona esto,
sólo cómo es utilizado: básicamente trataremos los pasaportes.
</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#protocol">Pequeña introducción a los Certificados e.j: Pasaporte de Internet</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#buycert">Comprar un Certificado</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#freecert">Obtener un Certificado Gratuito</a></li>
</ul><h3>Consulte también</h3><ul class="seealso"><li><a href="../ssl/ssl_howto.html">SSL How-To</a></li><li><a href="../mod/mod_ssl.html">mod_ssl</a></li><li><a href="../mod/mod_md.html">mod_md</a></li><li><a href="#comments_section">Comentarios</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="protocol" id="protocol">Pequeña introducción a los Certificados e.j: Pasaporte de Internet</a> <a title="Enlace permanente" href="#protocol" class="permalink">¶</a></h2>
<p>
El protocolo TLS (anteriormente conocido como SSL) es una forma en la que el servidor y el cliente pueden intercambiar información sin que nadie más intercepte las comunicaciones. Es lo que nuestros navegadores entienden cuando abrimos un enlace <em>https</em>.
</p>
<p>
Adicionalmente para tener una conversación privada entre entre el servidor y el cliente, nuestro navegador también necesita saber que está hablando con el servidor legitimo, y no con otro que se esté haciendo pasar por él.
Esto, después del cifrado, es la otra parte del protocolo TLS.
</p>
<p>
Para que tu servidor pueda hacer esto, no sólo necesita el software para
TLS, ej.: el módulo <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>, si no también alguna prueba
de identidad en Internet. A esto nos referimos comúnmente como <em>certificado</em>.
Básicamente, todos tenemos el mismo <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> y con él, podemos
cifrar, pero solamente tú tienes <em>tu</em> certificado, y con él, tú eres tú.
Es decir es una prueba de identidad de quien es, en este caso, el servidor.
</p>
<p>
Un certificado es la equivalencia a un pasaporte. Contiene dos cosas:
Un sello de aprobación de la persona que ha expedido el pasaporte, y una referencia
a tus huellas digitales, ej.: Lo que se llama <em>clave privada</em> en términos de cifrado.
</p>
<p>
Cuando se configura Apache httpd para que use enlaces https, necesitas dotarlo de un certificado y su clave privada. Si esta clave privada no es desvelada
a nadie, sólo tú podrás probar que dicho certificado te pertenece. En ese sentido, un navegador hablando con el servidor por segunda vez, puede reconocer que es
sin duda el mismo servidor con el que se ha estado comunicando previamente.
</p>
<p>
Pero, ¿cómo se sabe que es un servidor legítimo la primera vez que se
comunica con alguien? Aquí es donde entra en juego el sello digital.
Este sello digital lo crea otra entidad o autoridad, utilizando su propia
clave privada. Esta entidad o autoridad, también tiene su propio certificado
ej.: su propio pasaporte. El navegador puede asegurarse de que este
pasaporte se basa en la misma clave que se usó para su sello digital.
Ahora, a parte de comprobar si el de nuestro servidor es correcto, también tiene
que asegurarse que el pasaporte de la entidad o autoridad del sello
de <em>nuestro</em> pasaporte es correcta.
</p>
<p>
Y ese pasaporte, también esta sellado digitalmente por otro con un certificado y una clave. Por lo que el navegador sólo tendrá que cerciorarse de que <em>ese</em> es un certificado correcto.
</p>
<p>
Y ese pasaporte, tendrá también un sello de identidad digital emitido por otro tercero con su clave y su certificado. Por lo tanto, el navegador sólo tendrá que cerciorarse que <em>ese</em> es el correcto, para confiar en el que ofrece nuestro servidor. Este juego de confianza puede llegar desde unos pocos a varios niveles (normalmente menos de 5).
</p>
<p>
Al final, el navegador va ha encontrarse con un certificado sellado con su propia clave. Es un certificado, que como diría Gloria Gaynor, dice "Soy lo que soy". El navegador entonces decidirá si confiar o no en él. Si no, su servidor no será de confianza. De lo contrario, lo será. Así de simple.
</p>
<p>
Esta comprobación de confianza para Gloria Gaynor en Internet, es fácil: tu navegador (o tu sistema operativo) vienen con una lista de pasaportes en los cuales confiar, es decir preinstalados. En caso de encontrar el certificado de Gloria en la lista, se confiará o no en él.
</p>
<p>
Todo esto funcionará correctamente siempre y cuando cada cual mantenga su clave privada para sí, y no la comparta ni publique.
Ya que cualquiera que obtenga dicha clave privada, puede suplantar a la entidad o persona propietaria de dicha clave. Y si el propietario de dicha clave puede firmar certificados (validarlos) el impostor también podrá hacer eso. Así que todos los pasaportes que haya sellado el impostor, serán 100% válidos, e indistinguibles de los reales.
</p>
<p>
Este modelo funciona, pero tiene sus limitaciones. Es por eso que los desarrolladores de los navegadores están tan interesados en tener una lista con la correcta Gloria Gaynor, y amenazan con expulsar a cualquiera que sea descuidado con su clave.
</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="buycert" id="buycert">Comprar un Certificado</a> <a title="Enlace permanente" href="#buycert" class="permalink">¶</a></h2>
<p>
Puedes comprar uno. Hay muchas compañías vendiendo pasaportes de
Internet (certificados) como servicio. En <a href="https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReport">esta lista de Mozilla,</a> podrás encontrar todas las compañías en las que el navegador Firefox confía. Escoge una, visita su página web y te dirán los diferentes precios, y cómo hacer para demostrar que eres quien dices ser, y así podrán marcar tu certificado con un sello de confianza.
</p>
<p>
Todos tienen sus propios métodos,también dependiendo de qué tipo de pasaporte pidas, puedes configurarlo normalmente a base de clics en su web. Una vez que hayas terminado te enviarán un email con los pasos siguientes. Al fin y al cabo ellos te enseñarán como generar tu propio certificado, así como tu propia clave privada y ellos te expedirán un certificado sellado que coincida.
</p>
<p>Finalmente tendrás que poner tu clave en un fichero y tu certificado en otro. Ponerlos en tu servidor, cerciorarte de que solo un usuario de confianza tiene acceso a estos ficheros (comprobando los permisos), y que dicho usuario pueda añadirlo a la configuración de httpd. Todo esto se describe en <a href="../ssl/ssl_howto.html">SSL How-To</a>.
</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="freecert" id="freecert">Obtener un Certificado Gratuito</a> <a title="Enlace permanente" href="#freecert" class="permalink">¶</a></h2>
<p>
También hay compañías que ofrecen certificados para servidores web
totalmente gratuitos. La empresa pionera en esto es
<a href="https://letsencrypt.org">Let's Encrypt</a>que es un servicio de
la organización sin animo de lucro
<a href="https://www.abetterinternet.org/">Internet Security Research Group (ISRG)</a>,
para "reducir las barreras financieras, tecnológicas y educacionales para
securizar las comunicaciones en Internet"
</p>
<p>
No sólo ofrecen certificados, también han desarrollado una interfaz que
puede ser usada con tu Apache httpd para obtener un certificado. Es
aquí donde cabe mencionar a <code class="module"><a href="../mod/mod_md.html">mod_md</a></code>
</p>
<p>
(Puedes alejar el zoom y mirar cómo se configuran el módulo <code class="module"><a href="../mod/mod_md.html">mod_md</a></code> y
los <a href="https://httpd.apache.org/docs/2.4/vhosts/">hosts virtuales</a>...)
</p>
</div></div>
<div class="bottomlang">
<p><span>Idiomas disponibles: </span><a href="../en/howto/encrypt.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../es/howto/encrypt.html" title="Español"> es </a> |
<a href="../fr/howto/encrypt.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">Comentarios</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 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 Libera.chat, or sent to our <a href="https://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/trunk/howto/encrypt.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 2021 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>
|