网站由http升级为https图文教程

本文是基于凯哥个人网站由http升级为https的记录。

前提说明:凯哥网站在AliYun备案的。所以基于此创建的。如果是腾讯云备案的域名也是类似的。

名词解释:

HTTP与HTTPS是什么?

HTTP协议(超文本传输协议)是互联网上应用最为广泛的一种网络协议,常被用于在web浏览器和网站服务器之间传递信息,http协议传输数据是以明文方式进行传送,如果中途被截获,就可以读取其中的信息。还记得之前公司某一台医疗设备的登录界面被截获,页面上都是广告的情况。

为了解决HTTP协议的这一缺陷,就延伸出HTTPS协议 (安全套接字层超文本传输协议),HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,为web浏览器和服务器之间的通信数据进行加密。

HTTPS协议的主要作用分为两种:

建立一个信息安全通道,来保证数据传输的安全

确认网站的真实性。

HTTP与HTTPS有什么区别

https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比

证书申请流程:

1:在阿里云或者是腾讯云都有免费证书的。(注:因为凯哥备案在阿里云。所以就基于AliYun申请的。)

2:登录阿里云-控制台-产品与服务-搜索SSL。如下图:

网站由http升级为https图文教程_http
 
编辑

点击SSL证书(应用安全)后前往购买页。如下图:

网站由http升级为https图文教程_http_02
 
编辑

选择:云盾证书资源包。如下图:

网站由http升级为https图文教程_http_03
 
编辑

选择免费证书扩容包。如下图:

网站由http升级为https图文教程_http_04
 
编辑

说明:一个自然年内可以领取一次数量为20的免费证书资源包。到自然年结束后,会自动清除.每个自然年是12月31日24:00

立即购买:

网站由http升级为https图文教程_http_05
 
编辑

购买成功后,等了管理控制台:

网站由http升级为https图文教程_http_06
 
编辑

就可以看到证书资源包了。然后点击证书申请,就可以在下面证书管理列表中看到,新增加一条数据。如下图:

网站由http升级为https图文教程_http_07
 
编辑

然后点击证书申请。会打开填写申请。如下图:

网站由http升级为https图文教程_http_08
 
编辑

说明:

证书绑定域名:就是你需要绑定的域名

联系人和所在地,选择后,就可以。CRS生成方式不用修改。

填写完成后,会进入到验证信息。如下图:

网站由http升级为https图文教程_http_09
 
编辑

因为在上一步【CRS生成方式不用修改】我们选择的不是手动。所以,可以直接提交审核。

提交审核很快的。也就1-2分钟吧。如下图:

网站由http升级为https图文教程_http_10
 
编辑

选择需要部署的域名后,选择下载。会打开具体部署方式的证书。然后选择对应的下载就可以。因为凯哥使用的是Nginx。所以下载的是Nginx的。如下图:

网站由http升级为https图文教程_http_11
 
编辑

下载的是一个zip压缩包。将压缩包解压后,就可以得到对应的以PEM和KEY结尾的两个文件。如下图:

网站由http升级为https图文教程_http_12
 
编辑

Nginx部署:

上传证书:

将解压得到的两个文件上传到服务器上。

如凯哥的上传目录:/usr/local/nginx/ssl/lingquan

说明:其中的lingquan是凯哥其中一个网站。如果有多个可以这样区分。

在Nginx的配置文件中配置:

因为凯哥使用的是宝塔面板。所以在宝塔面板对应网站之间修改。如下图:

网站由http升级为https图文教程_http_13
 
编辑

如果没有443的server节点添加。如果有,按照如下配置:

server {

listen 443 ssl;

server_name 你的域名;

root 你的项目根;

index index.html;

ssl_certificate /usr/local/nginx/ssl/xxx/xxx.pem;

ssl_certificate_key /usr/local/nginx/ssl/xxx/xxx.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;

ssl_prefer_server_ciphers on;

}

如下图:

网站由http升级为https图文教程_http_14
 
编辑

说明:
ssl_certificate:是PEM文件的绝对路径

ssl_certificate_key:是KEY文件的绝对路径。

配置完成之后,重启Nginx。然后验证。使用https访问下你的域名。

验证是否配置成功
网站由http升级为https图文教程_http_15
 
编辑
网站由http升级为https图文教程_http_16
 
编辑

可以看到使用https访问的时候,有个绿色的小锁。说明配置成功

http强制跳转到https配置:

有的时候,我们需要将http访问强制跳转到https的。配置如下:

server {

listen 80;

server_name 你到域名;

return 301 https://$host$request_uri;

}

网站由http升级为https图文教程_http_17
 
编辑