WordPress使用SSL证书全站开启HTTPS最简单的办法

本来打算给网站做一个微信小程序版本,却发现需要网站开启HTTPS,于是不得不折腾,其实在之前就已经想过要全站转为HTTPS支持,还买了一年的SSL证书,最后证书过期了也没开启。今晚用了数个小时的折腾,二赛君网站全站开启HTTPS.以此记录实现过程。

一:购买SSL证书

SSL证书购买途径很多,基本上大的网络云服务商都可以购买,其价格也不菲,当然对于我们个人博客来说,用免费TrustAsia(赛门铁克)颁发的证书就可以。

提供三个申请地址:西部数码七牛云又拍云

博主是在西部数码购买的SSL证书,参考了西部数码的安装教程。

二:虚拟主机部署SSL证书

在控制面板中选择部署SSL,然后一键导入即可。也可以手动复制证书内容填写在私钥和证书位置,部署完成之后会显示部署状态。

三:设置Wordpress

首先将后台设置里将站点地址修改为https形式的URL。

然后找到Wordpress网站根目录的配置文件wp-config.php,在里面找到下面这段代码

/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */

/** WordPress目录的绝对路径。 */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

在上面这段代码的前一行,加入下面这段代码

$_SERVER['HTTPS'] = 'ON'; //设置Wordpress全站开启HTTPS。

注意:前面的代码我特意用红色字体说明了代码必须要加在特定的位置,这个位置很关键,加错了位置(尤其是加在了后面的),绝对会出现无法全站通过HTTPS访问的后果。

加完代码后如下图所示:

保存wp-config.php文件,并用FTP上传覆盖。

这时候前后台应该可以用https进行访问了。浏览器按F12查看是否有http的请求,如果有请自行修改。

 

这里走了很多弯路,就是改完后台站点地址为https后,访问前台,页面无格式,找不到js和css文件,F12发现很多的http请求,有博客说在主题的functions.php下修改,参考参考3和4,但是这样并没有成功,折腾了很久,最后全部注释掉,使用参考2解决了问题。

四:设置全站301重定向

虚拟主机:可以通过ftp或登录后进入到主机管理面板-文件管理,进入wwwroot,新建一个文件命名为web.config并编辑添加以下规则,注意替换为自己的域名。当然如果你的主机是linux的其他环境,请参考参考5中对应的设置。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
        <rewrite>
            <rules>
               <rule name="301" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />
                    </conditions>
                    <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" />
               </rule>
            </rules>
        </rewrite>
    </system.webServer> 
</configuration>

参考:

  1. 虚拟主机部署ssl证书(https)流程
  2. WordPress使用SSL证书开启HTTPS最简单的办法
  3. WordPress全站开启https的方法
  4. WordPress全站开启SSL,终于有了小绿锁!
  5. 部署https(ssl)后设置301跳转将http跳转到https
  6. 免费SSL证书大全,附阿里云、百度云、腾讯云免费SSL证书申请攻略

留下评论