返回列表 发布新帖
查看: 29|回复: 0

Typecho博客开启HTTPS全攻略,轻松实现网站安全加密访问

988

主题

0

回帖

833

积分

高级会员

积分
833
发表于 2026-6-20 15:45:01 | 查看全部 |阅读模式
最近折腾了好几天,终于把自己的Typecho博客成功迁移到了HTTPS,期间踩了不少坑,特来分享一下完整的配置过程,希望对同样在折腾的朋友有所帮助。

先说一下我的环境,服务器是阿里云的轻量应用服务器,系统Ubuntu 20.04,Web服务器用的是Nginx,Typecho版本是最新的1.2版本。其实不同环境下步骤大同小异,核心逻辑是一样的,大家可以根据自己的情况做相应调整。

第一步当然是申请SSL证书。现在免费证书很多,我用的是Let's Encrypt,通过Certbot工具申请,命令很简单:先安装Certbot,然后执行 certbot --nginx -d 你的域名,按照提示操作就行。需要注意的是,申请之前确保你的域名已经正确解析到服务器IP,否则验证会失败。Let's Encrypt的免费证书有效期只有90天,建议设置一个自动续签的定时任务,Certbot安装后其实会自动添加定时任务,可以用 certbot renew --dry-run 测试一下是否正常。

证书申请完之后,Nginx的配置文件基本会被Certbot自动修改,它会帮你加上SSL相关的监听和证书路径。但有一个地方需要手动处理,就是HTTP到HTTPS的强制跳转。我在server块里加了一段301重定向,把所有80端口的请求都跳转到443,这样访问者无论输入什么都会走HTTPS。

然后就是Typecho本身的配置,这一步很多人容易忽略,只配好了Nginx就以为万事大吉了,结果发现后台登录后页面样式全乱,或者无法正常跳转。问题根源在于Typecho的config.inc.php文件里有一个站点URL的配置项,需要把里面的http://改成https://。如果你当初安装的时候填的是http的地址,这里一定要手动改过来。

改完之后还有一个坑就是混合内容问题,也就是所谓的Mixed Content。页面已经走HTTPS了,但是里面某些图片、CSS或者JS文件还是http链接,浏览器会报警甚至直接拦截。这时候需要检查你的主题模板和已经发布的文章里有没有硬编码的http链接。主题文件好说,直接找到模板文件批量替换就行。文章里的话稍微麻烦,可以直接在数据库里用SQL语句做全局替换,把typecho_contents表里的text字段里的http://你的域名替换成https://你的域名,记得操作前备份数据库。

还有一个容易被忽视的地方,就是Typecho的后台设置里有一个"站点地址"的选项,登进去确认一下是不是已经变成https开头的了,如果不是,手动改一下保存。

配置完成后,用浏览器打开网站,地址栏出现小锁图标就说明成功了。也可以用SSL Labs的测试工具检测一下证书配置是否严格,能拿到A或者A+评分就比较放心了。

说实话这整个过程并不算特别复杂,但每一步都有细节需要注意。很多人第一次配置的时候最容易卡在两个地方,一个是忘了改Typecho里的URL配置,另一个是混合内容问题处理不干净导致浏览器还是报警。只要这两点处理好,基本上就没什么大问题了。现在搜索引擎对HTTPS站点也更友好,SEO方面也有加分,建议所有还在用HTTP的博主都尽快迁移过来。
回复 转播

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表