如何使你的网站支持https

HTTPS一般指HTTP over TLS或者HTTP over SSL或者HTTP Secure,是一种通过计算机网略进行安全通信的传输协议,HTTPS经由HTTP进行通信,但是使用SSL/TLS来加密数据包,HTTPS的主要目的是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。
这里使用腾讯云提供的一年免费SSL证书为例,讲解如何使你的网站支持HTTPS。

1 申请证书

首先登录腾讯云的管理控制台,找到SSL证书->证书申请页面,并按照要求填写域名、邮箱等申请资料:

下一步,选择验证方式:

这里推荐使用DNS验证,基本上一分钟之内就可以生效了。

到控制台DNS解析,找到需要添加证书的域名,按照上面要求的内容添加一条解析记录:

然后等待一分钟左右就可以下载到证书了。里面是一个压缩文件,解压后可以看到里面是适用于Apache、Nginx、Tomcat、IIS等各种服务器的私钥配置文件和pem文件

2 配置Nginx

到Nginx的配置目录,默认为/etc/nginx,新建一个cert的文件夹,将下载的证书文件上传到这里。

编辑该域名对应的配置文件,我这里由于配置了虚拟主机所以在/etc/nginx/vhosts/domain.conf,:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 配置http重定向至https
server {
listen 80;
server_name geekhall.cn www.geekhall.cn;
return 301 https://$server_name$request_uri;
}
# 配置https
server {
listen 443 ssl;
server_name geekhall.cn www.geekhall.cn;

# ssl证书地址
ssl_certificate cert/geekhall.cn.pem;
ssl_certificate_key cert/geekhall.cn.key;

# ssl验证配置
ssl_session_timeout 5m; # 缓存有效期
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #安全链接可选的加密协议
ssl_prefer_server_ciphers on; # 使用服务器端的首选算法

}

重启Nginx服务后使用https访问域名确认生效。