将服务免费升级为HTTPS协议

为何需要HTTPS

常用的HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

HTTPS协议则是在HTTP的基础上加入了SSL协议,SSL可以依靠证书来验证服务器的身份,从而保证通信过程中的数据加密。

(一)申请SSL证书

在申请证书之前,首先需要确认需要申请证书的域名。这里是通过阿里云云盾证书服务来购买证书。

证书大致分为几种类型OVDVEV。不同类型的证书对应不同的价格以及限制。OV型证书和DV型证书最大的区别就是OV型包含企业名称信息,而DV型证书不包含企业名称信息。EV型证书相对来说数据保密能力更强,安全性更高,自然价格也贵。这里用了免费的DV型证书。

  • OV

  • DV

(二)服务器配置

将申请下来的证书上传至服务器,并通过nginxssl模块配置HTTPS协议。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# HTTPs server configuration
upstream ssl {
server 127.0.0.1:8080;
}
server {
listen 443 ;
server_name www.yourdomain.com;
ssl on;
ssl_certificate /etc/nginx/yourdomain.com.crt;
ssl_certificate_key /etc/nginx/yourdomain.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass http://ssl;
}
}

nginxSSL模块中配置证书和KEY的文件路径。这里将所有的请求转发至服务器8080端口,具体可根据实际业务作调整。重启nginx就可以通过HTTPS协议访问原来的HTTP协议的8080端口的服务。