给站点开启SSL/HTTPS
给网站地址栏上添加绿色小锁:我变绿了,也变安全了。
国庆旅游归来早,忙趁假期瞎折腾。
为什么要使用https
- SSL是应用层和运输层之间的加密协议,相比于http的明文传输来的更加安全。SSL能够有效降低中间人攻击的风险。比如使用
Fiddler
软件抓取https包的时候就需要先向浏览器添加自己的CA
证书,因为没有证书信任的话就无法获得加密的内容。
- 全站https有利于提升网站在搜索引擎的收入率。在相同权重的情况下,搜索引擎会认为https站点的安全性更高而将网站排在前面。
- 站点使用https可以让自己的站点更加醒目(说白了就是想装13啦)。
申请SSL证书
有许多的免费SSL证书提供商。我用的是腾讯云的DV SSL
证书。在这里可以申请TrustAsia
提供的免费证书,为期1年。(顺便瞟了一眼OV
和EV
的企业付费证书,价格基本5k以上…)
申请需要验证你的主机和域名,会要求在指定位置放置验证文件或者给域名添加一条解析记录。如果你的域名也是从腾讯云买的,它会给你自动添加。验证的速度很快,大约10分钟就能审核通过。
如果你等了1小时还没通过就别等了,赶紧检查一下自己填的信息有没有错吧,不要像我一样把域名打错了然后傻等了一天T T。
审核通过后会颁发的证书可以下载到本地。打开后里面有为各种http服务器使用的证书和密钥文件。我用的是Apache
,就把Apache文件夹下的3个文件上传到服务器上。
编辑Apache配置
编辑 etc/httpd.conf
文件,找到#LoadModule ssl_module modules/mod_ssl.so
和#Include conf/extra/httpd-ssl.conf
,去掉前面的#号注释,启用SSL模组。
编辑/lampp/etc/extra/httpd-ssl.conf
文件添加主机和证书:
1 | <VirtualHost 0.0.0.0:443> |
完成后需要重启Apache服务器。
开启443端口
https协议使用的不是80端口而是443端口。如果有防火墙记得允许443端口的TCP
数据包通过。
Wordpress设置
wordpress目录下的.htaccess
文件:
1 | <IfModule mod_rewrite.c> |
这样使用http访问网页会被301
永久重定向至https页面。
编辑wp-config.php
:
在 “if ( !defined('ABSPATH') )” 前面,即"请不要再继续编辑”的提示前面添加。这样登陆博客时会强制使用https以保障安全。
1 | $_SERVER['HTTPS'] = 'ON'; //网页下的链接全部由'http://'转换为'https://' |
更改域名信息、固定链接?
在有的教程里面还说需要像更换域名那样把全站的数据库中所有的“http”链接全部转换成“https”。其实不推荐也不需要这么做。上面的$_SERVER['HTTPS'] = 'ON';
设置过以后,wordpress是会自动识别转换的。
结束
现在,打开网站 https://blog.beanbang.cn 就可以正常访问了。即使是不加https前缀也能自动跳转到https。由于中间环节多了一个验证加密的步骤,网站打开的时间会比以往更长一些。
参考资料