wordpress如何在阿里云虚拟主机部署https

╭飛雪飄零╮ 站长评论32,196字数 1902阅读模式
摘要最近看到一个谷歌的新闻,以后https是一个趋势,一直以来就想把网站加强下安全管理。鉴于一直没空,昨晚才抽空做了下,但中途出了点问题就终止了,刚下班倒腾下才基本完成。下面把我的经验...

最近看到一个谷歌的新闻,以后https是一个趋势,一直以来就想把网站加强下安全管理。鉴于一直没空,昨晚才抽空做了下,但中途出了点问题就终止了,刚下班倒腾下才基本完成。下面把我的经验分享给各位网友。

步骤一:申请证书

前往免费的阿里云SSL:云盾证书服务 ,按下图选择:

免费数字证书,最多保护一个明细子域名,不支持通配符,一个阿云帐户最多签发20张免费证书。

wordpress如何在阿里云虚拟主机部署https

步骤二:SSL证书绑定域名

申请完成后点击控制面板找到安全(云盾)下的SSL按提示绑定域名,按下图填写,然后提交审核,待没有问题审核后证书即可下发。

wordpress如何在阿里云虚拟主机部署https

步骤三:CDN设置

阿里云虚拟主机并不支持https,这样就需要购买其CDN服务,点击CDN,购买,根据需要选择所要的类型,我选择的是100G,按流量计费。接下来就是对CDN进行配置,首先是按要求绑定域名,根据需要选择类型,我的站选择了:图片小文件。

接下来先根据步骤绑定域名再进行相关设置。https设置可以参考下图,这里直接选择阿里云证书,选择刚申请的对应证书即可,自有证书请按提示操作:

wordpress如何在阿里云虚拟主机部署https

步骤四:SSL证书推送

完成上面操作返回到SSL证书控制面板,对SSL对CDN进行推送,如推送成功表示设置无问题。如下图:

wordpress如何在阿里云虚拟主机部署https

步骤五:域名解析

返回到CDN控制面板,可以查看运行信息,看到CNAME值,将该值复制,一会会用到,如下图:

wordpress如何在阿里云虚拟主机部署https

在域名解析面板,删除原来的A记录,进行CNAME解析,如下图:

wordpress如何在阿里云虚拟主机部署https

至此,前面的设置到此结束。接下来对数据库进行操作。

步骤六:修改网站URL

方法一:在wordpress后台控制面板,设置》常规,将wordpress地址(URL)和站点地址(URL)都将http格式换成https格式,如下图:

wordpress如何在阿里云虚拟主机部署https

方法二:打开数据库表:wp_options,将option_name:siteurl,home两个记录的option_value都从原来的http改成https格式。

步骤七:修改wp-config.php

在wp-config.php文件require_once(ABSPATH . 'wp-settings.php');之前,添加以下四个语句:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
$_SERVER['HTTPS'] = 'ON';
define( 'CONCATENATE_SCRIPTS', false );

步骤八:重定向301状态

新建一个.htaccess放在网站根目录,代码如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

步骤九: HTTPS 绝对链接替换

当到了第八步时,打开网站已经是https了,但图片还是http,浏览器提示不安全,接下来最后一步可以解决问题,编辑当前主题下的 functions.php 文件,加入以下代码:

//替换图片http为https
add_filter('get_header', 'fanly_ssl');
function fanly_ssl(){
    if( is_ssl() ){
        function fanly_ssl_main ($content){
            $siteurl = get_option('siteurl');
            $upload_dir = wp_upload_dir();
            $content = str_replace( 'http:'.strstr($siteurl, '//'), 'https:'.strstr($siteurl, '//'), $content);
            $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), 'https:'.strstr($upload_dir['baseurl'], '//'), $content);
            return $content;
        }
        ob_start("fanly_ssl_main");
    }
}

经过九步操作,整个网站实现了全部https。

继续阅读
 最后更新:2020-2-4
╭飛雪飄零╮

发表评论