wordpress站点如何转换成https站点

在国家发布安全红头文件后,安全已然成为一个明显业务趋势,当然web站点已一样,各大搜索引擎也将https站点权重加大。所以抽出一天时间把我的站点:https://www.datacenterfarm.com转换成https//www.datacenterfarm.com。

一、部署环境:

操作系统:linux (CentOS 7.2)

web服务器:Apache/2.4.6

二、部署步骤

1.SSL证书申请

SSL证书网上有很多免费的个人证书直接申请。也可自己使用工具手动生成,但会产生 “未授权访问被拒绝,或者安全性设置已到期,如/ :ERR_CERT_AUTHORITY_INVALID ”,不建议使用。

如果你是腾讯或阿里服务器的话,就比较方便可以直接在后台申请证书,我就是腾讯的服务器,腾讯有自动添加DNS功能,自动做证书映射。一般申请到的证书,会给你三个文件(2_www.datacenterfarm.com.crt、3_www.datacenterfarm.com.key、1_root_bundle.crt)。先将以上文件全部上传到服务器。上传到任何目录均可,不限制,可按照文中来,后续修改,我上传到/etc/httpd/ssl/目录下,如果没有SSL就新建一个。

2.编译安装mod_ssl.so模块。

这个模块必须安装,否则没有下面两个文件,会导致SSL无法安装成功。

yum安装方式:yum install mod_ssl。安装成功后会生成mod_ssl.so 且已加载。

3.配置SSL文件

(1)在 /etc/httpd/conf 目录下的 httpd.conf 配置文件找到 Include conf.modules.d/*.conf(用于加载配置 SSL 的配置目录)配置语句,并确认该配置语句未被注释。若已注释,请去掉首行的注释符号(#),保存配置文件。

(2)在 /etc/httpd/conf.modules.d 目录下的 00-ssl.conf 配置文件找到 LoadModule ssl_module modules/mod_ssl.so(用于加载 SSL模块)配置语句,并确认该配置语句未被注释,若已注释,请去掉首行的注释符号(#),保存配置文件。

(3)编辑vhost和ssl.conf文件

编辑 /etc/httpd/conf.d 目录下的 ssl.conf 配置文件。修改如下内容:

  1. <VirtualHost 0.0.0.0:443>   
  2.       DocumentRoot "/var/www/html/datacenterfarm"    
  3.       #填写证书名称   
  4.       ServerName www.datacenterfarm.com    
  5.       #启用 SSL 功能   
  6.       SSLEngine on    
  7.       #证书文件的路径   
  8.        SSLCertificateFile /etc/httpd/ssl/2_www.datacenterfarm.com.crt    
  9.       #私钥文件的路径   
  10.        SSLCertificateKeyFile /etc/httpd/ssl/3_www.datacenterfarm.com.key    
  11.       #证书链文件的路径   
  12.        SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt    
  13.  </VirtualHost>  

编辑 /etc/httpd/conf.d 目录下的 virtual.conf 配置文件。修改如下内容:

  1. <VirtualHost *:443>    
  2.    ServerName www.datacenterfarm.com   
  3.    DocumentRoot "/var/www/html/datacenterfarm"    
  4.    SSLEngine on    
  5.    SSLCertificateFile /etc/httpd/ssl/2_www.datacenterfarm.com.crt   
  6.    SSLCertificateKeyFile /etc/httpd/ssl/3_www.datacenterfarm.com.key   
  7.    SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt   
  8. </VirtualHost>  

重启http服务(systemctl restart httpd.service),让其生效。SSL证书安装后,https版本就可以访问了。

4.全站URL转HTTPs。

(1)WordPress后台设置-常规,把博客地址改为https地址。

WordPress Address(URL):https://www.datacenterfarm.com

Site Address(URL):https://www.datacenterfarm.com

这样,绝大部分导航中的链接就由WP系统自动改为https版本了。但很可能还有一些导航性质的链接是硬编码在模板中的,

(2)在wordpress的主题文件中找到functions.php文件,增加替换内页https代码。

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

(3)全站301转向

全站做http到https的301转向。在.htaccess文件中加如下信息:

  1. # BEGIN rlrssslReallySimpleSSL rsssl_version[3.3]   
  2. <IfModule mod_rewrite.c>   
  3. RewriteEngine on   
  4. RewriteCond %{HTTPS} !=on [NC]   
  5. RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]   
  6. </IfModule>   
  7. # END rlrssslReallySimpleSSL  

这样全站转https就大功告成了。

wordpress站点如何转换成https站点
weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

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