环境准备
- 阿里云服务器
- 已备案的域名
- 已安装JDK、Tomcat
1.进入云盾证书购买页面,选择免费版进行购买
2.进入SSL证书管理控制台创建证书
3.创建证书后进行申请
4.填写域名及相关信息
5.验证后提交审核
6.等待审核
7.审核通过后到SSL证书管理控制台进行下载
8.选择Tomcat,下载
9.解压后得到两个文件
10.在服务器的Tomcat目录下新建一个cert文件夹
11.把解压后的两个文件复制到cert目录下
12.打开conf下的server.xml进行编辑
13.添加以下内容(https默认是443端口)
<Connector
port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/证书名称.pfx"
keystoreType="PKCS12"
keystorePass="证书密码(pfx-password.txt文件里的内容)"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
示例:
14.修改之前的Connector标签,将redirectPort的8443改为443
代码:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
15.重启Tomcat
16.到服务器管理控制台的防火墙添加443端口
17.服务器防火墙的入站规则中添加443端口
iptables -I IN_public_allow -p tcp --dport 443 -j ACCEPT
18. 输入域名即可访问
19.SpringMVC的web.xml加入,将http重定向到https
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
20.nginx配置
20.1 到SSL证书管理控制台下载证书
20.2 选择nginx进行下载
20.3 解压后有两个文件,分别是key和pem文件,把它放上传到服务器上面
20.4 在nginx配置文件中添加
# https配置
server {
# https默认是443端口
listen 443 ssl;
# 域名
server_name www.linzhehao.cn;
root html;
index index.html index.htm;
# pem文件路径
ssl_certificate cert/4908531_www.linzhehao.cn.pem;
# key文件路径
ssl_certificate_key cert/4908531_www.linzhehao.cn.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;
}
}
# 如果访问80端口,则重定向到443端口
server {
listen 80;
listen [::]:80;
# 域名
server_name www.linzhehao.cn;
# 域名
return 301 https://www.linzhehao.cn$request_uri;
}