GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar múltiples certificados SSL en un CentOS VPS con Apache usando una dirección IP

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.


Cent OS
  1. Cómo configurar servidores virtuales Apache en CentOS

  2. Cómo configurar múltiples SSL en una IP con Nginx

  3. Cómo instalar WordPress Multisite en Centos VPS con Apache

  4. Cómo instalar PhpWiki en un CentOS 7 VPS

  5. Cómo instalar Apache 2.4.2 desde el origen en CentOS 6.2 con SSL

Cómo configurar el certificado Let's Encrypt SSL con Apache en CentOS 8 / RHEL 8 y CentOS 7 / RHEL 7

Cómo establecer una dirección IP estática en CentOS Linux

Cómo instalar Let's Encrypt SSL con Apache en CentOS 7

Cómo configurar WebDAV usando Apache en CentOS 7

Cómo instalar un certificado SSL gratuito para Apache en CentOS 8

Cómo proteger Apache con el certificado Let's Encrypt SSL en CentOS 8