windows 10下了tomcat10 + jdk 11准备搭建个http服务器做单向ssl测试,没想到被这个最新版本的tomcat坑了半天。
按照网上的教程使用keytool生成证书都OK,然后配置server.xml的connector项出问题了。
网上教程一般按照这种方式配置:
<Connector port="443"
protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/xxx/tomcat/cert/server.keystore"
keystoreType="PKCS12"
keystorePass="xxxxx"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
/>
这种方式配置可能针对tomcat 56有效,但对v10无效。
查了官网对v10的配置,官网建议说明
要开启Connector:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="c:/cert/xxxxx.keystore"
certificateKeystorePassword="xxxxxx"
type="RSA"
/>
</SSLHostConfig>
</Connector>
**这里一定要非常注意的是windows文件系统和linux文件系统的反斜杠问题!!!**不然8443端口起不来,tomcat ssl也起不来,组件会报错,提示密码错误等等。尽管下载的tomcat是Windows版本,但是软件使用的还是linux规则。
windows文件系统一般是这样写:
D:\Program Files\apache-tomcat-10.0.10\cert\server.keystore
linux要这样写:
D:/Program Files/apache-tomcat-10.0.10/cert/server.keystore
这一点一定要注意!!!