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 | <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" |
注意, keystoreFile 是证书文件, keystorePass 是密码, 这里配置一定要正确.
配置 HTTPS + IP
配置一个虚拟主机, 修改 server.xml 文件, 增加 Host:
1 | <Host name="192.168.1.103" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> |
配置 name=”192.168.1.103” 是你本机的 ip 地址.
这个在博客 [iOS: 聊聊 UIWebView 缓存] 中有详细的介绍, 这里不再赘述.
启动 Tomcat, 进行测试.
这里需要到 Tomcat 的 bin 目录下, 执行:
1 | sudo startup.sh |
启动成功后, 打开浏览器, 输入: https://192.168.1.103:8443/test.html, 这个时候, 会弹出如下的警告(提示不安全):
直接点击 Advanced 后再点击 Proceed to 192.168.1.103:8443(unsafe) 处理即可看到页面内容.
配置 HTTPS + 域名
修改 server.xml, 增加 Connector:
1 | <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" |
修改 server.xml, 增加 Host:
1 | <Host name="www.mark.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> |
修改 /etc/host 文件, 增加:
1 | 127.0.0.1 www.mark.com |
启动 Tomcat, 在 bin 目录, 执行:
1 | shutdown.sh |
启动成功后, 打开浏览器, 输入 https://www.mark.com:8443/test.html, 如果弹出警告, 可以像如上处理来显示页面内容.
如果你这里配置失败了, 请修改一下端口号, 如将 8443 改为 8433.
重启 Tomcat 在试一下.
参考
Apache 官方文档: ssl-howto