腾讯云 网站开启HTTPS

时间:2021-08-15 16:38:22

下图是我站点的初始化样子,可以看到只是输出一个字符串,啥也没有,并且没有https。 
这无所谓,因为我们的重点是https,而不是网站内容

腾讯云 网站开启HTTPS

接下来就是配置https的关键步骤了,其实只需要三步而已:

  1. 申请证书

  2. 修改Nginx的vhost配置文件

  3. 重启Nginx

登录腾讯云->进入管理中心,出现下图:

腾讯云 网站开启HTTPS

然后鼠标放到红色框的地方,会出现下拉框,点击上图中箭头指的位置->ssL证书管理,出现下图:腾讯云 网站开启HTTPS

如果您还没有使用过,列表应该是空的,然后点击上图中红色框中的申请证书按钮,出现下图:

腾讯云 网站开启HTTPS

我们可以直接使用默认的免费版证书,点击上图中确定按钮,出现下图:

腾讯云 网站开启HTTPS

在这个页面,在通用名称一栏输入域名,在申请邮箱一栏输入有限,其他可选,下图以我的为例:

腾讯云 网站开启HTTPS

然后点击下一步,会让你验证,直接选择 自动DNS验证

腾讯云 网站开启HTTPS

然后点击上图中确认申请,会弹框提示已提交,然后到列表中就能看到类似的下图:

腾讯云 网站开启HTTPS

在这个列表中,状态一列,我这里显示的已颁发,实际上这里应该是审核中,因为我这个域名之前已经申请过了,所以你们操作完回到这一步,显示的是审核中,然后腾讯审核的效率还是挺快的,几分钟后就颁发下来了。

证书颁发下来之后,然后点击下载,把这个证书下载下来,下载下来是个压缩包,解压之后,打开目录,出现下图:

腾讯云 网站开启HTTPS

上图中内置了四种服务环境,选择自己对应的服务环境,如果没有您的环境,可联系腾讯云,我这里是Nginx:

然后把上图中这两个文件上传到服务器的Nginx配置文件目录,我个人是上传到/usr/local/nginx/conf,但是我有个强迫症,所以我在这个conf目录创建了一个ssl目录,然后在ssl目录中,存放了一堆目录,每个目录都代表的是一个域名,每个目录中存放的就是该域名对应的这两个crt和key文件,上传方式多种,我用的是sftp上传,挺方便

腾讯云 网站开启HTTPS

上传完了之后,就开始配置域名对应的vhost文件了,完整配置如下:

腾讯云 网站开启HTTPS

下面是上图中完整的核心代码

server {
listen 80;
server_name test.sailengsi.com;#换成你的域名
return 301 https://$server_name$request_uri;
}
server {
listen 443;
server_name test.sailengsi.com;#换成你的域名
ssl on;
ssl_certificate ssl/test/1_test.sailengsi.com_bundle.crt;#证书文件
ssl_certificate_key ssl/test/2_test.sailengsi.com.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;
}

解释一下,第二个server,大家肯定能明白,这是官方给的实例,具体可参考文末给的链接。

第一个server,是为了把80端口给重定向到443,也就是把http的访问重定向到https,不然,直接访问https是没问题,但是用户访问时,可能就直接输入域名啥的,这个时候默认走的是80端口,所以我们通过这一步直接重定向,就做到了全站https。

ssl配置中有个注意的地方:

  1. ssl_certificatessl_certificate_key,后面的引入的路径,要么是绝对路径,从/开始,要么就像我这样,要么直接在当前目录下开始找,不要写./或者../啥的,Nginx不支持这种路径,会报错,会报错,会报错!!!

配置完成之后,重启以下命令重启Nginx:

/usr/local/nginx/sbin/nginx -s reload

然后,再次刷新页面,就会发现,直接变成https,成功的界面如下图

腾讯云 网站开启HTTPS