tomcat9配置ssl,用pfx多次尝试未果用jks证书成功
Centos服务器tomcat9配置ssl使其能够进行https加密访问,记录此次安装证书过程。
1、从阿里云下载免费tomcat证书解压后为
一个是证书,一个是密码文件。
2、上传到服务器tomcat的conf目录下,然后对conf目录下的server.xml文件进行修改,把8080端口改为80(web默认端口)然后定redirectPort从8443改为443(https默认端口),在加入以下配置
<!--
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/opt/apache-tomcat-9.0.30/conf/demon.pfx"
certificateKeystorePassword="123456"
certificateKeystoreType="PKCS12"/>
</SSLHostConfig>
</Connector>
-->
<!--
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/opt/apache-tomcat-9.0.30/conf/cert/demon.pfx"
keystorePass="123456"
clientAuth="false" sslProtocol="TLS"/>
</Connector>
-->
以上只是一部分,还改过证书别名(据说tomcat9的pfx别名要为tomcat),证书的相对绝对路径,SSLProtocol,ciphers等结果却是
或者报拒绝连接请求的错误
3、用java的keytool工具将pfx转为jks具体命令
keytool -importkeystore -srckeystore 证数名字.pfx -destkeystore 转后的名字.jks -srcstoretype PKCS12 -deststoretype JKS
输入3次密码(两个是新密码一个是之前证书的密码)后报一个警告,然后生成了jks文件。修改server.xml文件,将443端口的配置文件修改为
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="绝对路径/证数名字.jks"
keystorePass="证数密码"
clientAuth="false" sslProtocol="TLS"/>
用https访问:
成功访问。用https访问成功后,可在web.xml文件中的加入/welcome-file-list后加入以下
<security-constraint>
<web-resource-collection>
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
之后无论怎样访问都是https访问了。
4、本人没安装成功pfx证书(小白一枚),具体原因自己也不清楚。总结
1、每次下载证书时,配套的密码都不一样。
2、修改配置文件后重启tomcat。
3、https访问服务器记得打开443端口。阿里云打开端口在控制台的安全组策略里面打开。可用netstat -anp 查看已开放的端口。