Tomcat 8.5 server.xml поддерживает только SSLHostConfig defaulthost для всех хостов для "org.apache.coyote.http11.Http11AprProtocol" - PullRequest
0 голосов
/ 26 мая 2018

Я работаю с Tomcat 8.5 и пытаюсь настроить конфигурации SSL для нескольких хостов в server.xml, но обнаружил проблему, заключающуюся в том, что протокол Openssl "org.apache.coyote.http11.Http11AprProtocol" учитывает только defaultSSLHostConfigNameattributes '(например, certificateVerification), protocol = "TLSv1.2"), даже для хостов, у которых определены их собственные атрибуты.Он проверяет сертификаты должным образом, хотя.Интересно то, что когда я использую протокол JSSE "org.apache.coyote.http11.Http11NioProtocol", он отлично работает и учитывает конфиги (например, certificateVerification, протоколы) соответствующих хостов.Ниже я прилагаю свой кусок кода server.xml

<Connector port="8690" protocol="org.apache.coyote.http11.Http11AprProtocol"
           maxHttpHeaderSize="1234"
           server="aaaa"
           SSLEnabled="true" scheme="https" secure="true"
           enableLookups="false" disableUploadTimeout="true"
           maxThreads="150" minSpareThreads="25"
           acceptCount="400" URIEncoding="UTF-8"
           defaultSSLHostConfigName="abctest.com">
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />

    <SSLHostConfig
         ciphers= ALL:!ADH:!TLSv1:!EXPORT40:!EXP:!LOW
         honorCipherOrder="true"
         disableCompression="true"
         certificateVerification="required"
         protocols="TLSv1.2" hostName="test123.com">
        <Certificate certificateKeyFile="conf/XYZ-TESTSRV-KEY.crt"
                     certificateFile="conf/XYZ-TESTSRV.crt"
                     certificateChainFile="conf/XYZ-TESTSRV-CA.crt"
                     certificateKeyPassword="somepassword"
                     type="RSA" />
    </SSLHostConfig>
    <SSLHostConfig
         disableCompression="true"
         certificateVerification="optional"
         protocols="TLSv1.1" hostName="abctest.com">
        <Certificate certificateKeyFile="conf/abc.key"
                     certificateFile="conf/abc.crt"
                     certificateKeyPassword="somepassword"
                     type="RSA" />
    </SSLHostConfig>

Итак, для вышеупомянутого xml, для "org.apache.coyote.http11.Http11AprProtocol", только abctest.Атрибуты com (defaultSSLHostConfigName) (certificateVerification, protocol = "TLSv1.2") будут работать для всех хостов.Если бы я использовал «org.apache.coyote.http11.Http11NioProtocol», атрибуты применяются в соответствии с их соответствующими хостами, но это не соответствует моему требованию.Это проблема для Http11AprProtocol ???Заранее спасибо

...