tomcat 配置 https
准备工作
下载好证书文件, 下载的时候可以选择为 tomcat 文件. 我这下载下来是压缩包. 解压后就是下图的样子.
以. key 结尾的文件是证书的 key
以. pem 结尾的文件是证书文件
第一步
在 Tomcat 的目录下, 创建一个文件夹, 我这文件名是 cert, 将下载好的证书解压后复制到这个文件夹里面. Tomcat 支持 PFX 格式和 JKS 两种格式的证书, 您可根据您 Tomcat 的版本择其中一种格式的证书安装到 Tomcat 上. 很明显我下载下来的文件都不包含以上两种文件, 所以需要我们自己转为 pfx 文件或者 jks 文件, 这两种文件都支持, 选其一即可.
到 cert 目录下执行如下命令完成 PFX 格式转换命令, 此处要设置 PFX 证书密码, 请牢记:
openssl pkcs12 -export -out 2424966.pfx -inkey 2424966.key -in 2424966.pem
其中的文件名可以自定义.
这个命令执行完成后可以生成. pfx 文件.
第二步
找到安装 Tomcat 目录下该文件 server.xml, 一般默认路径都是在 conf 文件夹中. 找到 <Connection port="xxx" 标签, 增加如下属性, 完整的配置如下:(其中 port 属性请根据您的实际情况修改)
- <Connector port="443"
- protocol="HTTP/1.1"
- SSLEnabled="true"
- scheme="https"
- secure="true"
- keystoreFile="cert/domain name.pfx" #此处 keystoreFile 代表证书文件的路径, 请用您证书的文件名替换.
- keystoreType="PKCS12"
- keystorePass="证书密码" #请用您证书密码文件中的密码替换 "证书密码".
- 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"/>
配置完成后重启 tomcat, 然后访问域名进行测试.
jks 格式的证书配置方式
使用 java jdk 将 PFX 格式证书转换为 JKS 格式证书 (Windows 环境注意在 %JAVA_HOME%/jdk/bin 目录下执行)
keytool -importkeystore -srckeystore 2424966.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
回车后输入 JKS 证书密码和 PFX 证书密码, 强烈推荐将 JKS 密码与 PFX 证书密码相同, 否则可能会导致 Tomcat 启动失败.(上面命令中的文件名改为自己的即可)
tomcat 配置文件 server.xml 的写法参考如下:
- <Connector port="443"
- protocol="HTTP/1.1"
- SSLEnabled="true"
- scheme="https"
- secure="true"
- keystoreFile="cert/domain name.jks" #此处 keystoreFile 代表证书文件的路径, 请用您证书的文件名替换 domain name.
- keystoreType="PKCS12"
- keystorePass="证书密码" #请用您证书密码文件中的密码替换 "证书密码".
- 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"/>
更改完成后保存, 重启 tomcat 进行测试即可.
进行证书检测的时候提示服务器缺少中间证书的解决办法
可以先去这个网站检测一下配置的 https https://www.myssl.cn/tools/check-server-cert.html 我这遇到的问题是, 网址访问没问题, 但是放到微信小程序后台服务上, 当小程序访问的时候会出现问题, 原因就是服务器缺少中间证书. 在安卓环境会出现这种情况, 但是在苹果就没有, 但是还是得解决啊. 解决办法就是在 https://www.myssl.cn/tools/downloadchain.html 这个网站上按照要求去生成一个中间证书, 然后将生成的中间证书的内容粘贴到之前下载好的证书的文件里面. 然后按照之前配置 https 的方法再重新配置一次. 然后重启 tomcat 再进行测试就好了.
来源: https://www.cnblogs.com/jungejava/p/11208249.html