给你的域名加把锁(Ubuntu下Nginx配置SSL)

You can walk as far as you want. ——《憨豆特工3》

海阔凭鱼跃,天高任鸟飞。

  本文旨在用图文的方式,尽可能简单的告诉你如何去在Ubuntu18.04的环境下给Nginx配置SSL。

登录腾讯云

https://console.cloud.tencent.com/ssl

选择你需要的证书类型

因为只是个人网站,所以在此我选择的是免费版DVSSL证书。

填写你的域名信息

按需填写域名身份验证

点击查看证书详情



腾讯云的验证速度还是可以的,大概需要10分钟左右,你就会收到验证通过的短信或者邮件了。

下载证书


你会得到一个ZIP的压缩包,里面会有各种服务器所需的配置,我们需要的是Nginx的。

将证书传输至服务器


将刚才下载的压缩包解压,在Nginx的平级目录打开git(如果不知道如何在本地安装安装git,请自行度娘。)使用scp将文件传输至服务器。

1
scp -r Nginx/ root@192.168.80.1:/etc/nginx/conf

-r是递归复制整个目录,也就是说它会将Nginx下的文件包括Nginx这个文件夹一起复制下来(你也可以将Nginx下的文件挨个传输);root服务器的用户名,可按需更改;192.168.80.1为你的服务器公网IP,按需修改;/etc/nginx/conf为将文件传输到服务器所存放的位置,如果没有conf这个文件夹,使用以下命令创建:

1
sudo mkdir conf

至此可将证书传输至服务器。

登录至服务器

1
ssh root@192.110.80.1

使用ssh命令登录至服务器。root为用户名,按需修改;192.110.80.1为你的服务器公网IP地址,按需修改为你自己的IP。

打开你的Nginx配置文件

1
vim /etc/nginx/sites-available/你的配置文件

/etc/nginx/sites-available/为Ubuntu存放配置文件的地方,centos7的为/usr/local/nginx/。

如果你的项目是按照上篇文章部署的,可直接下面的配置(Ubuntu18.04+Hexo+Nginx)将域名修改为你自己的域名。

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
31
32
33
server {
#SSL 访问端口号为 443
listen 443;
#填写绑定证书的域名
server_name www.your_server_name.cn;
#启用 SSL 功能
ssl on;
#证书文件名称
ssl_certificate /etc/nginx/conf/Nginx/1_your_server_name_bundle.crt;
#私钥文件名称
ssl_certificate_key /etc/nginx/conf/Nginx/2_your_server_name.key;
ssl_session_timeout 5m;
#请按照这个协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照这个套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
root /home/hexo;
index index.html index.htm;
error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}

index index.html index.php index.htm;
include /etc/nginx/default.d/*.conf;

location / {
}
}

测试配置文件是否可用

1
nginx -t

如果正常,则为下图所示。否则,需按照错误提示修改配置文件。

将http重定向HTTPS

1
2
3
4
5
6
7
server {
listen 80;
#填写绑定证书的域名
server_name www.your_server_name.com.cn;
#把http的域名请求转成https
rewrite ^(.*)$ https://$host$1 permanent;
}

将域名修改为自己的域名

重启Nginx

1
service nginx restart

打开浏览器访问你的域名,你就会发现你的域名前面有了一把小锁。