Tomcat 昇級到Tomcat 10 後,Server.xml 中,原本的Connector SSL設定格式異動,已不相容舊設定。
總是從沒想到的地方開始,驚覺使用中的 Tomcat 昇級到 Tomcat 10後,並未正常的 Listen Port 443,檢查設定跟前版都相同。
檢查後發現Tomcat 10在Server.xml 的 Connector 設定上已不相容舊格式,不能直接照貼。
測試後修改設定如下,指出幾個測試時曾卡到的地方:
- <Connector />不指定@defaultSSLHostConfigName,<SSLHostConfig />中也不指定@hostname,兩者看起來有對應關係。
- <SSLHostConfig />不設定@certificateVerification。若有設定,連線時會要求Client提出連線用的憑證,這不是我需要的。
憑證使用PFX檔,Server.x設定結果如下(應該蠻普通的用法):
<!-- Tomcat 10 格式 -->
<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig protocols="TLSv1.2"
ciphers="TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_EMPTY_RENEGOTIATION_INFO_SCSVF">
<Certificate certificateKeystoreFile="D:\PFX\myPFX.pfx"
certificateKeystorePassword="myPFXPassword"
certificateKeyStoreType="pkcs12" type="RSA" />
</SSLHostConfig>
</Connector>