HTTPS 环境搭建

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

申请证书

  1. 登录阿里云管理控制台
  2. CA证书服务 -> 购买证书
  3. 选择 免费型DV SSL 品牌 Symantec
  4. 购买 -> 支付
  5. 回到步骤2证书服务控制台
  6. 补全域名信息
  7. 等待审核成功

下载证书

  1. 登录证书服务控制台,找到到对应证书点击下载
  2. 得到两个证书文件:214448811130415.key214448811130415.pem
  3. 在Nginx安装目录下创建一个文件夹将其放入,我这里是:
    1
    2
    3
    4
    5
    6
    [root@Guitar cert]# pwd
    /etc/nginx/cert
    [root@Guitar cert]# ll
    total 8
    -rw-r--r-- 1 root root 1679 Jan 16 22:20 213989769950415.key
    -rw-r--r-- 1 root root 3297 Jan 16 22:20 213989769950415.pem

修改配置文件 nginx.conf

将原来注释的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

修改为:

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
26
27
28
29
30
server {
listen 443;
server_name api.xiuni.club;
ssl on;
root /wechat/www;
index index.html;
ssl_certificate /etc/nginx/cert/213989769950415.pem;
ssl_certificate_key /etc/nginx/cert/213989769950415.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;

location /favicon.ico {
root /wechat/www;
}

# 处理静态资源:
location ~ ^\/static\/.*$ {
root /wechat/www;
}

# # 动态请求转发到9000端口:
# location / {
# proxy_pass http://127.0.0.1:9000;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $host;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# }
}

可以看到刚才上传的证书文件路径也要对应的配置上去:

1
2
ssl_certificate   /etc/nginx/cert/213989769950415.pem;
ssl_certificate_key /etc/nginx/cert/213989769950415.key;
  • 也可以根据再自己的情况添加必要的配置

验证

重启Nginx服务

1
service nginx restart

在浏览器中输入https://your.domain.com 可以正常发起https请求

坚持原创技术分享,您的支持将鼓励我继续创作!