Почему Tomcat 9 обслуживает один и тот же SSL-сертификат для двух разных доменов, настроенных отдельно?

#ssl #tomcat #servlets #lets-encrypt

Вопрос:

У меня есть один сервер Linux, на котором я запускаю три разных веб-сайта

Server.xml выглядит следующим образом

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="1000" SSLEnabled="true" defaultSSLHostConfigName="sub1.domain1.info">
        <SSLHostConfig hostName="sub1.domain1.info">
            <Certificate certificateFile="conf/app1/cert.pem" certificateKeyFile="conf/app1/privkey.pem" certificateChainFile="conf/app1/chain.pem"
                         type="RSA" />
        </SSLHostConfig>
        <SSLHostConfig hostName="www.domain2.com/">
            <Certificate certificateFile="conf/app2/cert.pem" certificateKeyFile="conf/app2/privkey.pem" certificateChainFile="conf/app2/chain.pem"
                         type="RSA" />
        </SSLHostConfig>
        <SSLHostConfig hostName="domain3.ac.in">
            <Certificate certificateFile="conf/app3/cert.pem" certificateKeyFile="conf/app3/privkey.pem" certificateChainFile="conf/app3/chain.pem"
                         type="RSA" />
        </SSLHostConfig>
        <SSLHostConfig hostName="*.domain3.ac.in">
            <Certificate certificateFile="conf/app2/cert.pem" certificateKeyFile="conf/app2/privkey.pem" certificateChainFile="conf/app2/chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

<Host name="sub1.domain1.info" appBase="/home/applocation" unpackWARs="false" deployXML="false">
        <Alias>sub1.domain1.info</Alias>
          <Context path="" reloadable="true" docBase="/home/applocation" debug="1"/>
        <Context docBase="/home/filepath" path="/pattern"/>
       </Host>

<Host name="domain2.com" appBase="/home/app2path" unpackWARs="false" deployXML="false">
          <Alias>www.domain2.com</Alias>
          <Context path="" reloadable="true" docBase="/home/app2path" debug="1"/>
</Host>
<Host name="domain3.ac.in" appBase="/home/app3path" unpackWARs="false" deployXML="false">
          <Alias>www.domain3.ac.in</Alias>
          <Context path="" reloadable="true" docBase="/home/app3path" debug="1"/>
</Host>

 

Сертификаты, созданные с помощью certbot

 certbot certonly --standalone -d domainName
 

По какой-то причине, когда domain2.com загружается в браузер, там написано, что сертификат недействителен. Когда я проверяю детали сертификата, в нем указаны детали sub1.domain1.info сертификат (выдан sub1.domain1.info).

Я в замешательстве, потому что это сработало для domain3.ac.in Сертификаты были впервые сгенерированы для sub1.domain1.com вслед за domain3.ac.in и наконец www.domain2.com (по крайней мере, 3 раза сгенерировано для этого домена сейчас).

Одна вещь, которую я отметил, заключается в том, что я получаю одно предупреждение при создании сертификата для www.domain2.com это говорит что-то вроде «это может не сработать», но все равно было сгенерировано.

Кроме того, я новичок в SSL с Tomcat, поэтому, пожалуйста, предложите любые другие необходимые изменения.

Комментарии:

1. Проверьте данные в файлах (например, с openssl x509 -in <filename> -noout -text помощью ). Какой браузер вы используете? Если он не поддерживает или не использует SNI (маловероятно в наши дни), будет подан первый настроенный сертификат.

2. Я последняя версия Google Chrome. Я попытался настроить другой домен с нуля, но все равно не повезло 🙁