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

tomcat 8.5 之后

  1. <Connector port="8643" protocol="org.apache.coyote.http11.Http11NioProtocol"
  2. maxThreads="150" SSLEnabled="true">
  3. <SSLHostConfig>
  4. <Certificate certificateKeystoreFile="~/ssl/demo.jks"
  5. certificateKeyAlias="demo"
  6. certificateKeystorePassword="123456"
  7. type="RSA" />
  8. </SSLHostConfig>
  9. </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官方论坛 - 专业数字证书论坛