Tomcat 8.5 несколько доменов, использующих несколько хранилищ сертификатов - PullRequest
0 голосов
/ 20 марта 2020

У нас была рабочая настройка с использованием нескольких доменов с общим сертификатом. Но теперь настройки изменены, чтобы использовать разные сертификаты для разных доменов.

<server>

<!-- other non-changed stuff -->

<Service name="Catalina">

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

<Connector
    port="443" 
    clientAuth="false"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="200"
    enableLookups="false"
    SSLEnabled="true" 
    scheme="https" 
    secure="true" 
    defaultSSLHostConfigName="stuff.company.com">

    <SSLHostConfig hostName="stuff.company.com">
        <Certificate 
            certificateKeyAlias="stuff"
            certificateKeystoreType="JKS"
            certificateKeystoreFile="/conf/certs/stuff.company.com.jks" 
            certificateKeystorePassword="[redacted]" 
            certificateKeyPassword="[redacted]"
            type="RSA"
        />
    </SSLHostConfig>
    <SSLHostConfig hostName="things.company2.com">
        <Certificate 
            certificateKeystoreFile="conf/certs/things.company2.com.jks" 
            certificateKeystorePassword="[redacted]" 
            certificateKeyPassword="[redacted]"
            type="RSA"
        />
    </SSLHostConfig>
</Connector>

<Engine>

<Host name="stuff.company.com" appBase="webapps/stuff-company-com">
    <Context path="" cookies="false" docBase=""/>
    <alias>stuff.company.com</alias>

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="stuff.company.com_access_log." suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  </Host>

  <Host name="things.company2.com" appBase="webapps/things-company2-com">
    <Context path="" cookies="false" docBase=""/>
    <alias>things.company2.com</alias>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="things.company2.com_access_log." suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  </Host>


</Engine>
</Service>
</Server>

Примечания:

  1. Кажется неважным, есть ли / нет до или после conf в certificateKeystoreFile.
  2. Между конфигом Коннектора с информацией и частями Хоста существуют такие вещи, как Realm и Engine. Они не изменились со времени предыдущей рабочей настройки.
  3. Никаких изменений не было внесено в данный раздел до текущей рабочей настройки.
  4. Если мы ослабим правила. Хосты доступны через http. Но недоступно для всех через https
  5. Версия Tomcat - 8.5.53 (последняя доступная на момент написания)
  6. Windows Сервер 2012 - это ОС

1 Ответ

0 голосов
/ 20 марта 2020

Мы изменили clientAuth (устарело) на certificateVerification (текущий способ работы), который предотвращает все проблемы, которые могут возникнуть из «Если этот элемент SSLHostConfig не определен явно, он будет создан», что обсуждалось в другом месте в Переполнении стека. .

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

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