Nombre común (CN) para un certificado comodín

Un certificado SSL comodín se considera como opción cuando se busca asegurar subdominios múltiples dentro del mismo nombre de dominio. Estos certificados, que utilizan un carácter comodín (*) en el campo del nombre del dominio, aseguran varios subdominios (hosts) vinculados al mismo dominio base.

El Nombre común para los certificados comodín siempre comienza con un asterisco y un punto (*.).

*.(nombrededominio).com

Por ejemplo, un certificado comodín estándar emitido para *.dominio.com asegurará www.dominio.com, correo.dominio.com, info.dominio.com, etc., pero no asegurará correo.prueba.com.

Los nombres alternativos del sujeto (SAN) deben ser un dominio comodín (por ejemplo, *.sudominio.com) o basarse en sus dominios comodín mencionados. Por ejemplo, si uno de sus dominios comodín es *.ejemplo.com, puede usar www.ejemplo.com o www.aplicación.ejemplo.com, pero no correo.seguro.com. Una excepción al certificado Secure Site Pro SSL que asegura ambos dominios.

Instalación del certificado en los servidores web basados en los CN

De manera predeterminada, se asume que el certificado solicitado está instalado en todos los dominios que coincidan. No obstante, para cada servidor web admitido por DigiCert, hay algunas reglas que requieren que el certificado se instale solamente en los dominios cualificados.

Nginx

Cuando llega la solicitud de automatización, el servidor encuentra los bloques de servidor que coincidan basándose en el CN o SAN usado en la solicitud.

Nginx compara el server_name con el CN o SAN presente en la solicitud.

Si el server_name que coincide se encuentra en el conjunto de bloques del servidor, se asegurarán todos los bloques del servidor que coincidan.

Por ejemplo:

generic
server {
        server_name 8010.abc-example.com *.abc-example.com;
        listen 123.123.123.123:8010 ;
}

server {
        server_name   8020.abc-example.com *.mail.abc-example.com ;
       listen 123.123.123.123:8020 ;
}
server {
        server_name   8030.abc-example.com *.abc-example.com ;
       listen 123.123.123.123:8030 ;
}

En el ejemplo anterior, cuando solicita automatización para:

  1. CN=*.abc-ejemplo.com, asegura los bloques del servidor del puerto 8010 y el 8030.
  2. CN=*.correo.abc-ejemplo.com, asegura solamente el bloque del servidor del puerto 8020.
  3. CN={8010/8020/8030}.abc-ejemplo.com, asegura solamente el bloque del servidor respectivo.
  4. CN=*.abc-ejemplo.com y SAN=*.correo.abc-ejemplo.com, asegura todos los bloques del servidor.

Apache

Cuando llega la solicitud de automatización, el servidor encuentra los bloques de <VirtualHost> que coincidan basándose en el CN o SAN usado en la solicitud.

Apache compara el ServerName y ServerAlias con el CN o SAN presente en la solicitud.

Si el ServerName o ServerAlias que coincide se encuentra en el conjunto de hosts virtuales, se asegurarán todos los bloques de hosts virtuales que coincidan.

Por ejemplo:

generic
Listen 551
<VirtualHost 125.125.125.125:551>
ServerName 551.abc-example.com
ServerAlias *.mail.abc-example.com
</VirtualHost>

Listen 552
<VirtualHost 125.125.125.125:552>
ServerName 552.abc-example.com 
ServerAlias *.abc-example.com 
</VirtualHost>

Listen 553
<VirtualHost 125.125.125.125:553>
ServerName 553.abc-example.com
ServerAlias *.abc-example.com  securemail.abc-example.com
</VirtualHost>

En el ejemplo anterior, cuando solicita automatización para:

  1. CN=*.abc-ejemplo.com, asegura los bloques del host virtual del puerto 552 y el 553.
  2. CN=*.correo.abc-ejemplo.com, asegura solamente el bloque del host virtual del puerto 551.
  3. CN={551/552/553}.abc-ejemplo.com, asegura solamente el bloque del host virtual respectivo.
  4. CN=*.abc-ejemplo.com y SAN=*.correo.abc-ejemplo.com, asegura todos los bloques del host virtual.

IIS

El servidor IIS no busca CN o SAN que coincidan usados en la solicitud de automatización. El certificado solamente se instalará en la dirección IP y puerto solicitados.

Por ejemplo:

generic
IP/Port: 123.123.123.123: 401
Common name: *.example.com

IP/Port: 125.125.125.125: 402
Common name: *.abc.example.com
SANs: *.mail.example.com

IP/Port: 127.127.127.127: 403
Common name: *secure.example.com
SANs: *.example.com

