一次 HTTPS 证书报错排查:为什么会出现 `unable to get local issuer certificate`

Posted on 三 22 4月 2026 in Journal • Tagged with Python, SSL, TLS, HTTPS, Requests, Certificate, Debugging

这篇文章用一个脱敏后的 Python HTTPS 报错为例,讲清楚 unable to get local issuer certificate 到底是什么意思,为什么很多时候不是客户端代码写坏了,而是证书链没接上;正文讲排查主线,完整脚本与可运行示例放到独立仓库里。


Continue reading

在 Kubernetes 里用 cert-manager + Venafi 自动签发和轮换证书

Posted on 三 15 4月 2026 in Journal • Tagged with Kubernetes, cert-manager, Venafi, TLS, certificate, security, DevOps

很多团队把 TLS 证书当成一次性配置,直到某个周五晚上证书快过期了,才想起这件事不能靠日历提醒。本文以 Kubernetes 服务为例,讲清楚怎么把 cert-manager 当执行层,把 Venafi 当策略和 CA 门卫,做到声明式签发、自动续期、私钥轮转,以及应用侧平滑 reload。


Continue reading

证书这活儿:PEM/JKS/P12 怎么选、免费证书哪家强、自动轮换怎么搞

Posted on 二 24 3月 2026 in Journal • Tagged with certificate, TLS, SSL, PEM, JKS, PKCS12, Let's Encrypt, cert-manager, security, DevOps

以我自己的个人网站证书过期为引子,讲清楚 Root CA、Intermediate CA、Leaf Certificate 的职责、格式与验证过程,再把 PEM/JKS/P12 的选择和自动轮换这件事说透。


Continue reading

claude code 平替: opencode + deepseek/qwen

Posted on 三 25 2月 2026 in Tech • Tagged with opencode, claude-code, qwen, deepseek, openai-compatible, ai-sdk, tls, ca

用 opencode 接入公司私有部署的 Qwen/DeepSeek(OpenAI-compatible API),日常写代码、改文档基本够用,还能省掉订阅费与 token 焦虑;关键是把 TLS 自签证书这关过掉,别用“关掉校验”这种野路子。


Continue reading

Go crypto/tls Config.Clone session resumption pitfalls (CVE-2025-68121)

Posted on 三 25 2月 2026 in Tech • Tagged with go, security, tls, cve

CVE-2025-68121 涉及 Go crypto/tls 的两个会话恢复(session resumption)问题:Config.Clone 复制了自动生成的 session ticket keys,导致不同 tls.Config 之间意外共享会话票据;以及服务端在判断会话是否可恢复时,只检查 leaf 证书过期而忽略完整证书链,可能让过期链条下的会话继续被恢复。


Continue reading