一直以来就想弄一个自己的博客,但是实在是找不到合适的,直到前些日子发现了Halo,买了三年的服务器(腾讯云)终于能干点正事了。前些日子逛腾讯云SSL模块的时候发现可以申请免费的证书,为了让自己博客更加安全,也为了让自己熟悉一下由http转换https的过程。
建议:免费SSL证书即为免费的DV SSL证书,可以保护一个完整的域名,不支持通配符,免费SSL证书只需要验证域名信息,签发速度快 。免费DV证书对于个人博客,小微企业,api服务等的服务,可以节省一笔不小的开支,提高用户对网站的信任,一级搜索引擎对SEO的优化。当然在有经济条件的情况下,付费SSL证书不失为一种更好的选择。如果只是个博主,只需要简单的验证域名,选择免费的证书也是可以的,如果网站涉及出售商品,金额交易等还是选择付费证书比较好,更加安全。
1.为什么要从http转换成https
1>HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
2>HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
2.如何申请免费证书
1)登录腾讯云控制台,然后选择 SSL证书。 2)点击购买证书,出现以下页面。 下一步之后选择手动配置DNS验证(如果使用的是腾讯云服务器,也可以使用自动dns验证) 3)完成之后可以直接去 证书管理控制台 可以看到刚刚申请的,然后点击详情(参考文档)。 4)前往SSL控制台等待审核结果,如果信息填写完全正确,很快就会成功。 5)将证书加载到本地,解压之后能够看到 6)本处使用的nginx,所以讲nginx文件夹上传到服务器。
3.配置NGINX反向代理
1)配置nginx配置文件(参考腾讯云官方文档)
# 参考我的配置,配置自己的default.conf文件
server {
listen 443;
server_name localhost;
ssl on; # 注意有的版本的nginx配置为 listen 443 ssl;
# 将 ssl on; listen 443; 结合为一个配置。
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
ssl_certificate /ssl/******; # ssl 证书目录
ssl_certificate_key /ssl/*******;
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;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_pass http://****; #需要代理的地址
}
# ......
}
server{
listen 80;
server_name localhost;
rewrite ^(.*) https://$host$1 permanent; # 将所有访问80端口的都强制转换到443转为https
}
# $host 是预定义变量
# 按esc,然后输入:wq保持退出 可使用 sbin/nginx
2)修改完成,重启 Nginx。即可使用 http://*****.com 进行访问。会强制转换为https。