En el ejemplo anterior, cuando solicita automatización para:

  1. IP/Puerto=123.123.123.123: 401, CN=*.ejemplo.com, asegura solamente 123.123.123.123: Dirección IP y puerto 401.
  2. IP/Puerto=125.125.125.125: 402, CN=*.ejemplo.com, SAN=*.correo.ejemplo.com, asegura solamente 125.125.125.125: Dirección IP y puerto 402.
  3. IP/Puerto=127.127.127.127: 403, CN=*seguro.ejemplo.com, SAN=*.ejemplo.com, asegura solamente 127.127.127.127: Dirección IP y puerto 403.

Tomcat

Cuando llega la solicitud de automatización, el servidor encuentra los bloques de <Conector> que coincidan basándose en el CN o SAN usado en la solicitud.

Tomcat compara el SSLHostConfig hostName con el CN o SAN presente en la solicitud.

Si el SSLHostConfig Hostname que coincide se encuentra en el conjunto de bloques de conectores, entonces se asegurarán todos los bloques que coincidan.

Por ejemplo:

generic
<Connector port="182" SSLEnabled="false" defaultSSLHostConfigName="*.abc.example.com" connectionTimeout="20000">
    <SSLHostConfig hostName="*.abc.example.com">  </SSLHostConfig>
    </Connector>

<Connector port="183" SSLEnabled="false" defaultSSLHostConfigName="*.example.com" connectionTimeout="20000">
    <SSLHostConfig hostName="*.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="*.mail.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="abc.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="*.blog.example.com">  </SSLHostConfig>
    </Connector>

<Connector port="184" SSLEnabled="false" defaultSSLHostConfigName="*.secure.example.com" connectionTimeout="20000">
    <SSLHostConfig hostName="*.secure.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="*.blog.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="abc.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="*.login.example.com">  </SSLHostConfig>
    </Connector>

En el ejemplo anterior, cuando solicita automatización para:

  1. CN=*.abc.ejemplo.com, asegura solamente los bloques de conectores del puerto 182.
  2. CN=*.ejemplo.com, asegura solamente el bloque de conectores del puerto 183.
  3. CN=*ejemplo.com, asegura todos los bloques de conectores.
  4. CN=*.seguro.ejemplo.com y SAN=*.seguro.ejemplo.com, *.blog.ejemplo.com, abc.ejemplo.com, *.login.ejemplo.com, aseguran solamente el bloque de conectores del puerto 184.

Para una automatización correcta, todos los bloques SSLHostConfig dentro de un conector deben tener un certificado instalado.

Por ejemplo, para automatizar e instalar correctamente los certificados para todos los bloques SSLHostConfig, debe realizar la solicitud con:

CN=*.ejemplo.com y SAN=*.correo.prueba.com

generic
<Connector port="123" SSLEnabled="false" defaultSSLHostConfigName="*.example.com" connectionTimeout="20000">
    <SSLHostConfig hostName="*.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="*.mail.test.com">  </SSLHostConfig>
    <SSLHostConfig hostName="abc.example.com">  </SSLHostConfig>
    <SSLHostConfig hostName="*.blog.example.com">  </SSLHostConfig>
    </Connector>

IBM

Cuando llega la solicitud de automatización, el servidor encuentra los bloques de <VirtualHost> que coincidan basándose en el CN o SAN usado en la solicitud.

El servidor IBM compara el ServerName y ServerAlias con el CN o SAN presente en la solicitud.

Si el ServerName o ServerAlias que coincide se encuentra en el conjunto de hosts virtuales, se asegurarán todos los bloques de hosts virtuales que coincidan.

Por ejemplo:

generic
Listen 125.125.125.125:551
<VirtualHost 125.125.125.125:551>
ServerName 551.abc-example.com
ServerAlias *.mail.abc-example.com
</VirtualHost>

Listen 125.125.125.125:552
<VirtualHost 125.125.125.125:552>
ServerName 552.abc-example.com 
ServerAlias *.abc-example.com 
</VirtualHost>

Listen 125.125.125.125:553
<VirtualHost 125.125.125.125:553>
ServerName 553.abc-example.com
ServerAlias *.abc-example.com securemail.abc-example.com
</VirtualHost>

En el ejemplo anterior, cuando solicita automatización para:

  1. CN=*.abc-ejemplo.com, asegura los bloques del host virtual del puerto 552 y el puerto 553   .
  2. CN=*.correo.abc-ejemplo.com, asegura solamente el bloque del host virtual del puerto 551.
  3. CN={551/552/553}.abc-ejemplo.com, asegura solamente el bloque del host virtual respectivo.
  4. CN=*.abc-ejemplo.com y SAN=*.correo.abc-ejemplo.com, asegura todos los bloques del host virtual.
  5. CN=551.abc-ejemplo.com y SAN=correoseguro.abc.com, asegura solamente los bloques del host virtual del puerto 551 y 553.