Instalar certificados SSL: Ubuntu, Debian y CentOS/RHEL
- 1 Debian
- 1.1 Prerrequisitos
- 1.2 Configuración
- 1.2.1 Habilitar mod_ssl de Apache
- 1.2.2 Crear un Certificado Autofirmado (opcional)
- 1.2.3 Certificado firmado por (CA)
- 1.2.4 Configuración de Apache para usar SSL
- 1.2.5 Abrir el puerto 443 en el Firewall
- 1.2.6 Redirigir HTTP a HTTPS (Opcional)
- 1.2.7 Habilita el sitio y reinicia Apache
- 1.2.8 Redireccionar dominio a HTTPS
- 1.2.9 Evitar Problemas de Resolución DNS
- 1.2.10 Pruebas y Desarrollo
- 1.2.11 Cómo agregar una entrada en el archivo hosts
- 1.2.12 NOTA:
- 1.2.13 Resumen de Archivos y Directorios
Debian
Pare realizar la instalación del certificado en Debian, se recomienda hacer esta configuración con un FQDN (Fully Qualified Domain Name), ya que permite el uso de SSO (Single Sign-On) en las aplicaciones, lo que mejora la experiencia general al eliminar la necesidad de iniciar sesión en cada módulo.
Prerrequisitos
Antes de comenzar, se requiere lo siguiente:
Acceso SSH con capacidad sudo
FQDN o IP para configurar
Módulos FirstWave instalados
En el archivo
/usr/local/omk/conf/opCommon.json
, debe de configurarse lo siguiente:nmis_host_base = http://FQDN
(el FQDN en lugar de "localhost"; mantener http en esta configuración)Si estás utilizando un certificado SSL autofirmado o local, debe configurarse:
"opha_allow_insecure" : "1",
Configuración
Habilitar mod_ssl de Apache
Ejecutar el siguiente comando para habilitar el módulo SSL de Apache:
a2enmod ssl
Reiniciar Apache para aplicar los cambios:
systemctl restart apache2
Crear un Certificado Autofirmado (opcional)
a. Es recomendable reemplazar servername con el nombre real del servidor.
b. Ejecutar el siguiente comando para generar un certificado autofirmado:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/servername-selfsigned.key -out /etc/ssl/certs/ servername-selfsigned.crt
Certificado firmado por (CA)
Si obtuviste un certificado firmado por una Autoridad Certificadora (CA), deberías haber recibido un archivo .crt y posiblemente un archivo .ca-bundler.
Configuración de Apache para usar SSL
a. Reemplaza "your_domain_or_ip" con los detalles de tu servidor.
b. Edita la configuración del sitio en Apache ejecutando lo siguiente:
vi /etc/apache2/sites-available/your_domain_or_ip.conf
<VirtualHost *:443>
ServerName your_domain_or_ip
DocumentRoot /var/www/your_domain_or_ip
SSLEngine on
SSLCertificateFile /etc/ssl/certs/servername-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/servername-selfsigned.key
</VirtualHost>
<VirtualHost *:80>
ServerName your_domain_or_ip
Redirect / https://your_domain_or_ip/
</VirtualHost>
c. Para guardar y salir del editor vi, escribe:
:wq
d. Para habilitar el sitio configurado y reiniciar Apache, ejecuta el siguiente comando:
a2ensite your_domain_or_ip.conf
systemctl restart apache2
e. Para verificar que la configuración de Apache es correcta, ejecuta:
apache2ctl configtest
f. Si todo es exitoso, obtendrás un resultado que se verá así:
Syntax OK
g. Finalmente, recarga Apache para aplicar la nueva configuración:
systemctl reload apache2
Abrir el puerto 443 en el Firewall
Si tienes ufw habilitado, asegúrate de permitir tráfico HTTPS:
ufw allow 'Apache Full'
ufw reload
Si usas iptables:
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Redirigir HTTP a HTTPS (Opcional)
Para forzar la redirección de HTTP a HTTPS, edita tu archivo de configuración en:
vi /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin admin@dominio.com
ServerName nombredeserver.dominio.com
Redirect permanent / https://nombredeserver.dominio.com
Habilita el sitio y reinicia Apache
a2ensite 000-default
systemctl restart apache2
Redireccionar dominio a HTTPS
Se modifica el siguiente archivo: /etc/httpd/conf.d/04omk-proxy.conf reemplazando "http" por "https" en esta línea:
RequestHeader establece X-Fordered-Proto "http"
quedando RequestHeader establece X-Fordered-Proto "https "
Guarda los cambios, sal del archivo y verifica que se este ejecutando apache
systemctl status apache2
Evitar Problemas de Resolución DNS
• Si tu dominio aún no está registrado o la información del DNS no se ha propagado completamente, tu sistema podría no ser capaz de resolver el nombre de dominio correctamente.
• Al agregar la entrada en el archivo hosts, puedes omitir los problemas de resolución DNS y conectarte directamente al servidor usando el nombre de dominio.
Pruebas y Desarrollo
• Si estás desarrollando o probando un sitio web en un entorno preproducción (staging), puedes redirigir el dominio a una dirección IP específica sin afectar el tráfico real.
• Esto es ideal para testear SSL, configuraciones de servidor, o proyectos locales.
Cómo agregar una entrada en el archivo hosts
El archivo hosts se encuentra en diferentes ubicaciones dependiendo del sistema operativo:
• Linux: /etc/hosts
• Windows: C:\Windows\System32\drivers\etc\hosts
• macOS: /etc/hosts
A continuación, te dejamos los pasos detallados para Linux (aplica de forma similar en macOS y Windows).
Pasos para agregar una entrada en el archivo hosts en Linux
Abrir el archivo hosts como root:
nano /etc/hosts
Agregar una nueva línea con la IP y el nombre de dominio:
• Suponiendo que tu servidor tiene la dirección IP 192.168.1.100 y el dominio nombredeserver.dominio.com, añade la siguiente línea al final del archivo:
192.168.1.100 nombredeserver.dominio.com
Si también deseas que el dominio funcione sin el prefijo www, puedes añadir:
192.168.1.100 nombredeserver.dominio.com
• Guardar y cerrar el archivo:
• Si estás utilizando nano, guarda los cambios presionando:
• Ctrl + O (para guardar)
• Enter (para confirmar)
• Ctrl + X (para salir)
• Verificar la configuración:
• Puedes utilizar el comando ping para asegurarte de que el nombre de dominio se está resolviendo correctamente:
ping nombredeserver.dominio.com
Deberías ver una respuesta similar a:
PING nombredeserver.dominio.com (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: icmp_seq=0 ttl=64 time=0.123 ms
Ya con esa configuración deberíamos poder ingresar a nuestro sitio mediante https, como lo podemos ver en la siguiente imagen (ejemplo):
NOTA:
• Editar el archivo hosts permite resolver nombres de dominio localmente sin necesidad de un servidor DNS.
• Es útil para pruebas, desarrollo, y situaciones donde la propagación del DNS no ha finalizado.
• Asegúrate de que los cambios sean correctos para evitar problemas de conectividad.
Con estos pasos, tu sistema será capaz de resolver el dominio nombredeserver.dominio.com hacia la dirección IP especificada de forma local.
Resumen de Archivos y Directorios
Archivo | Ubicación en Debian/Ubuntu | Ubicación Centos/RHEL |
---|---|---|
Certificado (.crt) | /etc/ssl/certs/ | /etc/pki/tls/certs/ |
Clave Privada (.key) | /etc/ssl/private/ | /etc/pki/tls/private/ |
Certificados Intermedios (.crt, .ca-bundle) | /etc/ssl/certs/ | /etc/pki/tls/certs/ |
Archivo de configuración Apache | /etc/apache2/sites-available/ | /etc/httpd/conf.d/ |