• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Blog Gabriel de Bonis

Web Developer, Qlik, Freelancer, IOS & Android Developer

  • Servidores
  • Programación Web
  • Tecnología
  • SharePoint
  • Podcast Bonistir
  • Tecno Arcade

Certificado SSL en Servidor Web

17/10/2013 by Gabriel Deja un comentario

En este post voy a detallar como crear un certificado SSL en Ubuntu Server, como enviarlo a una entidad certificadora y como configurar servidor virtual en Apache con el certificado firmado.

Lo primero que tenemos que hacer si no lo tenemos ya habilitado, es habilitar el módulo SSL en Ubuntu Server.  Esto se hace facilmente ejecutando en un terminal el siguiente comando:

sudo a2enmod ssl

Reinicia el servidor para que los cambios tengan efecto:

sudo /etc/init.d/apache2 restart

Ahora toca crear nuestro certificado digital. Para ello y valiéndonos de la estupenda herramienta openssl que viene instalada en Ubuntu Server, nos creamos nuestra clave RSA de 2048 Bit:

openssl genrsa -out elnombrequequieras.key 2048

Ahora generamos la solicitud del certficado CSR para luego mandarla a una entidad certificadora:

openssl req -new -key tukeygenerada.key -out elnombrequequieras.csr

Aquí hay que tener un poco de cuidado al cumplimentar los datos de la solicitud del certificado si luego lo queremos enviar a una entidad certificadora.

Aquí teneis un ejemplo:

Country name: ES (es el codigo del pais de dos dígitos)

State or province: Alicante (nombre completo)

Locality Name: Torrevieja (nombre completo)

Organization name: (el nombre de tu organización)

Organizational Unit name: (lo mismo que antes)

Common name: www.tuweb.com (Es el nombre de de tu web donde se va a instalar el certificado. Muy importante este campo para la validación de la entidad certificadora)

Email Address: Tu email (muy importante este campo para la validación de la entidad certificadora)

Una vez hecho esto tienes 2 posibilidades. Mandar el certificado que has creado a una entidad certificadora o firmarlo tu mismo. La ventaja de mandarlo a una entidad certificadora es que no sale la pantalla de aviso de conexion no verificada, que puede espantar a un visitante no experto:

2011-10-19-09-09-25-5809bb

Si no quieres gastar dinero puedes firmarlo tu mismo con el siguiente comando:

openssl x509 -req -days 365 -in tusolicitudgenerada.csr -signkey tukeygenerada.key -out tucertificado.crt

En mi caso busqué una entidad certificadora que fuese lo mas compatible posible con todos los navegadores web y que a la vez sea muy barata. Aquí hay de todo y de muchos precios y caracteristicas, las mas famosas son Verisign o Truste. En mi caso vi una super barata aquí por unos 5 euros al año que para lo que yo quiero me sobra:

http://www.dondominio.com/products/ssl/comodo-positive-ssl/

El proceso fue muy rápido y sencillo y el mismo dia me enviaron por email el certificado firmado y el certificado con la entidad intermediara. Es decir un fichero .crt y otro .ca-crt

Ahora ya solo queda copiar la clave y los certificados firmados a sus directorios correspondientes en el servidor y configurar un servidor virtual en Apache para que atienda las peticiones https y cifre las conexiones a la página.

Aquí tenes los comandos para copiar la clave y certificado en sus directorios corresponedientes del servidor y establecer los permisos en Ubuntu Server:

sudo mv tukeygenerada.key /etc/ssl/private
sudo mv tucertificadofirmado.crt /etc/ssl/certs/
sudo mv tucertificadofirmadointermediario.ca-crt /etc/ssl/certs/
sudo chown root:ssl-cert /etc/ssl/private/tukeygenerada.key 
sudo chmod 640 /etc/ssl/private/tukeygenerada.key
sudo chown root:root /etc/ssl/certs/tucertificadofirmadointermediario.ca-crt

Aqui tenéis un ejemplo de configuración de servidor virtual en Apache:

<VirtualHost *:80>
        ServerName www.tuweb.com
        RewriteEngine on
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [NC,R,L]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName www.tuweb.com
        DocumentRoot /var/www

        <Directory /var/www>
                DirectoryIndex index.php
                Options FollowSymLinks Multiviews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/tuweb.error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/tuweb.access.log combined

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/tucertificadofirmado.crt
        SSLCertificateKeyFile /etc/ssl/private/tukey.key
        SSLCertificateChainFile /etc/ssl/crt/tucertificadofirmadointermediario.ca-crt
</VirtualHost>
</IfModule>

Una vez reiniciado Apache puedes comprobar que el certificado esta configurado correctamente desde esta página:

http://www.sslshopper.com/ssl-checker.html

Otro punto importante es que si quieres tener multiples certificados SSL corriendo en un mismo servidor que atiende diferentes dominios con un única IP, se necesita añadir esta linea en el fichero de configuracion de Apache.

Es decir editas este fichero:

sudo vi /etc/apache2/ports.conf

Y añadir esta linea:

NameVirtualHost *:443

Comparte esto:

  • Haz clic para compartir en Facebook (Se abre en una ventana nueva) Facebook
  • Haz clic para compartir en X (Se abre en una ventana nueva) X
  • Haz clic para compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
  • Haz clic para compartir en Tumblr (Se abre en una ventana nueva) Tumblr
  • Haz clic para compartir en WhatsApp (Se abre en una ventana nueva) WhatsApp
  • Haz clic para compartir en Telegram (Se abre en una ventana nueva) Telegram

Me gusta esto:

Me gusta Cargando...

Publicado en: Programación Web, Servidores

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Tecno Arcade

Tecno Arcade

Tecno Arcade

Archivos

Feed RSS RSS: Entradas

Feed RSS RSS: Comentarios

Paginas

  • Política de Privacidad

Copyright © 2025 · Genesis Sample Theme on Genesis Framework · WordPress · Acceder

%d