信科网络 · 11 年只做 WordPress | 建站 / 主题 / 插件 / 商城 / 迁移 / 托管 | 累计服务 3000+ 企业 | 源码全交付
服务热线:13280692153 邮箱:web@wordpressx.com
工作日 08:30-18:0013280692153 免费诊断
首页/WordPress 教程/WordPress 配置 HTTPS:证书、混合内容与全站跳转
BLOG

WordPress 配置 HTTPS:证书、混合内容与全站跳转

分类 发布 2026-10-12

HTTPS 配完最常见的三种残留:浏览器地址栏的小锁出来了,但控制台一片红;首页跳到了 https,内页还是 http;后台能进,前台白屏。这三件事分别对应证书链、站点地址、混合内容,配置顺序错了就会反复。

证书选型:DV 够用,别为 EV 多花钱

域名验证型(DV)证书只验证域名归属,签发几分钟,免费的和付费的在浏览器里显示完全一样。组织验证型(OV)会核验企业工商信息,适合需要展示主体资质的场景,价格从几百到几千不等。扩展验证型(EV)现在主流浏览器已经不再显示绿色地址栏,性价比很低。

类型 验证内容 签发时间 适用场景
免费 DV(Let’s Encrypt) 域名解析归属 1 到 5 分钟 绝大多数企业站、博客、展示站
付费 DV 域名解析归属 10 分钟到 2 小时 需要一年期、不想折腾自动续签
OV 域名 + 企业营业执照 1 到 3 个工作日 金融、招投标、需提交资质的场景
泛域名 DV 主域所有权 10 分钟 有 blog、shop、m 等多个子域

Let’s Encrypt 有效期 90 天,靠自动续签。宝塔面板在「网站 → 设置 → SSL → Let’s Encrypt」申请时会自动写续签任务,但要确认计划任务里的 ssl-renew 是启用状态——续签失败最常见的后果是某天早上全站证书过期,浏览器直接拦截。

验证方式有两种。文件验证要求 /.well-known/acme-challenge/ 这个目录能被公网访问,如果站点做了强制跳转或者 CDN 缓存了这个路径,验证会一直失败,这时改成 DNS 验证。泛域名证书只能用 DNS 验证,需要在域名解析里加一条 TXT 记录,加完等一两分钟再点验证,别急着重复提交,重复提交容易触发频率限制,一周内都签不下来。

Nginx 的 443 配置

宝塔用户点一下「强制 HTTPS」就能生成,但手工维护的机器要自己写。核心是四行:证书、私钥、协议版本、跳转。

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate     /www/server/panel/vhost/cert/example.com/fullchain.pem;
    ssl_certificate_key /www/server/panel/vhost/cert/example.com/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    root  /www/wwwroot/example.com;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        include        fastcgi_params;
        fastcgi_pass   unix:/tmp/php-cgi-74.sock;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

两个细节。证书路径要用 fullchain.pem 而不是 cert.pem,否则部分安卓机和旧版 Java 客户端会报证书链不完整。协议版本只留 TLSv1.2 和 1.3,TLSv1.0/1.1 已经被主流浏览器标记为不安全,留着只会让安全扫描扣分。改完执行 nginx -t 再 reload,直接 reload 会在配置有语法错误时把整站搞挂。

站点地址改成 https:先改数据库,再改配置

只在浏览器里访问 https 不够,WordPress 内部还认为自己是 http,后台资源、编辑器、定时任务全都会生成 http 链接。要改的是 wp_options 表里的 siteurl 和 home 两个值,路径在「设置 → 常规 → WordPress 地址」和「站点地址」。

UPDATE wp_options SET option_value = 'https://www.example.com'
WHERE option_name IN ('siteurl', 'home');

表前缀不是 wp_ 的要换成实际前缀。执行前先备份数据库,改错了可以在 wp-config.php 里临时加两行救回来:

define('WP_HOME', 'https://www.example.com');
define('WP_SITEURL', 'https://www.example.com');

这两行优先级高于数据库,加了之后后台能进,再回去改数据库,改完删掉这两行。文章正文和自定义字段里还有大量硬编码的 http 链接,直接跑 SQL 替换会破坏序列化数据,必须用 wp search-replace 'http://www.example.com' 'https://www.example.com' --dry-run 先看影响范围,确认后再执行。搬家和换域名时这一套流程同样适用,细节见网站迁移。

后台还要单独强制。WordPress 允许前后台使用不同协议,如果只改了前台,登录页仍然是 http,密码就是明文传输。在 wp-config.php 里加 define('FORCE_SSL_ADMIN', true);,把这个口子堵上。多站点要在 wp-config.php 里同时定义 WP_HOME 和 WP_SITEURL,不能靠后台选项,因为多站点读的是网络设置。

混合内容:怎么找,怎么改

混合内容是指 HTTPS 页面里加载了 http 资源。浏览器对图片和音频是”降级显示”,对 JS 和 CSS 是直接拦截,表现出来就是样式丢失、轮播不动、统计代码不生效。

