网站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:有条件的朋友可以购买付费证书,免费的毕竟没有收费的好