- 申请一个免费的SSL证书。目前腾讯云、阿里云、百度云、七牛云都提供免费的SSL证书,且都是赛门铁克签发。形式为gker.crt证书和gker.key私钥,用于Nginx。
- 在亚洲诚信上将此证书转换为jks形式,用于tomcat。
- 打开tomcat的https
- 安装APR
- 安装SSL-dev库
- 修改tomcat的server.xml文件
原有被注释的以下内容,取消注释并增加key文件路径。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" connectionTimeout="20000"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="***.jks"
keystorePass="***"
/>
<!--关闭默认的SSLEngine-->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off"/>
#新增443端口监听
listen 443 ;
#修改代理的tomcat端口
location ~ .* {
proxy_pass https://127.0.0.1:8443 ;
}
#打开ssl
ssl on ;
#指定sslkey路径
ssl_certificate /usr/local/nginx/***/gker.crt ;
ssl_certificate_key /usr/local/nginx/***/gker.key ;
#让http请求重定向到https请求
error_page 497 https://$host$uri?$args ;
- 重启tomcat,再重启Nginx即可。
- 期间tomcat可能会报各种错误,仔细排查即可。本文只是主体思路。