Apache SSL Localhost

Sea por seguridad o imposición de google los sitios con certificado SSL son ya indispensables. Un entorno de desarrollo bajo HTTPS no suele ser necesario, aún así en cualquier caso, nos ayudará a cerciorarnos que el sitio esta programado adecuadamente para trabajar bajo el protocolo https.

Generar el certificado

Generar la llave

Crear una carpeta accesible llamada por ejemplo ssl en nuestra home

$ mkdir ssl
$ cd ssl
$ openssl genrsa -des3 -out serverSSL.key 2048

Te pedirá que añadas una contraseña.

Generar CSR

$ openssl req -new -key serverSSL.key -out serverSSL.csr
  • Entra la contraseña previamente creada.
  • Sigue el asistente y rellena los campos con lo que quieras, pero pon atención a los siguientes:

    Common Name el dominio que quieres usar, por ejemplo: localhost, ejemplo.com, server.dev o .server.dev Challenge pass* Lo puedes dejar en blanco.

Generar el certificado

$ openssl x509 -req -days 1825 -in serverSSL.csr -signkey serverSSL.key -out serverSSL.crt

Introduce nuevamente la contraseña.

Configurar Apache

Habilitar el modulo SSL de apache

$ sudo a2enmod ssl

Ejemplo Virtualhost

$ cd /etc/apache2/sites-enabled
$ touch server.dev.conf

<VirtualHost *:80>

  ServerName server.dev
  ServerAlias www.server.dev
  Redirect permanent / https://server.dev

</VirtualHost>

<VirtualHost *:443>

  ServerName server.dev
  ServerAlias www.server.dev

  DocumentRoot /var/www/www.server.dev

  <Directory /var/www/www.server.dev/public>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ## Logging
  ErrorLog /var/log/apache2/www.server.dev.log
  LogLevel warn
  ServerSignature Off
  CustomLog /var/log/apache2/www.server.dev.log combined

  ## SSL
  SSLEngine on
  SSLCertificateFile    /home/vagrant/ssl/serverSSL.crt
  SSLCertificateKeyFile /home/vagrant/ssl/serverSSL.key

</VirtualHost>

Habilitar el nuevo virtualhost y reinciar el servidor apache

$ sudo a2ensite server.dev.conf
$ sudo service apache2 restart

Desde el navegador vamos a https://www.server.dev y nos aparecerá una alerta de suguridad porque es un certificado auto-firmado. Aceptamos la excepción de seguridad. Et voilà! Ya tenemos nuestro sitio funcionando bajo SSL en un entorno de desarrollo local.


y para saber un poco más

  • Si buscàs un libro de referencia en castellano sobre apache tal vez te puede interesar Apache de Rich Bowen publicado por Anaya Multimedia/O´Reilly y que pudes comprar en amazon.

Comments

Alex
Molt útil i clar, merci!