Несколько коннекторов HTTPS в Tomcat, использующих разные сертификаты - PullRequest
0 голосов
/ 01 июня 2018

В настоящее время я использую Tomcat 8.5 для размещения веб-приложения через HTTP.Конфигурация коннектора выглядит следующим образом:

<Connector 
    port="8443"
    protocol="HTTP/1.1"  
    connectionTimeout="10000" 
    maxHttpHeaderSize="65536"
    SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
    keystoreFile="myKeystore"
    keystorePass="changeit"
/>

Сейчас я пытаюсь разместить приложение под другим URL-адресом с другим сертификатом, в идеале из того же хранилища ключей.

Покакак я понял из документации Tomcat мне нужно добавить второй разъем.Моя проблема в том, что я не уверен, как сказать соединителю, какой сертификат использовать в хранилище ключей.

Кажется, путь связан с использованием атрибута keyAlias.Тем не менее, это, кажется, не рекомендуется в пользу SSLHostConfig.К сожалению, мне не удалось найти подходящую документацию для моего варианта использования для любого способа настройки, не говоря уже о примерах.

Как правильно настроить соединители?Если есть несколько способов, что будет считаться лучшей практикой?Должен ли я хранить оба сертификата в одном хранилище ключей?

1 Ответ

0 голосов
/ 01 июня 2018

После нахождения страницы с подробным описанием всех атрибутов Connector и SSLHostConfig в документации Tomcat мне удалось создать рабочую настройку.

Два соединителя теперь выглядят так:

<Connector 
    address="192.168.0.100"
    port="8443"
    protocol="HTTP/1.1"  
    maxHttpHeaderSize="65536" connectionTimeout="10000" 
    SSLEnabled="true" scheme="https" secure="true">
    <SSLHostConfig
            sslProtocol="TLS"
            certificateVerification="false">
        <Certificate 
            certificateKeystoreFile="myKeystore"
            certificateKeystorePassword="changeit"
            certificateKeyAlias="server1cert"
            certificateKeyPassword="server1pw"
        />
    </SSLHostConfig>
</Connector>

<Connector 
    address="192.168.0.101"
    port="8443"
    protocol="HTTP/1.1"
    maxHttpHeaderSize="65536" maxThreads="150" 
    SSLEnabled="true" scheme="https" secure="true">
    <SSLHostConfig
            sslProtocol="TLS"
            certificateVerification="false">
        <Certificate 
            certificateKeystoreFile="myKeystore"
            certificateKeystorePassword="changeit"
            certificateKeyAlias="server2cert"
            certificateKeyPassword="server2pw"
        />
    </SSLHostConfig>
</Connector>

Следует обратить внимание на то, чтобы заменить все устаревшие атрибуты SSL в Соединителе.В противном случае Tomcat внутренне создаст SSLHostConfig по умолчанию на основе устаревших атрибутов, что приведет к ошибке при запуске.См. этот ответ для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...