定位有三种办法,按效率排序:

  1. 浏览器 F12 打开控制台,筛选 Mixed Content,报错里会直接给出完整的 http 地址。
  2. 抓源码搜:curl -s https://www.example.com/ | grep -o "http://[^"']*",一次能捞出一批。
  3. 数据库层面扫,用 wp search-replace 的 --dry-run 模式,它会列出所有会被替换的位置和条数。

改的时候注意来源:主题选项里填的背景图地址、页眉页脚插入的统计代码、插件里配置的 CDN 域名,这三处是重灾区,改完数据库还得回去改配置,否则下次保存设置又被写回 http。实在改不动的第三方资源(比如老的统计脚本只提供 http),删掉换一个,不要用「不安全内容放行」的浏览器开关糊弄自己。

HSTS 要不要开

HSTS 通过响应头告诉浏览器「这个域名以后只走 HTTPS」,有效期由 max-age 决定。开了之后浏览器不再发http 请求,省一次 301 往返,也能防住 SSL 剥离攻击。

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

但它有个硬性代价:一旦下发,在 max-age 到期之前浏览器不会回退到 http。证书过期、配置出错、临时切回 http 调试,用户都只能看到错误页,没有绕过按钮。所以第一次开的时候把 max-age 设成 300 秒,确认全站和所有子域都能正常走 HTTPS,再逐步加到一年。带 includeSubDomains 和 preload 的更要谨慎,提交 preload 列表之后,移除要走几个月的流程。

判断能不能上 includeSubDomains 的标准很实际:把所有子域列出来,逐个访问一遍,包括 mail、ftp、测试环境、老项目遗留的二级域名。只要有一个还在 http,就不能加这个参数,否则那个子域会直接不可访问。内网系统用公网域名做子域的,尤其要检查。

全站 301:跳转要一次到位

跳转链越长,权重损耗越大。正确的做法是在 Nginx 层一次跳到最终地址,不要在 http 跳 https 之后再跳一次去掉 www。

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://www.example.com$request_uri;
}

这条规则同时处理了协议和域名,不管用户从哪个入口进来,一次就到终点。WordPress 后台的「站点地址」必须和这里的目标完全一致,否则会形成无限跳转,浏览器报 ERR_TOO_MANY_REDIRECTS。如果站点前面还有 CDN,跳转要在源站做,别在 CDN 上也配一份,两份规则打架时的表现是间歇性循环跳转,很难复现。

现象 原因 处理
小锁正常但样式全丢 CSS、JS 仍是 http 地址 按混合内容三步定位并替换
内页跳回 http 数据库 siteurl 未改,或固定链接缓存 改 options 表,重存一次固定链接
ERR_TOO_MANY_REDIRECTS Nginx 跳转目标与站点地址不一致 统一成同一个域名写法
部分手机提示证书无效 用了 cert.pem 而非 fullchain.pem 换成完整链证书

收尾做三件事:用在线 SSL 检测跑一遍,确认证书链和协议版本没问题;把站点地图里的地址全部换成 https 并重新提交;观察一周 404 日志,看有没有遗漏的 http 内链。安全层面还可以顺手把后台登录强制走 HTTPS、关掉 xmlrpc.php,这些和安全加固是同一套动作。整套 SSL 配置的完整清单在SSL 配置那篇,遇到打不开的情况可以先看打不开排查,按顺序排除证书、端口和解析。

INDUSTRIAL BELT

扎根中国制造产业带
懂工厂,才懂出海

从胶东半岛到珠三角,从长三角到中原腹地,每一片产业集群都有自己的出口节奏与买家画像。信科网络长期扎根产业一线,把工厂的产品语言翻译成海外采购商听得懂的搜索语言,让每一分投入都对着真实的询盘去。

nanan

南岸外贸网站建设

南岸区,是重庆都市区(重庆主城区),重庆大都市区,地处重庆市西南部。南岸区是以城市为主的都市工业区、中央商务区、国际会展区、风景旅游区。南岸区东部、南部接巴南区,西濒九龙坡区、渝…

yongning

永宁外贸网站建设

永宁县地处宁夏平原中部,东临黄河,西倚贺兰山,是宁夏回族自治区首府银川市的郊县。全县国土面积1020平方公里,辖五镇一乡一个街道办事处,总人口20.4万人,有汉、回、满等13个民族,其中回…

tongnan

潼南外贸建站

潼南县位于重庆市西北部最前沿。是川渝握手区腹地东西南北交通自然便捷走向的交汇点及区域几何中心,是成渝经济区的腹地中心,是重庆西部凸入川中腹地最远、毗邻四川县市最多的对外开放最前沿…

lulong

卢龙外贸建站

卢龙县地处河北省东北部、隶属于秦皇岛市,总面积961平方公里,全县辖12个乡镇、548个行政村,总人口41.5万人,其中农业人口38万人。卢龙,历史悠久,人杰地灵。1988年,卢龙县被确定为全国对…

pengshui

彭水WordPress建站

彭水苗族土家族自治县位于重庆直辖市东南部,处武陵山区,居乌江下游。北接湖北省,南连贵州省。全县辖10镇29乡,共274个村、26个居委,1785个村民小组、184个居民小组。2001年底,全县有17.55…

yubei

渝北WordPress建站

重庆市渝北区位于重庆市区北部,是1994年12月17日经国务院批准,在撤销原江北县建制基础上设立的新区。渝北区是重庆市的行政区,原为江北县,南端为主城区一部分的龙溪镇,北端与四川省接壤,…

zaoqiang

枣强Shopify建站

枣强县位于河北省东南部,衡水市南端,界于东经115°35′~58′,北纬37°08′~35′之间,总面积892.3平方公里。东隔清凉江与景县、故城相望,西临冀州市,南靠邢台地区南宫市,北接桃城区、武邑县。…

hengshui

衡水Shopify建站

衡水市位于河北省东南部,东与沧州市和山东省德州市毗邻,西与石家庄市接壤,南与邢台市相连,北与保定市交界;南北长125.5公里,东西宽98.13公里,全市辖8县2市1区,总面积5815.4平方公里。衡…

xianxian

献县外贸推广

献县历史悠久,夏商时期属冀州,春秋时属燕国,战国时属燕、赵、秦。早在春秋战国时期。境内就形成了具有一定影响力的城市——乐成。汉高祖六年(公元前201年)置河间郡,汉文帝二年…

wuzhong

吴忠外贸推广

吴忠市位于宁夏回族自治区中部,东邻陕西定边县,西北和东北与内蒙古自治区阿拉善左旗、鄂托克前期接壤,西南和东南与甘肃靖远县、环县毗邻,北连永宁、陶乐两县,南接海原、固原两县,面积339…

guyuan

固原Google SEO

固原地区位于宁夏回族自治区南部,东西南三面与甘肃毗邻,北部与本区中卫、同心两县接壤,总面积16783平方公里,辖固原、海原、西吉、隆德、彭阳、泾源县,总人口186.85万人,其中回族占47.6%,…

zhongqing

重庆Google SEO

重庆,简称渝或巴,是中华人民共和国中西部唯一的直辖市、国家中心城市、超大城市、国际大都市,长江上游地区的经济、金融、科创、航运和商贸物流中心,西部大开发重要的战略支点、“一带一路”…

jingxian

景县GEO优化

景县位于河北省东南部,大运河西岸,全县辖9镇7乡,849个行政村,总面积1183平方公里。全县呈簸箕形,由西南向东北逐渐倾斜坦,最高点海拔25米,最低点14.1米。属暖温带半湿润大陆性气候,四季…

banan

巴南GEO优化

巴南区的前身是千年历史名邑巴县。早在3000多年前的商代,巴人就在此繁衍生息,立国建都。秦代置巴郡,南朝齐代置垫江县,北周时改称巴县并沿袭至1995年。1995年经国务院批准撤县建区,成立巴…

qianjiang

黔江谷歌SEM

重庆市黔江区位于重庆市的东南边缘,地处武陵山腹地,东临湖北省的咸丰县,西界彭水县,南连酉阳县,北接湖北利川市,是渝、鄂、湘、黔四省市的结合部,素有”渝鄂咽喉”之称。另外…

fengdou

丰都谷歌SEM

丰都县位于重庆市版图中心,东经107°28′03″-108°12′37″,北纬29°33′18″-30°16′25″之间,呈西北—东南走向分布,南北长87km,东西宽54km,幅员面积2901km2。长江横穿县境47km,水上距离重庆主…

xiushan

秀山Facebook广告

秀山土家族苗族自治县,位于重庆市东南部,武陵山脉中段,四川盆地东南缘的外侧,为川东南重门户。与湖南省、湖北省、贵州省毗邻,326国道和319国道贯穿全县。距长沙604公里、武汉656里、贵阳5…

pengyang

彭阳Yandex推广

彭阳县位于宁夏回族自治区,位于宁夏回族自治区南部边缘,六盘山东麓,介于东经106°32′-106°58’之间,北纬35°4l’-36°17’。西连宁夏固原市原州区,东、南、北环临甘肃…

shizhu

石柱Yandex推广

石柱土家族自治县简称石柱县,位于重庆市东部、长江南岸、山峡库区腹心,是集少数民族自治县、三峡库区淹没县、国家扶贫工作重点县于一体的特殊县份。幅员面积3012平方公里,辖32个乡镇,总人…

xingqing

兴庆TikTok推广

金凤区于2002年11月1日成立,是宁夏回族自治区首府银川市的市辖区之一,位于市区中部,东到唐徕渠,西到包兰铁路,南接永宁县,北临贺兰县,辖良田、丰登2个镇,上海西路、北京中路、长城中路…

为什么一定要选懂产业带的出海服务商?建材丝网的欧洲建筑商看资质与交期,工业橡塑的中东工程商问耐温与工况,毛皮服饰的俄罗斯分销商算的是季节与毛利。买家不同,决策逻辑就不同;信科网络把这些差异拆进网站结构、关键词地图和投放策略里,用他们习惯的方式出现在他们搜索的地方。