最近看到一个谷歌的新闻,以后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');之前,添加以下四个语句:
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。
评论