ref: http://www.ianmiller.net/article.php?id=13
Ha pasado ya mucho tiempo desde que no escribo en mi blog y quisiera hacerlo con un clásico, Apache2, pero esta vez con ssl que es más interesante. He seguido links de arriba y lo he configurado correctamente a excepción de 2 errores que tuve que solucionar en la marcha.
Instalamos el servidor de apache2
$ apt-get install apache2
Al instalarse apache2, se intenta levantar el servicio pero nos muestra este error:
Configurando apache2-mpm-worker (2.2.20-1ubuntu1.1) ...
Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]</pre>
Para solucionarlo editamos el fichero de configuración y añadirmos el ServerName
<pre class="brush:bash; gutter: true; showControls: true;">$ sudo gedit /etc/apache2/httpd.conf
ServerName www.haelsite.es
$ sudo /etc/init.d/apache2 restart</pre>
Modificamos el fichero httpd.conf de la configuración para añadir nuestro servidor
<pre class="brush:bash; gutter: true; showControls: true;">$ sudo gedit /etc/apache2/httpd.conf
ServerName www.haelsite.com</pre>
Una vez hecho esto, ya podemos levantar apache2 otra vez:
<pre class="brush:bash; gutter: true; showControls: true;">$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 ... waiting . [ OK ]</pre>
Pero para que en el navegador reconozca nuestras url debemos añadir esto en el /etc/hosts y añadir mi ip
<pre class="brush:bash; gutter: true; showControls: true;">127.0.0.1 www.haelsite.es
127.0.0.1 haelsite.es
127.0.0.1 localhost</pre>
<pre class="brush:bash; gutter: true; showControls: true;">En /var/www estará alojada nuestra web: index.html</pre>
Para arrancar apache2 en el inicio del pc para siempre:
<pre class="brush:bash; gutter: true; showControls: true;">$ update-rc.d apache2 defaults</pre>
Una vez que hemos hechos esto en el navegador ya podemos escribir:
<pre class="brush:bash; gutter: true; showControls: true;">http://www.haelsite.es/</pre>
Nos debe aparecer un mensaje como este:
<pre class="brush:bash; gutter: true; showControls: true;">It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.</pre>
Si nos muestra este error al editar el httpd.conf debemos ejecurlo NO COMO ROOT:
<pre class="brush:bash; gutter: true; showControls: true;">$ gedit /etc/apache2/httpd.conf
(gedit:8781): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported
$ exit
$ sudo gedit /etc/apache2/httpd.conf
</pre>
Ahora vamos a crear una página https://segura.haelsite.es con un certificado ssl. Si no encontramos la herramienta apache2-ssl-certificate lo haremos a mano:
Si aparece un mensaje avisándonos de que ha sido imposible encontrar el comando, es debido a un fallo en el instalador de apache que podemos solventar, o bien actualizando apache a una versión más actual que resuelva el fallo(este fallo lo da en instalaciones de 32bits y no en las de 64 debido a que está incluido en el apache2-common de amd64) o bien creándolo a mano con las siguientes instrucciones:
<pre class="brush:bash; gutter: true; showControls: true;">$ mkdir /etc/apache2/ssl
$ /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf (continúa) /etc/apache2/ssl/apache.pem</pre>
Hay que ir respondiendo a las sencillas preguntas que nos van apareciendo. (en nuestro caso el servidor se llama segura.haelsite.es.
Tan solo tendremos que responder a algunas preguntas sencillas sobre nuestra ubicación geográfica y el nombre de nuestra organización.
Después de la ejecución de comando apache2-ssl-certificate, se habrá generado el archivo /etc/apache2/ssl/apache.pem que contiene la claves que permitirán al servidor utilizar cifrado asimétrico. El siguiente paso será configurar un servidor virtual para que utilice dicho certificado.
Creamos en /var/www una carpeta que será la que se cargue cuando se entra en https://segura.haelsite.es
Primero añadimos en /etc/hosts la nueva ruta:
<pre class="brush:bash; gutter: true; showControls: true;">127.0.0.1 segura.haelsite.es</pre>
Tenemos que habilitar el puerto 443, editamos el fichero /etc/apache2/ports.conf
<pre class="brush:bash; gutter: true; showControls: true;">// Habilitar puerto 443. Añadir en /etc/apache2/ports.conf
Listen 443</pre>
En mi caso, al añadir esta línea mi fichero queda así pero vemos que ya está el puerto 443 habilitado cuando está presente el módulo SSL.
<pre class="brush:bash; gutter: true; showControls: true;">$ cat /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
Listen 80
#Listen 443 <---- AL FINAL HE COMENTADO ESTA LÍNEA
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443 <---- SI ESTÁ ACTIVO SSL SE ESCUCHA POR EL 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule></pre>
Ahora modificamos el fichero /etc/apache2/sites-available/default:
<pre class="brush:bash; gutter: true; showControls: true;">$ cat /etc/apache2/sites-enabled/000-default
# Añadir al principio en /etc/apache2/sites-available/default
NameVirtualHost segura.haelsite.es:443
# Añadir al final en /etc/apache2/sites-available/default
<VirtualHost segura.haelsite.es:443>
ServerName segura.haelsite.es
DocumentRoot /var/www/segura
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<Directory "/var/www/segura">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
SSLRequireSSL
</Directory>
</pre>
Cargamos el moulo ssl de apache:
<pre class="brush:bash; gutter: true; showControls: true;">$ sudo a2enmod ssl</pre>
Debemos crear la página segura:
<pre class="brush:bash; gutter: true; showControls: true;">$ cd /var/www
$ mkdir segura
$ cp /var/www/index.html /var/www/segura/index.html
</pre>
Para asegurarnos de que funciona podemos reiniciar el servidor:
<pre class="brush:bash; gutter: true; showControls: true;"># sudo /etc/init.d/apache2 restart</pre>
Al acceder a la web https://segura.haelsite.es debemos aceptar el certificado.
Debemos aceptarlo ya que lo hemos generado nosotros y a pesar de no estar creado por una Autoridad Certificadora es de confianza ya que es nuestro.
No hay comentarios:
Publicar un comentario