阿里云服务中购买免费SSL证书。
审核通过后下载证书。
在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。
修改conf 目录中的 nginx.conf 文件,
server {
listen 443;
server_name your hostname;
ssl on;
ssl_certificate /usr/local/webserver/nginx/cert/214888213020325.pem;
ssl_certificate_key /usr/local/webserver/nginx/cert/214888213020325.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
#root html;
#index index.html index.htm;
}
}
重启nginx。
如果Nginx作为前端代理的话,则Tomcat根本不需要自己处理 https,全是Nginx处理的。用户首先和Nginx建立连接,完成SSL握手,而后Nginx 作为代理以 http 协议将请求转给 tomcat 处理,Nginx再把 tomcat 的输出通过SSL 加密发回给用户,这中间是透明的,Tomcat只是在处理 http 请求而已。因此,这种情况下不需要配置 Tomcat 的SSL,只需要配置 Nginx 的SSL 和 Proxy。