CentOS 在Tomcat部署HTTPS遇到的坑
环境
CentOS 6.8 64位
Tomcat 9
阿里云买的域名,域名管理点击SSL用的免费一年的HTTPS
根据阿里的提示下载关于Tomcat的证书
解压后由四个文件分别是
1528878591893.key
1528878591893.pem
1528878591893.pfx
pfx-password.txt
其中pfx-password.txt是密码,这个密码最后在设置的时候一定要用这个。不然会给你意外的惊喜哦
步骤
在Tomcat安装目录下的conf文件下,新建cert文件夹,将这四个文件放进去
执行如下命令
keytool -importkeystore -srckeystore 1528878591893.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
会提示输入密码,这个是时候你就把pfx-password.txt下的密码复制一下。设置成复制过来的密码。记得。三次输入密码都要一样哦。
注意了,执行这个命令后会有个警告
Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore your-name.jks -destkeystore your-name.jks -deststoretype pkcs12".
如果忽视这个警告的话。是不会成功的。要再继续执行以下这命令。
keytool -importkeystore -srckeystore your-name.jks -destkeystore your-name.jks -deststoretype pkcs12
配置server.xml
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/opt/install/apache-tomcat-9.0.2/conf/cert/your-name.jks"
keystoreType="PKCS12"
keystorePass="1528878591893"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"
/>
这一步需要注意点是keystoreFile 放的是你上一步生成的keystoreFile的绝对路劲
keystorePass是pfx-password.txt下的密码,也就是你上一步设置的密码。反正我的都用一样的。
最后终结一下:
开始的时候我按照了阿里的步骤来了。结果死活不行。坑死我了
阿里文档有几种选择。请忽略其他步骤选择 3、JKS证书安装
还有就是Connector port=”443” 其实443就是默认端口 和80端口一样不需要加入端口就能访问 8443对应的就和8080端口一样。需要加入端口才能访问。。
还有一个坑就是要在ECS加443端口的安全组哦