Go语言技术文章
-
用 Go runtime/trace 的 Flight Recorder 保留延迟尖峰前的有限执行轨迹,配置 MinAge、MaxBytes,并在阈值触发时安全写出快照。493 收藏 -
多租户服务若共享可变 x509.CertPool,容易把一个租户的私有 CA 扩散给其他租户。本文通过故障复盘给出独立根池、TLS 绑定、轮换与测试方案。212 收藏 -
用 Go flight recorder 在内存中保留故障前的执行轨迹,按慢请求阈值写出一次快照,再用 go tool trace 定位阻塞根因。390 收藏 -
Go 1.24 为 crypto/x509 增加证书策略验证后,证书链能建立并不代表满足指定策略 OID。本文从版本、Policies 字段、CertificatePolicies、策略图和中间证书集合五个方面定位失败原因。329 收藏 -
Golang · Go教程 | 5天前 | TLS · Go教程 · Go x509 VerifyOptions ExtKeyUsageServerAuth ExtKeyUsageClientAuth mTLS证书用途
讲解 Go crypto/x509 VerifyOptions.KeyUsages 的服务器与客户端证书用途差异,给出显式验证函数、常见错误、TLS 配置映射和回归测试清单,避免空 KeyUsages 默认值与 ExtKeyUsageAny 带来的误判。341 收藏 -
Go 的 x509 Verify 即使已加载根证书,也可能因 PEM 未解析、使用了不同 Roots、缺失中间证书或 CA 约束不成立而返回 unknown authority。本文用加载布尔值、签名关系和返回链数量逐层定位并修复。425 收藏 -
介绍 Go 1.24 及以上如何使用 crypto/x509 的 CertificatePolicies 限制证书链策略 OID,并说明策略图、anyPolicy、版本边界和排查方法。267 收藏 -
Go 1.24 的 net/http.Protocols 是协议能力集合。本文用 https、http 与 h2c 三种场景说明客户端和服务端配置不一致时何时回退、何时失败,并给出配置与排查清单。219 收藏 -
介绍 Go 1.24+ 使用 http.Server.Protocols 开启明文 HTTP/2 的方法,涵盖同端口兼容、客户端核对、安全边界与审计清单。328 收藏 -
梳理 Go net/http 的 HTTP/1、TLS HTTP/2 与明文 HTTP/2 配置差异,给出客户端、服务端匹配方式和连接失败排查清单。257 收藏 -
反向代理要控制上游协议,关键是给 ReverseProxy 配置自定义 Transport.Protocols,而不是只修改入口 Server.Protocols。本文用 Go 代码说明 HTTP/1、TLS HTTP/2、明文 HTTP/2 的选择、回滚与排查边界。330 收藏 -
Go 源站关闭 HTTP/2 后客户端仍显示 h2,通常是因为客户端看到的是到 CDN、负载均衡或反向代理的前端连接。本文从逐跳协议边界、Server.Protocols 绑定、直连源站与 r.Proto 证据入手,定位真正仍在使用 HTTP/2 的链路。400 收藏 -
Go 1.24 起可用 http.Server.Protocols 显式限定服务端协议集合。本文给出只启用 HTTP/1 与 TLS HTTP/2 的最小写法、完整服务代码、客户端协商检查,以及明文 HTTP/2、旧 TLSNextProto 配置和反向代理场景的兼容边界。460 收藏 -
EnableFullDuplex 主要改变 Go HTTP/1 服务端的请求体消费时机,HTTP/2 默认已经支持读写并行。本文用协议边界、包装器错误和完整示例说明正确用法。177 收藏 -
Go 的 ResponseController.EnableFullDuplex 允许 HTTP/1 Handler 在请求体尚未结束时交错读取与写响应,但它并不 Hijack 底层连接。本文给出逐块读取、逐块确认的完整写法,并说明包装器、截止时间、HTTP/2 与代理缓冲边界。199 收藏