一.取得SSL证书
1.cPanel一键生成Lets Encrypt的证书
支持一键生成SSL的cPanel会比较方便,Lets Encrypt的情况可以自行百度一下,不多做赘述。生成之后,不套CDN的话,很容易就可以直接通过HTTPS访问主页。
2.通过CloudFlare 添加HTTPS
申请后,添加域名,申请CDN,自带的Flexible可以提供客户端到CloudFlare的半程HTTPS加密,对于没有证书的VPS是相对安全的,但是,如果已经有证书的话,还想要使用cloudflare的CDN,我是没有成功,在CF中上传自定义SSL是需要升级订阅的。所以我将域名中的dns服务器改回了默认的,使用一键生成的SSL,才可以正常的访问。只能放弃CF的CDN了。
二.设置开启强制HTTPS
1.开启后台HTTPS登陆
如果全站不想开HTTPS的话,只开后台也是可以保障管理员登陆安全的。也是最简单的一步。
在网站根目录里边, config.php,直接在这个文件的末尾另起一行,追加两行代码:
define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);
2.301重定向
在主机根目录下,我的是在public_html中,.htaccess 若是没有的话,记得开启显示隐藏文件,就可以找到。打开它添加
# Force HTTPS RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
或者我在网上搜索的另一个个性化代码
#网站定制化开启 HTTPS 的301重定向 RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC] RewriteCond %{HTTP_HOST} www.logcg.com RewriteRule ^.*$ https://www.logcg.com%{REQUEST_URI} [L,R=301]
作者表述的是考虑到老版本IE和国内搜索引擎抓取HTTP的情况,所改变的代码。
使用这套代码,我使用火狐打开主页默认的还是HTTP的,因此,就没有考虑。
3.其它设置
设置-常规中主页的https地址,以及固定链接的http协议,都可以更改。
图片的问题,可以通过:
找到当前主题下的 function.php 文件,编辑之,在里边代码的末尾追加如下代码:
/* 替换图片链接为 https */ function my_content_manipulator($content){ if( is_ssl() ){ $content = str_replace('http://www.logcg.com/wp-content/uploads', 'https://www.logcg.com/wp-content/uploads', $content); } return $content; } add_filter('the_content', 'my_content_manipulator');
目前我的文章中没有图片,未来图片打算使用图床的形式存储,因此未能得到测试。