Web安全 - 国密 SSL / TLCP 接入手把手系列
文章目录
- 这个系列覆盖什么
- 系列目录
- 本系列和已有文档的关系
- 权威资料入口
这是一套面向“从来没接过国密 SSL”的开发者写的系列博客。它以本工程gm-ssl-client为主线,先补齐 SSL/TLS、国密算法、TLCP、证书、Java Provider 等基础知识,再一步一步讲清楚如何把一个 Spring Boot + Forest + OkHttp 客户端接到 TLCP 服务端。
阅读建议:不要直接跳到代码。国密 SSL 的坑大多不是“少写一行代码”,而是“术语、证书、协议、密码套件、客户端库边界没有对齐”。先读前 3 篇,再动手。
这个系列覆盖什么
本工程当前做的是:
- 用
ROOTCA.cer与XXXXSM2CA.cer作为默认信任链; - 用 Tencent Kona 的
KonaCrypto/KonaPKIX/KonaSSL提供 SM2、SM3、SM4、X.509/PKIX、TLCP 能力; - 用 Forest 构造 multipart 上传请求;
- 用 OkHttp 3.14.9 作为 Forest 后端,并通过自定义
OkHttpClient绕过 OkHttp 对 TLS 版本名的固定枚举限制; - 提供一个
http://<部署机>:9876/的 Web 联调页面,能动态改目标地址、证书、密码套件、客户端证书和请求头,并返回握手诊断信息。
系列目录
| 篇章 | 主题 | 你会学到什么 |
|---|---|---|
| 00 导读:国密 SSL 接入到底要做什么 | 全局路线图 | 如何判断需求、该向服务端要哪些材料、为什么不能只问“证书给我了吗” |
| 01 小白基础:SSL、TLS、HTTPS、证书和 CA | 基础概念 | HTTPS 如何建安全通道、证书链和 TrustStore / KeyStore 的区别 |
| 02 标准背景:国际 TLS、RFC 8998 与中国 TLCP | 标准背景 | TLS 1.2/1.3、RFC 8998、GB/T 38636-2020、SM2/SM3/SM4 的关系 |
| 03 TLCP 握手:双证书、密码套件与常见术语 | 协议机制 | TLCP 为什么有签名证书和加密证书,ECC/ECDHE 套件差异是什么 |
| 04 工程全景:本项目每个类负责什么 | 代码地图 | 从配置、Provider、SSLContext、OkHttp、Forest 到 Web 页面的一条链路 |
| 05 手把手准备材料:证书、配置和启动 | 实操准备 | 放证书、改application.yml、打包、启动、访问联调页 |
| 06 手把手发起请求:Web 页面、curl 与业务代码 | 实操调用 | 如何通过页面/curl/Java 服务发上传请求,如何读返回的诊断 JSON |
| 07 深入接入:Kona Provider、SSLContext 与 OkHttp 兼容层 | 深入实现 | 为什么三件套 Provider 缺一不可,为什么要 maskTLCPv1.1给 OkHttp 看 |
| 08 进阶配置:双向认证、密码套件和 hostname 校验 | 生产配置 | 何时配置客户端证书,如何选择TLCP_ECC_*/TLCP_ECDHE_*,什么时候开启 hostname verification |
| 09 排障手册:从错误日志定位 TLCP 问题 | 排错方法 | 根据错误现象判断是证书链、签名算法、密码套件、OkHttp、网络还是服务端配置问题 |
| 10 上线检查表:把联调经验变成可交付清单 | 上线验收 | 接口交付清单、配置模板、安全检查、回滚方案和验收标准 |
本系列和已有文档的关系
README.md是快速运行说明。../TLCP-CA加载与握手原理.md是偏“源码级原理”的单篇深挖。- 本系列是从 0 到 1 的教学版,会反复解释术语、背景和操作目的,适合新同学跟着做。
权威资料入口
本系列背景部分参考并链接这些一手资料:
- IETF Datatracker:RFC 5246 - TLS 1.2、RFC 8446 - TLS 1.3、RFC 8998 - ShangMi Cipher Suites for TLS 1.3。
- 国家标准全文公开系统 / 全国标准信息公共服务平台:GB/T 38636-2020 TLCP、GB/T 32918.2-2016 SM2 数字签名、GB/T 32918.5-2017 SM2 参数定义、GB/T 32905-2016 SM3、GB/T 32907-2016 SM4。
- 实现资料:Tencent Kona SM Suite、Tongsuo TLCP 使用手册。
