tomcat https配置方法(免费证书)

相较于http,https提供了身份验证与加密通信方法.于是,出于安全性考虑,越来越多的网站开始使用https协议.

一、环境准备

为了成功配置https,你需要具备以下环境:

  • java jdk
  • tomcat

二、SSL证书简介

要想使用https,首先,我们需要有SSL证书,证书可以通过两个渠道获得:

  1. 公开可信认证机构
    例如CA,但是申请一般是收费的,一般几百到几千一年.
  2. 自己生成
    虽然安全性不是那么高,但胜在成本低.

目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式.
虽然两种方式博主都已经实现过,但是这里只讲JKS格式.

三、JKS格式证书生成

好了,我们的jdk要派上用场了

  1. 打开你的终端或者命令行或者其他黑窗口,输入:
keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore ~/Lee/test.keystore
  • alias: 别名 这里起名testKey
  • keyalg: 证书算法,RSA
  • validity:证书有效时间,10年
  • keystore:证书生成的目标路径和文件名,替换成你自己的路径即可,我定义的是~/Lee/test.keystore
  1. 回车,然后会让你输入一些信息,其中秘钥库口令和秘要口令最好输入同一个,并且记下这个口令,其他的随便填即可


    image.png
  2. 在你刚才的目标路径里拿到生成好的test.keystore.

四、tomcat配置https

  1. 把keystore证书上传到你的tomcat服务器上(如果你的tomcat在本地,那么不移动也可以),并记下证书所在路径.
  2. cd到tomcat的conf目录下,打开server.xml文件,搜索https找到下面这项:


    tomcat配置文件
  3. 先去掉注释,然后将keystoreFile和keystorePass处替换成你自己的证书路径和生成证书时的口令即可.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="你的keystore路径" keystorePass="生成证书时的口令"  />
  • port: https的端口,默认8443
  • clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile
  • keystoreFile: keystore证书的路径
  • keystorePass: 生成keystore时的口令
  1. 启动tomcat,然后就可以使用https和8443端口访问你的服务了! _

推荐阅读更多精彩内容