曾经HTTP协议使用得最多,但是它的安全问题也慢慢凸显,HTTPS就是为了解决那些问题而来。
背景
网站正式上线之后,虽然有了展示的空间,但是在其他人看来,这个网站是不安全的,因为它不是通过HTTPS协议来打开的,严格点的局域网甚至会直接屏蔽掉这个网址,有些浏览器可能在打开的时候就会提示这是个不安全的网站。
HTTP协议的问题在于它是明文传输的,很可能在传输过程中有重要的个人信息被窃取、监视,所以我们需要升级到HTTPS协议,升级的方法就是安装SSL证书。
安装SSL证书
因为目前使用的腾讯云服务器,下面的步骤都是在腾讯云平台操作,其他平台类似
1.选择证书类型
目前证书类型有:
- 扩展验证型(EV)SSL证书
- 组织验证型(OV)SSL证书
- 域名验证型(DV)SSL证书
目前腾讯云提供的免费SSL证书只有“域名验证型”,所以不用选了…
这种免费证书只支持绑定单域名,即域名A和它的子域名B算是两个域名。
证书有效期为1年,1年后记得重新申请(最好给1年后的自己写封信提醒一下…)
2.打开SSL证书服务
进入控制台,在总览界面的搜索框中输入“SSL证书”搜索,点击进入。

3.申请免费证书
在证书管理页面点击“申请免费证书”

会弹出确认对话框,可以看到有1年的免费证书可选,点击确定

填写域名的信息后,点击下一步

选择域名验证方式:手动DNS验证。这里提示我们要为域名添加一条解析记录,先不用管,点击确认申请。

提交后平台会告诉我们上一步需要添加的解析记录值。

3.配置域名验证
如果是阿里云,我们打开云解析DNS服务-域名解析
如果是腾讯云,我们打开DNS解析-域名解析列表
点击解析设置,进去添加一条解析记录,记录值就是刚才拿到的值,如下

到此,我们的域名验证服务就配置好了。
4.手动安装证书
不同服务器的安装步骤有差异,这里以Nginx服务器为例。
在证书管理-证书列表,点击刚操作列的下载,将证书文件下载到本地。
解压缩后,可获得相关类型的证书文件。其中包含 Nginx 文件夹和 CSR 文件。
登录云服务器,进入nginx配置文件所在目录(我的是/etc/nginx)
编辑nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name www.domain.com;
#证书文件名称
ssl_certificate 1_www.domain.com_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_www.domain.com.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;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /var/www/www.domain.com;
index index.html index.htm;
}
}在 Nginx 执行目录下,通过执行以下命令验证配置文件问题(我的是/usr/sbin/nginx)
1
./nginx -t
重启Nginx
若需要使HTTP的请求自动转到HTTPS上来,可增加如下配置到nginx.conf中,改完重启即可
1
2
3
4
5
6
7server {
listen 80;
#填写绑定证书的域名
server_name www.domain.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
HTTPS访问验证
现在我们可以在浏览器中使用HTTPS协议来访问我们的网站了,有身份证果然安全感增加了好多!

参考文献
[1] 腾讯云-域名型证书申请流程
[2] 百度百科-SSL证书
[3] 腾讯云-如何选择证书安装类型