网站由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。如下图:
点击SSL证书(应用安全)后前往购买页。如下图:
选择:云盾证书资源包。如下图:
选择免费证书扩容包。如下图:
说明:一个自然年内可以领取一次数量为20的免费证书资源包。到自然年结束后,会自动清除.每个自然年是12月31日24:00
立即购买:
购买成功后,等了管理控制台:
就可以看到证书资源包了。然后点击证书申请,就可以在下面证书管理列表中看到,新增加一条数据。如下图:
然后点击证书申请。会打开填写申请。如下图:
说明:
证书绑定域名:就是你需要绑定的域名
联系人和所在地,选择后,就可以。CRS生成方式不用修改。
填写完成后,会进入到验证信息。如下图:
因为在上一步【CRS生成方式不用修改】我们选择的不是手动。所以,可以直接提交审核。
提交审核很快的。也就1-2分钟吧。如下图:
选择需要部署的域名后,选择下载。会打开具体部署方式的证书。然后选择对应的下载就可以。因为凯哥使用的是Nginx。所以下载的是Nginx的。如下图:
下载的是一个zip压缩包。将压缩包解压后,就可以得到对应的以PEM和KEY结尾的两个文件。如下图:
Nginx部署:
上传证书:
将解压得到的两个文件上传到服务器上。
如凯哥的上传目录:/usr/local/nginx/ssl/lingquan
说明:其中的lingquan是凯哥其中一个网站。如果有多个可以这样区分。
在Nginx的配置文件中配置:
因为凯哥使用的是宝塔面板。所以在宝塔面板对应网站之间修改。如下图:
如果没有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;
}
如下图:
说明:
ssl_certificate:是PEM文件的绝对路径
ssl_certificate_key:是KEY文件的绝对路径。
配置完成之后,重启Nginx。然后验证。使用https访问下你的域名。
验证是否配置成功
可以看到使用https访问的时候,有个绿色的小锁。说明配置成功
http强制跳转到https配置:
有的时候,我们需要将http访问强制跳转到https的。配置如下:
server {
listen 80;
server_name 你到域名;
return 301 https://$host$request_uri;
}