操作日记|腾讯云轻量服务器 Typecho 博客强制 HTTPS 实战记录

技术专业 · 6 天前

一、背景说明

博客运行在 腾讯云轻量应用服务器(Lighthouse) 上,使用 Typecho 作为博客系统。

当前状态是:

这在安全和 SEO 上都不理想,因此目标是:

强制所有 HTTP 请求跳转到 HTTPS,并统一域名入口为 https://mcetf.cn

二、运行环境确认

1. 确认 Web 服务类型

ps -ef | grep nginx

输出显示:

  • 使用的是 Nginx
  • 路径为 Lighthouse 自带版本:
/usr/local/lighthouse/softwares/nginx/

三、定位 HTTP(80)入口配置

1. 搜索 80 端口配置

grep -R "listen 80" -n /usr/local/lighthouse/softwares/nginx/conf

关键结果:

/usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf:2:    listen 80 default_server;

说明:

  • HTTP 的入口在 typecho.conf
  • 且是 default_server,会兜底接管所有 HTTP 请求

2. 查看原始配置内容

sed -n '1,160p' /usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf

原配置中:

  • HTTP 下仍在跑 PHP、rewrite
  • 这正是 http://mcetf.cn 还能访问的原因

四、HTTPS 配置确认(无需修改)

域名 HTTPS 已经单独配置在:

  • /usr/local/lighthouse/softwares/nginx/conf/include/mcetf.cn.conf
  • /usr/local/lighthouse/softwares/nginx/conf/include/www.mcetf.cn.conf

这两个文件:

  • 只监听 443 ssl
  • HTTPS 本身工作正常

    👉 原则:HTTPS 配置不动,只处理 HTTP 跳转


五、实施方案设计

目标逻辑

最终访问路径应为:


六、实施步骤

1. 备份原配置(重要)

cp /usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf \
   /usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf.bak.$(date +%F_%H%M%S)

2. 修改 HTTP 配置为强制跳转

编辑文件:

vi /usr/local/lighthouse/softwares/nginx/conf/include/typecho.conf

替换为以下内容:

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

server {
    listen 80 default_server;
    server_name mcetf.cn;
    return 301 https://mcetf.cn$request_uri;
}

说明:

  • www 直接一跳到裸域(避免两次 301)
  • default_server 兜底所有 HTTP 请求
  • HTTP 下不再执行 PHP / rewrite,更安全

3. 检查并重载 Nginx

/usr/local/lighthouse/softwares/nginx/sbin/nginx -t
/usr/local/lighthouse/softwares/nginx/sbin/nginx -s reload

七、验证结果

HTTP 跳转验证

curl -I http://mcetf.cn
HTTP/1.1 301 Moved Permanently
Location: https://mcetf.cn/
curl -I http://www.mcetf.cn
HTTP/1.1 301 Moved Permanently
Location: https://mcetf.cn/

HTTPS 域名统一验证

curl -I https://www.mcetf.cn
HTTP/1.1 301 Moved Permanently
Location: https://mcetf.cn/

✅ 达成目标:HTTPS + 单一域名入口


**八、Typecho 侧的补充设置

为避免后台或文章生成 http:// 链接,建议:

  • 在 Typecho 后台 「设置 → 基本设置」
  • 将站点地址修改为:
https://mcetf.cn/

九、最终状态总结

访问方式结果
http://mcetf.cn301 → https://mcetf.cn
http://www.mcetf.cn301 → https://mcetf.cn
https://www.mcetf.cn301 → https://mcetf.cn
https://mcetf.cn✅ 正常访问
Theme Jasmine by Kent Liao