tomcat配置https以及配置完成后提示服务器缺少中间证书(已解决)

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再进行测试就好了。

posted @ 2019-07-18 16:38  Java魑魅魍魉  阅读(3408)  评论(0编辑  收藏  举报