一.取得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');

目前我的文章中没有图片,未来图片打算使用图床的形式存储,因此未能得到测试。

相关链接:

WordPress 开启全站 HTTPS

在 WordPress 設定 HTTPS,強制使用 SSL 安全加密協定教學