Tomcat 配置 https 证书

网上搜索出来大多数是通过 keytool 自已生成证书来完成,这种在工作很少用到(浏览器会报不安全)。以下是通过申请的证书配置过程。因为在配置中遇到了一些坑,记之

1、准备证书与私钥

demo.crt  demo.key

2、合并证书

1
openssl pkcs12 -export -in demo.crt -inkey demo.key -out demo.p12 -name demo

注意:
1、 demo.crt 是你的证书
2、 demo.key 是你的私钥
3、 demo.p12 是合并后的证书
4、-name 后面的 demo 是指定的别名,后面配置 tomcat8.5 之后的版本需要用到,要记住
5、执行这条命令要设置一个导出密码,后面要用到,要记住,最好 6 位以上

3、生成 keystore 文件

1
keytool -importkeystore -srckeystore demo.p12 -srcstoretype PKCS12 -destkeystore demo.jks

注意:
1、demo.p12 是第二步生成的证书名
2、demo.jks 是生成的 keystore 文件名
3、执行这条命令会首先让你设置一个密码,这个密码后面配置会用到,要记住。然后验证上一步设置的密码。推荐该步骤设置的密码与上一步一致,如果不一致可能会出现错误详见 java.security.UnrecoverableKeyException: Cannot recover key - 简单的幸福 - ITeye 技术网站

4、配置 tomcat

tomcat 8.5 之前

1
2
3
4
5
<Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
disableUploadTimeout="true" enableLookups="false" maxThreads="25"
port="8443" keystoreFile="~/ssl/demo.jks" keystorePass="123456"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" />

tomcat 8.5 之后

1
2
3
4
5
6
7
8
9
<Connector port="8643" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="~/ssl/demo.jks"
certificateKeyAlias="demo"
certificateKeystorePassword="123456"
type="RSA" />
</SSLHostConfig>
</Connector>

注意:
1、~_ssl_demo.jks   是你前面步骤生成的 storekey 文件的路径
2、123456 是前面第 3 步设置的密码
3、tomcat8.5 之后有一个 certificateKeyAlias 这个是 2 步设置-name 的值

参数地址:

TOMCAT 导入通过第三方证书机构获取的证书 - IceFlame 博客频道 - CSDN.NET

java.security.UnrecoverableKeyException: Cannot recover key - 简单的幸福 - ITeye 技术网站

5 分钟内搞定 Tomcat 的 SSL 配置 - 开源中国社区

tomcat 8.5+版本 SSL 证书部署-沃通 CA 官方论坛 -   专业数字证书论坛

本文地址 https://blog.coder4j.cn/posts/25b9abff/