Tomcat9 配置HTTPS连接

January 1, 2018 · 57 words · One minute

Tomcat中配置HTTPS连接可以分为两步: 1. 生成证书 2. 配置Tomcat

准备工作

  • JDK
  • Tomcat

1. 生成证书

证书可以使用Java来生成

  • 直接使用命令生成证书
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "d:\DevConfig\tomcat.keystore"  

生成Keystore

这样就会在F:\下生成一个tomcat.keystore 文件 密码在配置tomcat的时候会用到

2. 配置Tomcat

  • 修改TOMCAT_HOME\conf\server.xml文件,将以下内容粘贴到Tomcat配置文件中
<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="F:\tomcat.keystore" keystorePass="tomcat"
           clientAuth="false" sslProtocol="TLS"/>
  • 保存后启动Tomcat,访问https://localhost:8433即可

Tomcat Https

  • 因为CA证书是自己生成的,不被浏览器认可,所以会被当做不安全网站,但不影响使用

需要注意在配置文件有三种不同的实现方式

    - JSSE (作为Java运行部分)
    - JSSE  (使用OpenSSL)
    - APR (使用OpenSSL)

这三种方式对应的配置文件并不一样,需要特别注意

另外protocol如果写成HTTP/1.1也会报错,应当使用以下三个中的一个,当使用APR的时候需要从下载tcnative-1.dll放到Tomcat的bin目录下,否则会报错

org.apache.coyote.http11.Http11NioProtocol
org.apache.coyote.http11.Http11Nio2Protocol
org.apache.coyote.http11.Http11AprProtocol

这里的配置是第一种方式,也是最简单的方式


详细配置请看官方文档 http://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html