Tomcat8 配置 HTTPS

博客 [Tomcat8 域名配置] 介绍了如何在本地配置 Tomcat8 的域名以及通过域名来访问对应的资源.

今天继续跟大家分享如何配置 Tomcat8 的 HTTPS (单向认证), 本篇博客的主要内容如下:

1.配置 Tomcat 的 HTTPS.
2.通过 HTTPS + ip 的方式来访问资源.
3.通过 HTTPS + 域名 的方式来访问资源.

配置要求

1.安装了 JDK, 并配置了其相关的环境变量.可参考 Mac 配置 JDK1.8.

2.安装了 Tomcat8, 并配置了其相关的环境变量.可参考 Mac 配置 Tomcat8.

生成证书

获取证书可以去购买, 这里是在本地机器搭建, 使用 JDK 自带的工具 keytool 生成即可.

打开 mac 终端, 执行:

1
keytool -v -genkey -alias tomcat -keyalg RSA -keystore ~/Desktop/tomcat.keystore

紧接着, 会出现一些让你输入信息的交互信息, 第一个是让你输入 密钥库密码(口令), 我输入的是 1234567, 其他信息可以任意输入内容, 在最后一步, 问你生成的 密钥口令 和 密钥库的口令 是否相同, 如果相同就直接回车, 我这里是直接回车的, 即密码相同, 都是 1234567.

这样就生成了所谓的证书.

配置 HTTPS

通过修改 server.xml 来配置.

将 tomcat.keystore 文件复制到 Tomcat 的 conf 目录.

修改 server.xml 文件, 增加一个 Connector, 内容如下:

1
2
3
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="conf/tomcat.keystore" keystorePass="1234567"/>

注意, keystoreFile 是证书文件, keystorePass 是密码, 这里配置一定要正确.

配置 HTTPS + IP

配置一个虚拟主机, 修改 server.xml 文件, 增加 Host:

1
2
3
4
<Host name="192.168.1.103" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="test" debug="0" reloadable="true" crossContext="true"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="tot_log." suffix=".txt" timestamp="true"/>
</Host>

配置 name=”192.168.1.103” 是你本机的 ip 地址.

这个在博客 [iOS: 聊聊 UIWebView 缓存] 中有详细的介绍, 这里不再赘述.

启动 Tomcat, 进行测试.

这里需要到 Tomcat 的 bin 目录下, 执行:

1
sudo startup.sh

启动成功后, 打开浏览器, 输入: https://192.168.1.103:8443/test.html, 这个时候, 会弹出如下的警告(提示不安全):
1

直接点击 Advanced 后再点击 Proceed to 192.168.1.103:8443(unsafe) 处理即可看到页面内容.

配置 HTTPS + 域名

修改 server.xml, 增加 Connector:

1
2
3
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="conf/tomcat.keystore" keystorePass="1234567"/>

修改 server.xml, 增加 Host:

1
2
3
4
<Host name="www.mark.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="test" debug="0" reloadable="true" crossContext="true"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="tot_log." suffix=".txt" timestamp="true"/>
</Host>

修改 /etc/host 文件, 增加:

1
127.0.0.1 www.mark.com

启动 Tomcat, 在 bin 目录, 执行:

1
2
shutdown.sh
sudo startup.sh

启动成功后, 打开浏览器, 输入 https://www.mark.com:8443/test.html, 如果弹出警告, 可以像如上处理来显示页面内容.

如果你这里配置失败了, 请修改一下端口号, 如将 8443 改为 8433.
重启 Tomcat 在试一下.

参考

Apache 官方文档: ssl-howto

坚持原创技术分享!