En este tutorial, le mostraremos cómo configurar varios certificados SSL en un CentOS VPS con Apache usando una sola dirección IP.
Esto está permitido por una extensión del protocolo SSL llamada Indicación de nombre de servidor (SNI). La mayoría de los navegadores web móviles y de escritorio actuales son compatibles con SNI. El principal beneficio de usar SNI es la capacidad de proteger múltiples sitios web sin comprar más direcciones IP.
Asegúrese de que el módulo de seguridad mod_ssl esté instalado y habilitado para que el servidor web Apache pueda usar la biblioteca y el kit de herramientas de OpenSSL:
yum install mod_ssl openssl
Ejecute los siguientes comandos:
mkdir -p /etc/httpd/ssl/ mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak cd /etc/httpd/ssl/
Genere archivos de solicitud de firma de certificado SSL (CSR) para sus dominios:
openssl genrsa -out domain1.key 2048 openssl req -new -key domain1.key -out domain1.csr openssl genrsa -out domain2.key 2048 openssl req -new -key domain2.key -out domain2.csr
e ingrese los siguientes detalles para sus certificados:
- Nombre del país
- Nombre del estado o provincia
- Nombre de la localidad
- Nombre de la organización
- Nombre de la unidad organizativa
- Dirección de correo electrónico
Cuando se le solicite el Nombre común (es decir, el nombre de dominio), ingrese el FQDN (nombre de dominio completo) para el sitio web que está protegiendo.
Se recomienda instalar certificados SSL comerciales cuando se utilizan en un entorno de producción. O genere y use certificados SSL autofirmados cuando solo esté desarrollando o probando un sitio web o una aplicación usando los siguientes comandos:
openssl x509 -req -days 365 -in domain1.csr -signkey domain1.key -out domain1.crt openssl x509 -req -days 365 -in domain2.csr -signkey domain2.key -out domain2.crt
Edite el archivo de configuración de Apache 'ssl.conf':
vi /etc/httpd/conf.d/ssl.conf
y agregue las siguientes líneas:
LoadModule ssl_module modules/mod_ssl.so Listen 443 NameVirtualHost *:443 SSLPassPhraseDialog builtin SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin SSLStrictSNIVHostCheck off <VirtualHost *:443> DocumentRoot /var/www/html/domain1 ServerName domain1.com ServerAlias www.domain1.com SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/httpd/ssl/domain1.crt SSLCertificateKeyFile /etc/httpd/ssl/domain1.key #SSLCertificateChainFile /etc/httpd/ssl/ca.crt ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/html/domain2 ServerName domain2.com ServerAlias www.domain2.com SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/httpd/ssl/domain2.crt SSLCertificateKeyFile /etc/httpd/ssl/domain2.key #SSLCertificateChainFile /etc/httpd/ssl/ca.crt ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
Al usar un certificado SSL comercial, es probable que la autoridad firmante incluya un certificado CA intermedio. En ese caso, cree un nuevo archivo '/etc/httpd/ssl/ca.crt' y pegue el contenido de la CA intermedia en él, luego edite el archivo de configuración 'ssl.conf' y elimine los comentarios de la siguiente línea:
SSLCertificateChainFile /etc/httpd/ssl/ca.crt
para que el servidor web Apache pueda encontrar su certificado CA.
Pruebe la configuración de Apache:
/etc/init.d/httpd configtest Syntax OK
Reinicie el servicio de Apache para que los cambios surtan efecto:
service httpd restart
Abra https://domain1.com y https://domain2.com en su navegador web favorito y verifique que los certificados SSL estén instalados correctamente.
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS de Linux, en cuyo caso simplemente puede solicitar a nuestros administradores expertos de Linux que configuren varios certificados SSL en su VPS por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD. Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.