Nginx使用SSL证书配置https

Nginx使用SSL证书配置https

二月 24, 2019

申请SSL证书

首先申请SSL证书,这里以腾讯云的免费DVSSL证书为例,前往 https://console.cloud.tencent.com/ssl/apply

  • 填入通用名称,比如 www.wxio.club
  • 最好不要密码
  • 填好其他信息
  • 点击下一步,如果域名在腾讯云解析,就选择 自动DNS验证,否则按照选项进行配置
  • 点击确认申请

下载和上传证书

前往 https://console.cloud.tencent.com/ssl 下载刚申请的证书,以 www.wxio.club 为例,解压后有

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.
├── Apache
│   ├── 1_root_bundle.crt
│   ├── 2_www.wxio.club.crt
│   └── 3_www.wxio.club.key
├── IIS
│   ├── keystorePass.txt
│   └── www.wxio.club.pfx
├── Nginx
│   ├── 1_www.wxio.club_bundle.crt
│   └── 2_www.wxio.club.key
├── Tomcat
│   ├── keystorePass.txt
│   └── www.wxio.club.jks
└── www.wxio.club.csr

复制Nginx里的 1_www.wxio.club_bundle.crt 和 2_www.wxio.club.key 到服务器的 /etc/nginx (其实那都可以)

配置 nginx.conf

编辑器打开 /etc/nginx/nginx.conf, 在 http 下面,添加或者修改配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
listen 80;
server_name www.wxio.club wxio.club;
rewrite ^(.*)$ https://${server_name}$1 permanent; # 这里是使 http 跳转到 https
}

server {
listen 443;
server_name www.wxio.club wxio.club;

ssl on;
ssl_certificate 1_www.wxio.club_bundle.crt; # 这里可以写 .crt 的全路径
ssl_certificate_key 2_www.wxio.club.key; # 这里可以写 .key 的全路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

location / {
root /home/git/www/public;
index index.html index.htm;
}

}

重启 nginx 服务

1
service nginx restart