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

  • A+
所属分类:站长
摘要

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

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

步骤一:申请证书

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

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

步骤二:SSL证书绑定域名

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

步骤三:CDN设置

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

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

步骤四:SSL证书推送

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

步骤五:域名解析

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

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

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

步骤六:修改网站URL

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

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

步骤七:修改wp-config.php

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

  1. define('FORCE_SSL_ADMIN', true);
  2. define('FORCE_SSL_LOGIN', true);
  3. $_SERVER['HTTPS'] = 'ON';
  4. define( 'CONCATENATE_SCRIPTS', false );

步骤八:重定向301状态

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

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^index\.php$ - [L]
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. RewriteRule . /index.php [L]
  8. </IfModule>

步骤九: HTTPS 绝对链接替换

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

  1. //替换图片http为https
  2. add_filter('get_header', 'fanly_ssl');
  3. function fanly_ssl(){
  4.     if( is_ssl() ){
  5.         function fanly_ssl_main ($content){
  6.             $siteurl = get_option('siteurl');
  7.             $upload_dir = wp_upload_dir();
  8.             $content = str_replace( 'http:'.strstr($siteurl, '//'), 'https:'.strstr($siteurl, '//'), $content);
  9.             $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), 'https:'.strstr($upload_dir['baseurl'], '//'), $content);
  10.             return $content;
  11.         }
  12.         ob_start("fanly_ssl_main");
  13.     }
  14. }

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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: