1. David Wu首页
  2. WordPress
  3. WordPress安装教程

WordPress全站启用https设置-WordPress开发教程

HTTPS无疑是要更安全点,但证书折腾也是个体力活,要用好的证书还会有不少的费用产生,当然也有免费的证书,体验盒子在2017年的时候正式启用了HTTPS,最近有人来问WordPress启用https

HTTPS无疑是要更安全点,但证书折腾也是个体力活,要用好的证书还会有不少的费用产生,当然也有免费的证书,体验盒子在2017年的时候正式启用了HTTPS,最近有人来问WordPress启用https要做哪些操作,索性就写成文章供有需要的朋友自取。

WordPress全站启用https设置

步骤

  1. 准备好https证书文件(今天不讲这个环节,改天补充);
  2. 修改Nginx配置;
  3. 修改替换站内已有http连接为https

启用https Nginx配置

##
# @server online
# @host xxx.com
# @desc nginx host rules
##
# HTTP Server
server {
    listen 80;
    server_name xxx.com www.xxx.com;
    rewrite ^ https://$server_name$request_uri permanent;
}
# HTTPS Server
server {
    listen 443;
    server_name xxx.com www.xxx.com;
    root /var/www/path;
    index index.php;
    error_log /var/log/nginx/xxx.com.log crit;
    ssl on;
    ssl_certificate /etc/nginx/ssl/xxx.com.crt;
    ssl_certificate_key /etc/nginx/ssl/xxx.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # do not use SSLv3 ref: POODLE
    
    client_max_body_size 20M;
    location / {
        try_files $uri $uri/ /index.php;
    }
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    location ~* \.(eot|ttf|woff)$ {
        add_header Access-Control-Allow-Origin '*';
    }
    location ~/\.ht {
        deny all;
    }
}

规则解释:启用443端口,指定域名及证书,并设置跨域Header权限(这一步关键,如果不设置跨域的话后边站内所有连接的http都会在console显示不安全警告)。

上面的规则中你需要把网址/程序路径/ssl证书路径改为你自己的,同时如果你有自己的其它设定也要加进去,如果没有只是单纯的WordPress程序直接使用即可,然后重启Nginx服务。

重启后这时候你在服务层已经启用了https服务了。

启用https修改站点地址及内链地址

  1. 修改wordpress后台设置中的wordpress地址及站点地址为https;
  2. 在我们主题的模板中,找到function.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, '//'), '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");
    }
}

目的是将我们内链的图片等地址的http用https代替,使用上面函数并不是从数据库内彻底替换https,而是进行了转换,如果你需要彻底的转换,则需要执行下面SQL:

# 资源附件
UPDATE wp_posts SET post_content = REPLACE(post_content,'http://www.xxx.com/wp-content/uploads','https://www.xxx.com/wp-content/uploads')
# 描连接等
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.xxx.com/','https://www.xxx.com/');

运行前请务必先备份数据库,连接换成你自己的。

结束,跟着步骤做完,你的WordPress启用https已经完成了。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/122141

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注