步骤一:申请证书
前往免费的阿里云SSL:云盾证书服务 ,按下图选择:
免费数字证书,最多保护一个明细子域名,不支持通配符,一个阿云帐户最多签发20张免费证书。
步骤二:SSL证书绑定域名
申请完成后点击控制面板找到安全(云盾)下的SSL按提示绑定域名,按下图填写,然后提交审核,待没有问题审核后证书即可下发。
步骤三:CDN设置
阿里云虚拟主机并不支持https,这样就需要购买其CDN服务,点击CDN,购买,根据需要选择所要的类型,我选择的是100G,按流量计费。接下来就是对CDN进行配置,首先是按要求绑定域名,根据需要选择类型,我的站选择了:图片小文件。
接下来先根据步骤绑定域名再进行相关设置。https设置可以参考下图,这里直接选择阿里云证书,选择刚申请的对应证书即可,自有证书请按提示操作:
步骤四:SSL证书推送
完成上面操作返回到SSL证书控制面板,对SSL对CDN进行推送,如推送成功表示设置无问题。如下图:
步骤五:域名解析
返回到CDN控制面板,可以查看运行信息,看到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。