Instalar certificado SSL en Apache

Instalar certificado SSL en Apache

Instalar certificado SSL en Apache

En esta entrada explicaré como instalar un certificado SSL en el servidor web Apache. Vamos a instalar un certificado emitido por una entidad certificadora gratuita, llamada Let’s Encrypt. El objetivo no es otro que ofrecer una página web a través del protocolo seguro de transferencia de hipertexto, conocido como Https.

Conceptos básicos

Aunque existe muchísima información al respecto, me gustaría explicar por encima algunos conceptos importantes, que ayuden a la comprensión del artículo.

En primer lugar, ¿qué es https? Https es un protocolo de aplicación, basado en el protocolo http, destinado a la transferencia segura de datos de hipertexto. En palabras llanas, es una versión segura de http.

La siguiente pregunta es, ¿cómo hacemos seguro http? La respuesta la encontramos en el propio título del artículo, utilizando un cifrado basado en la seguridad de textos conocido como SSL/TLS.  De esta forma crearemos un canal cifrado, cuyo nivel de cifrado dependerá del servidor remoto (en nuestro caso Apache) y del navegador utilizado por el cliente (debemos usar navegadores seguros).

Entonces, ¿qué es un certificado SSL? Deberíamos tener ya claro que un certificado SSL o certificado digital, sirve para que la comunicación entre el servidor y el cliente sea totalmente segura. Estos certificados constan de dos partes, una pública y una privada. A groso modo, la parte pública se encarga de cifrar la información y la privada de descifrarla. A continuación, podéis ver qué información adicional almacena un certificado.

Certificado digital

La última cuestión que nos queda por responder es, ¿quién emite un certificado y como lo obtengo? Únicamente puede emitir certificados una Autoridad de Certificación, conocida como CA por su acrónimo en inglés Certification Authority. Por suerte desde noviembre de 2014 existe una CA gratuita llamada Let’s Encrypt, abalada por los grandes de internet. Si sentís curiosidad entrar en su web, cuyo link está en la sección de referencias.

Instalar certificado SSL de Let’s Encrypt en Apache

Si no lo tenéis y queréis instalar Apache, ver la siguiente entrada Liferay Bundle Tomcat conectado con Apache, donde explico cómo instalar un servidor web Apache en un sistema operativo Linux.

Lo primero es entrar por ssh a vuestro servidor. Los comandos de shell utilizados en este artículo son para Debian, es relativamente fácil encontrar en la web su equivalente para CentOS u otra distribución Linux. Para conocer el sistema operativo de vuestro servidor usar el comando hostnamectl.

# hostnamectl

Es posible que vuestro sistema operativo incluya un paquete de letsencrypt, de ser así úsalo, de lo contrario debemos instalar un cliente git para descargarlo del repositorio oficial.

# apt-get install git

Ir a un directorio cualquiera:

# cd /home/debian

Clonamos el proyecto, nos ubicamos dentro del directorio creado y lanzamos el script de configuración.

# git clone https://github.com/letsencrypt/letsencrypt
# cd letencrypt
# ./letsencrypt-auto --help
# ./letsencrypt-auto --apache

Durante el proceso de configuración te solicitará el email y, si no está especificado, también el dominio. Debemos incluir los dominios separados por espacios o comas, os recomiendo incluir el dominio tanto con “www” como sin él. En mi caso quedaría así:

piensaenbinario.es www.piensaenbinario.es

Llegados a este punto ya tenemos el certificado correctamente instalado en nuestro servidor web, de aquí en adelante veremos cómo configurar un CMS concreto, WordPress, para funcionar bajo el protocolo https.

Configurar WordPress con HTTPS

El último paso independientemente a la configuración del servidor, es configurar nuestro WordPress para utilizar el protocolo https en vez del http. Lo primero será forzar el https tanto en el login como en la parte administrativa, para ello debemos modificar el fichero config.php añadiendo las siguientes líneas:

define(‘FORCE_SSL_LOGIN’, true);
define(‘’FORCE_SSL_ADMIN’, true);

A continuación, iremos a la sección Ajustes -> Generales, y cambiaremos las direcciones URL del sitio y de WordPress, de http a https. Es probable que esta acción nos saque del portal, no hay problema volvemos a entrar y listo.

Llegados a este punto es recomendable realizar un backup de la BBDD, podéis usar el mysqldump del propio MySql o alguna herramienta como Navicat o HeidiSQL, que utilicéis normalmente.

Este paso no tiene por qué ser necesario, sin embargo, es bastante probable que en algunas páginas nuestro navegador diga que la página no es segura, aunque se esté usando el protocolo https. Esto se debe a que quedan algunas imágenes o scripts de javascript, siguen utilizando el protocolo http, yo recomiendo instalar un plugin de WordPress llamado Really Simple SSL para que haga las redirecciones de las peticiones a estos recursos.

Si queréis comprobar que todo está configurado correctamente, podéis utilizar la página web de la sección de referencias “Comprobar certificado”. Únicamente debéis añadir la URL del portal y pasado un rato os dará el informe con su estado.

Referencias

Apache server

https://httpd.apache.org

Comprobar certificado

https://www.ssllabs.com/ssltest/analyze.html

HTTPS

https://es.wikipedia.org/wiki/Protocolo_seguro_de_transferencia_de_hipertexto

HTTPS en WordPress

https://miposicionamientoweb.es/migrar-wordpress-https/

Let’s Encrypt

https://letsencrypt.org/

Really Simple SSL

https://es.wordpress.org/plugins/really-simple-ssl/

SSL

https://es.wikiedia.org/wiki/Seguridad_de_la_capa_de_transporte

Tienes que estar conectado para dejar un comentario.