Tomcat 8.5 server.xml поддерживает только SSLHostConfig defaulthost для всех хостов для "org.apache.coyote.http11.Http11AprProtocol"
Я работаю с 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??? заранее спасибо