Hi ,
I am trying to enable SSL on AJP/1.3 Connector in tomcat 9.0.54.0
I am getting error:
No SSLHostConfig element was found with the hostName [
mymachine.mydomain.com] to match the defaultSSLHostConfigName for the
connector [ajp-nio-0.0.0.0-8009]
The full error is:
01-Nov-2021 19:04:49.774 SEVERE [main]
org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to
initialize component [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: Protocol handler
initialization failed
at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1049)
at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:556)
at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1042)
at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at
org.apache.catalina.startup.Catalina.load(Catalina.java:724)
at
org.apache.catalina.startup.Catalina.load(Catalina.java:746)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:305)
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
Caused by: java.lang.IllegalArgumentException: No SSLHostConfig
element was found with the hostName [mymachine.mydomain.com] to match the
defaultSSLHostConfigName for the connector [ajp-nio-0.0.0.0-8009]
at
org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:76)
at
org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:231)
at
org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1208)
at
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1221)
at
org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:603)
at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1046)
Due to some reason the AJP connector is not picking up SSLHostConfig
defined inside it. The configuration snippet is provided below:
<Connector SSLEnabled="true" secure="true" address="0.0.0.0"
port="8009" protocol="AJP/1.3" secretRequired="false" redirectPort="8443"
maxPostSize="-1" connectionUploadTimeout="36000000"
disableUploadTimeout="false" URIEncoding="utf-8" maxThreads="500"
acceptCount="200"
enableLookups="false" minSpareThreads="20"
connectionTimeout="60000"
compressableMimeType="text/html,text/xml,text/plain,text/css,application/x-javascript,text/vnd.wap.wml,text/vnd.wap.wmlscript,application/xhtml+xml,application/xml-dtd,application/xslt+xml,application/json"
compression="on" xpoweredby="false"
defaultSSLHostConfigName="mymachine.mydomain.com"
>
<SSLHostConfig hostName="mymachine.mydomain.com">
<Certificate certificateFile="/home/tomcat/conf/server.crt"
certificateKeyFile="/home/tomcat/conf/server.key"
certificateChainFile="/home/tomcat/conf/server-ca.crt" />
</SSLHostConfig>
</Connector>
The SSLHostConfig works fine with HTTP/1.1 but not with AJP/1.3 Connector.
Any help is appreciated.
Thanks,
Jasvant