给站点开启SSL/HTTPS

给网站地址栏上添加绿色小锁:我变绿了,也变安全了。

国庆旅游归来早,忙趁假期瞎折腾。

为什么要使用https

  1. SSL是应用层和运输层之间的加密协议,相比于http的明文传输来的更加安全。SSL能够有效降低中间人攻击的风险。比如使用Fiddler软件抓取https包的时候就需要先向浏览器添加自己的CA证书,因为没有证书信任的话就无法获得加密的内容。
SSL安全会话建立过程 | 《计算机网络》
  1. 全站https有利于提升网站在搜索引擎的收入率。在相同权重的情况下,搜索引擎会认为https站点的安全性更高而将网站排在前面。
  2. 站点使用https可以让自己的站点更加醒目(说白了就是想装13啦)。

申请SSL证书

有许多的免费SSL证书提供商。我用的是腾讯云的DV SSL证书。在这里可以申请TrustAsia提供的免费证书,为期1年。(顺便瞟了一眼OVEV的企业付费证书,价格基本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
2
3
4
5
6
7
8
<VirtualHost 0.0.0.0:443>
DocumentRoot "/opt/lampp/htdocs/wordpress/"
ServerName blog.beanbang.cn
SSLEngine on
SSLCertificateFile /opt/lampp/ssl-crt/2_blog.beanbang.cn.crt
SSLCertificateKeyFile /opt/lampp/ssl-crt/3_blog.beanbang.cn.key
SSLCertificateChainFile /opt/lampp/ssl-crt/1_root_bundle.crt
</VirtualHost>

完成后需要重启Apache服务器。

开启443端口

https协议使用的不是80端口而是443端口。如果有防火墙记得允许443端口的TCP数据包通过。

在安全组中允许TCP443端口

Wordpress设置

wordpress目录下的.htaccess文件:

1
2
3
4
5
6
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

这样使用http访问网页会被301永久重定向至https页面。

编辑wp-config.php

在 “if ( !defined('ABSPATH') )” 前面,即"请不要再继续编辑”的提示前面添加。这样登陆博客时会强制使用https以保障安全。

1
2
3
4
5
6
$_SERVER['HTTPS'] = 'ON'; //网页下的链接全部由'http://'转换为'https://'
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true); //管理员登陆博客时跳转为https

/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */
if ( !defined('ABSPATH') )

更改域名信息、固定链接?

在有的教程里面还说需要像更换域名那样把全站的数据库中所有的“http”链接全部转换成“https”。其实不推荐也不需要这么做。上面的$_SERVER['HTTPS'] = 'ON';设置过以后,wordpress是会自动识别转换的。

结束

现在,打开网站 https://blog.beanbang.cn 就可以正常访问了。即使是不加https前缀也能自动跳转到https。由于中间环节多了一个验证加密的步骤,网站打开的时间会比以往更长一些。

网站https标志

参考资料

作者

Lazyb0x

发布于

2018-10-09

更新于

2022-09-10

许可协议

评论