Despliegue de un Proyecto PHP en DigitalOcean - Parte 4 - Configurando Certificado SSL en el Servidor

Ronaldo B.27 de julio de 20224 min de lectura

En este artículo

Este es el artículo final de nuestra serie sobre el despliegue de una aplicación PHP en DigitalOcean. Puedes consultar los otros artículos de esta serie en los enlaces a continuación:

Parte 1 - Creando, Configurando y Accediendo al Servidor

Parte 2 - Instalando y Configurando MySQL

Parte 3 - Configurando Dominio Personalizado Usando Servidor DNS

En este último artículo realizaremos la configuración de un certificado SSL en nuestro servidor. Es interesante hacer esta configuración ya que con ella ganamos un mejor posicionamiento en los motores de búsqueda, garantizamos una navegación más segura para nuestros usuarios y aumentamos, en general, la credibilidad de nuestro proyecto.

Actualmente nuestro sitio se presenta de acuerdo con la imagen a continuación:

Nuestro sitio presentado como no seguro

Nota que se presenta como “No Seguro”. El objetivo de este artículo es realizar las configuraciones para que el famoso “candado verde”, que indica una conexión HTTPS, sea definido en la URL.

Para realizar esta configuración utilizaremos los servicios de una autoridad de certificación llamada Let’s Encrypt, conocida por proporcionar certificados SSL de manera gratuita. Así, no necesitaremos pagar para realizar esta configuración ?.

Configuración Inicial en el Servidor

La primera cosa que haremos es actualizar los paquetes que ya descargamos con el comando sudo apt-get update.

A continuación, instalaremos dos paquetes necesarios para la creación de nuestro certificado SSL en Nginx. Realizaremos sus descargas mediante el siguiente comando:

sudo apt-get install certbot python3-certbot-nginx -y

A partir de ahora, nuestro servidor recibirá acceso a través del protocolo HTTPS. Puede ser que nuestro firewall no lo esté permitiendo. Para garantizar que no ocurra ningún error relacionado con esto, vamos a asegurarnos de que este protocolo sea reconocido. Primero necesitamos habilitar nuestro firewall. Haremos esto con el comando a continuación:

sudo ufw enable

A continuación, vamos a liberar todos los protocolos para Nginx. Para ello usaremos el siguiente comando:

sudo ufw allow 'Nginx Full'

¡Excelente! Nuestro servidor está listo para la generación de nuestro certificado SSL.

Generando Certificado SSL

Generaremos el certificado con el siguiente comando:

sudo certbot --nginx -d myapp.dev.br -d www.myapp.dev.br

Nota que informamos la URL de nuestro sitio con y sin “www”. Debes hacer lo mismo, pero con el dominio de tu proyecto.

Después de ejecutar este comando responderemos algunas preguntas, que serán utilizadas para la generación del certificado.

La primera opción es nuestra dirección de correo electrónico. Es necesaria para cualquier tipo de contacto relacionado con cambios en el certificado o avisos de seguridad.

Opción de informar el email para el certificado SSL

La próxima pregunta será si aceptamos los Términos de Servicio de Let’s Encrypt. Podemos presionar “A” para informar que estamos de acuerdo y presionar Enter.

Opción de aceptar los Términos de Servicio de Let’s Encrypt

A continuación, responderemos si deseamos compartir nuestra dirección de correo electrónico con la Electronic Frontier Foundation, fundación responsable del desarrollo de Certbot, el paquete que estamos usando para crear nuestro certificado. Podemos responder “Y” para “sí” o “N” para no y luego presionar Enter.

Opción de compartir nuestro email con la Electronic Frontier Foundation

La siguiente configuración que realizaremos es si nuestro servidor deberá redirigir automáticamente las peticiones en HTTP a HTTPS. Nosotros deseamos que esto ocurra. Así que, presionaremos “2” y presionaremos Enter:

Opción sobre redireccionamiento de HTTP a HTTPS

Después de esta etapa, la creación del certificado se iniciará:

Certificado SSL siendo creado

En unos instantes veremos el siguiente mensaje:

Mensaje de éxito en la creación del certificado SSL

Ahora, al acceder al archivo sites-enabled/myapp.dev.br.conf, veremos las siguientes líneas de configuración al final de su contenido:

Configuraciones en el archivo de nuestro sitio

Estas nuevas configuraciones fueron definidas por Certbot. Podemos decir que él hizo este trabajo por nosotros, no necesitamos cambiar nada en este archivo.

Por último, necesitamos reiniciar el servidor de Nginx con el comando sudo service nginx restart.

Ahora, al acceder a la dirección https://myapp.dev.br, vemos el siguiente resultado:

Nuestro proyecto con el Certificado SSL

¡Increíble! Nuestro sitio se presenta con el certificado SSL definido, y ahora el “candado verde” se está mostrando. ¡Podemos decir que nuestro proyecto está completo! ?

Además, cuando analizamos las tecnologías del proyecto, observa que PHP 8 también se muestra:

Conclusión

En esta serie de artículos aprendimos cómo realizar el despliegue completo de una aplicación ya en PHP 8 en DigitalOcean, mediante configuraciones en el servidor Ubuntu. Esperamos que estos artículos puedan ayudarte a configurar el despliegue de tus proyectos personales o profesionales.

Si te gustó este contenido, por favor compártelo con otras personas, eso ayuda mucho a nuestro trabajo. No dejes de consultar también nuestro Curso Completo de PHP 7, donde enseñamos a crear este increíble proyecto que acabamos de realizar el despliegue.

Nos vemos en un próximo artículo, hasta entonces :)

Sigue aprendiendo con Hcode

Regístrate en la plataforma de cursos y sigue las próximas guías del blog.