网站http升级至https

前言

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在客户端和服务器之间传输数据的协议。它们之间的主要区别在于安全性和数据传输的方式:

安全性:HTTP是明文传输协议,数据在传输过程中不加密,容易被窃听和篡改。而HTTPS通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对数据进行加密,确保数据在传输过程中的机密性和完整性,提供更高的安全性。
数据传输方式:HTTP使用的是默认的端口80,而HTTPS使用的是默认的端口443。HTTP的数据传输是明文的,而HTTPS的数据传输是经过加密的。
证书验证:HTTPS使用SSL证书对服务器进行身份验证,确保客户端与服务器之间的通信是安全的。这样可以防止中间人攻击和伪造网站。
由于HTTPS提供了更高的安全性,现在许多网站都采用HTTPS协议来保护用户的隐私和数据安全。

废话不多说,直接上流程

免费证书准备

现在腾讯云,百度云,阿里云都有免费的证书可以申请,大家可以到各自官网上申请,咱们这里选择百度智能云(为啥选择百度云?哈哈,因为楼主在百度呆过几年,对百度还有有感情滴!)

百度智能云搜索ssl证书

在这里插入图片描述

选择立即购买

在这里插入图片描述

选择其他证书品牌-TrustAsia-域名型DV-单域名版(测试版)

在这里插入图片描述

确认订单提交

在这里插入图片描述

ssl证书控制台查看已申请的证书

在这里插入图片描述

选择一个域名点击查看申请进行域名验证

在这里插入图片描述
我这里是第三方的域名注册商,在你购买的域名地址上边,配置下DNS,记录类型选择CNAME方式,主机记录与记录值都需要填一下,具体填写规则,主要看你的域名购买商怎么要求的,一般都差不多
在这里插入图片描述
Type:记录类型
HOST: 主机记录
ANSWER:记录值
填写完成后等待百度云自动发起验证,我们静待结果即可
在这里插入图片描述
验证通过后,我们就可以下载证书,配置到自己的网站上了

下载证书,网站用的nginx,这里选择nginx版本的

在这里插入图片描述

部署证书,这里贴出nginx配置
server {
    listen  80;
    server_name 证书绑定的域名;
    rewrite ^(.*)$ https://$host$1 permanent; #把http转成https
}

server {
    listen 443 ssl;
    server_name 证书绑定的域名;

    ssl_certificate /usr/share/cert/test.crt; #我把证书放到这个目录上里边了,你们随意
    ssl_certificate_key /usr/share/cert/test.key; #我把证书放到这个目录上里边了,你们随意
    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://domain:port(domain替换成证书绑定的域名,默认443端口可以忽略不输入)

ps:有条件的朋友可以购买付费证书,免费的毕竟没有收费的好