WordPress 整站开启HTTPS

703次阅读

共计 2357 个字符,预计需要花费 6 分钟才能阅读完成。

效果展示

WordPress 整站开启HTTPS

申请SSL证书

首先自然是为自己的域名申请SSL证书,可在阿里云申请免费的Symantec证书

WordPress 整站开启HTTPS

待审核完毕后,根据web软件来下载响应的证书,并上传至服务器,移动至Apache目录的cert目录(如果不存在请自行创建)

WordPress 整站开启HTTPS

WordPress 整站开启HTTPS

Apache配置

1、查看mod_ssl模块是否安装,如未安装,则yum install mod_ssl -y进行安装,并进行模块引用

WordPress 整站开启HTTPS

vim /etc/httpd/conf.modules.d/00-ssl.conf(Apache 2.4 yum安装方式路径为此,请根据具体情况引用该模块)

LoadModule ssl_module modules/mod_ssl.so

 

2、将以下代码添加至主题的functions.php中

//WordPress SSL
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, '//'), strstr($siteurl, '//'), $content);
                        $content = str_replace( 'http:'.strstr($upload_dir['baseurl'], '//'), strstr($upload_dir['baseurl'], '//'), $content);
                        return $content;
                }
                ob_start("fanly_ssl_main");
        }
}

3、配置Apache虚拟主机文件

配置虚拟主机文件

vim cloudcared.cn.conf,引入SSL证书

Listen 443
<VirtualHost *:443>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/wordpress
    ServerName www.srelife.cn
    ServerAlias  cloudcared.cn
    <Directory "/var/www/html/wordpress">
        Options FollowSymLinks
        Order allow,deny
        Allow from all
        AllowOverride all
    </Directory>
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    SSLCertificateFile cert/public.pem
    SSLCertificateKeyFile cert/214222623180660.key
    SSLCertificateChainFile cert/chain.pem
    ErrorLog logs/cloudcared.cn/cloudcared.cn-error_log
    CustomLog logs/cloudcared.cn/cloudcared.cn-access_log common
        <ifModule mod_limitipconn.c>
        <location />
        MaxConnPerIP 40
        </location>
        </ifModule>
</VirtualHost>

重定向

要实现访问www.domain.com或domain.com,自动跳转至https://www.domain.com,还需做重定向

复制网站配置文件cloudcared.cn.conf

cp cloudcared.cn.conf cloudcared.conf

vim cloudcared.conf

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/wordpress
    ServerName www.srelife.cn
    ServerAlias  cloudcared.cn
    <Directory "/var/www/html/wordpress">
        Options FollowSymLinks
        Order allow,deny
        Allow from all
        AllowOverride all
    </Directory>
    ErrorLog logs/cloudcared.cn/cloudcared.cn-error_log
    CustomLog logs/cloudcared.cn/cloudcared.cn-access_log common
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{SERVER_PORT} 80
        RewriteRule ^(.*)$ https://www.srelife.cn$1 [R=301,L]
    </IfModule>
        <ifModule mod_limitipconn.c>
        <location />
        MaxConnPerIP 40
        </location>
        </ifModule>
</VirtualHost>

删除SSL配置,加入重定向配置,重启Apache测试即可

至此,访问cloudcared.cn或www.srelife.cn,会匹配到cloudcared.conf网站配置文件,由该文件进行重定向至https://www.srelife.cn,其他80端口域名不受影响,整站HTTPS配置完成。

正文完
 
mervinwang
版权声明:本站原创文章,由 mervinwang 2017-08-21发表,共计2357字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文章搜索