GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de SNI para alojar varios certificados SSL en Apache

La identificación del nombre del servidor (SNI) es una extensión del protocolo Secure Socket Layer (SSL) y TransportLayer Security (TLS) que le permite alojar varios certificados SSL en una única dirección IP (Protocolo de Internet). Este artículo describe cómo utilizar SNI para alojar varios certificados SSL en Apache®.

Requisitos

Su servidor debe cumplir con los siguientes requisitos para usar SNI:

  • Apache v2.2.12 o posterior
  • OpenSSL® v 0.9.8jo posterior
  • mod_ssl debe estar instalado

Los siguientes sistemas operativos admiten SNI sin modificaciones adicionales:

  • Red Hat® Enterprise Linux® (RHEL) 6 y posterior
  • Fedora® 10 y posteriores
  • CentOS® 6
  • Debian® 6 y posteriores
  • Ubuntu® 10.04 y posterior

Los siguientes sistemas operativos requieren que Apache, OpenSSL y mod_ssl se compilen con las versiones adecuadas:

  • Red Hat Enterprise Linux 5
  • Centos 5

Verifique que mod_ssl esté instalado

Antes de usar SNI, verifique que mod_ssl esté instalado ejecutando el siguiente comando:

RHEL, CentOS y Fedora

yum list installed | grep mod_ssl

Sistemas operativos Debian y Ubuntu

dpkg -s apache2.2-common

Si mod_ssl no está instalado, use el siguiente comando para instalarlo:

RHEL, CentOS y Fedora

yum install mod_ssl

Sistemas operativos Debian y Ubuntu

Para los sistemas operativos Debian y Ubuntu, instale mod_ssl usando el siguiente comando:

 apt-get install apache2.2-common

Luego habilite el módulo ejecutando a2enmod ssl; /etc/init.d/apache2 reload .

Configurar hosts virtuales

Agregue las siguientes líneas en su archivo de configuración raíz de Apache (apache2.conf o httpd.conf ):

# Ensure that Apache listens on port 443
Listen 443

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
SSLStrictSNIVHostCheck off

En el archivo de configuración de vhost para cada sitio, debe agregar su configuración de host virtual. Debería ser similar a los siguientes ejemplos:

Primer host virtual:

<VirtualHost *:443>

 ServerName www.yoursite.com

 DocumentRoot /var/www/site

 SSLEngine on

 SSLCertificateFile /path/to/www_yoursite_com.crt

 SSLCertificateKeyFile /path/to/www_yoursite_com.key

 SSLCertificateChainFile /path/to/DigiCertCA.crt

</Virtual Host>

Segundo host virtual:

<VirtualHost *:443>

 ServerName www.yoursite2.com

 DocumentRoot /var/www/site2

 SSLEngine on

 SSLCertificateFile /path/to/www_yoursite2_com.crt

 SSLCertificateKeyFile /path/to/www_yoursite2_com.key

 SSLCertificateChainFile /path/to/DigiCertCA.crt

</Virtual Host>

Puede probar la configuración con un certificado autofirmado utilizando el siguiente comando:

openssl req -new -nodes -keyout mykey.key -out mycert.cer -days 3650 -x509

Especifique el nombre de dominio en el Nombre común y luego reinicie Apache.

Navegadores compatibles

SNI es compatible con la mayoría de los navegadores, sin embargo, los navegadores más antiguos como Internet Explorer® 6 y cualquier navegador de Windows® XP® no son compatibles con SNI.

Navegadores de escritorio

  • Internet Explorer 7 y posteriores

  • Firefox® 2 y posteriores

  • Opera 8 con TLS 1.1 habilitado

  • Google Chrome®:

    • Compatible con Windows XP en Chrome 6 y versiones posteriores
    • Compatible con Vista y versiones posteriores de forma predeterminada
    • Compatible con OS X 10.5.7 en Chrome versión 5.0.342.0 y posteriores
  • Chromium® 11.0.696.28 y posterior

  • Safari 2.1 y posterior (requiere OS X 10.5.6 y posterior o Windows Vista y posterior).

Nota: Ninguna versión de Internet Explorer en Windows XP es compatible con SNI.

Navegadores móviles

  • Mobile Safari para iOS 4.0 y posterior
  • Android 3.0 (Honeycomb) y posterior
  • Windows Phone 7 y posterior

Navegadores no compatibles

Los navegadores no compatibles cargan el certificado SSL del primer host virtual que carga Apache. En su lugar, puede mostrar un error 403 agregando la siguiente línea al archivo de configuración de Apache (apache2.conf o httpd.conf ):

SSLStrictSNIVHostCheck on

Linux
  1. Usando mod_cluster en Apache

  2. ¿Cómo cambiar el nombre de varios archivos usando Buscar?

  3. Cómo configurar un subdominio o alojar múltiples dominios usando nginx en el servidor Linux

  4. Servir múltiples dominios mediante el uso de hosts virtuales

  5. Configurar un host virtual basado en nombre en Apache

Cómo alojar un sitio web usando Apache con SSL en Rocky Linux

Cómo instalar Apache para alojar un sitio web con SSL en AlmaLinux

Instalar certificados SSL en un servidor Windows

Cómo instalar Apache en CentOS 8

Aloje múltiples sitios web en un solo servidor con Apache en Ubuntu 18.04

Certificados maestros autofirmados en Windows y Linux