Java 调用外部 HTTPS 服务与证书信任处理
调用外部 HTTPS 服务当 Java 程序调用外部 HTTPS 服务时,如果 JVM 不信任对方证书,就会出现证书链校验失败。 常见报错如下: 123sun.security.validator.ValidatorException: PKIX path building failed:sun.security.provider.certpath.SunCertPathBuilderException:unable to find valid certificatio...
工业设备认证中的 x509 证书应用
设备认证中的 x509 证书在设备接入场景里,证书不只是给网页用,也常用于设备身份识别。核心目标是让平台确认“设备是谁”,并确认“设备确实持有对应私钥”。 1. 为什么设备也要用证书 设备需要向平台证明身份。 平台需要确认这台设备是不是可信主体。 连接建立后,还需要保证通信内容只能被双方读懂。 2. CA 分级思路证书签发机构应该是可信第三方。企业内部通常会按用途划分为多级 CA: 企业根 CA:最高信任锚点。 中间 CA:负责具体业务域的签发和管理。 设备证书:发...
Let's Encrypt 与 Nginx HTTPS 快速部署
Let’s Encrypt 与 Nginx 快速部署如果只是想快速把站点切到 HTTPS,最常见的方式是让 Nginx 终止 TLS,然后通过 Let’s Encrypt 自动申请和续期证书。 1. 为什么选这个方案 Nginx 很适合作为统一入口,终止 TLS。 Let’s Encrypt 提供免费证书。 申请和续期可以自动化,手工运维成本低。 2. Let’s Encrypt 的原理Let’s Encrypt 的核心是 ACME 协议。它不是“直接给你一张证书”,...
x509 证书与信任链机制
x509 证书与信任链HTTPS 的身份基础通常是 x509 证书。它把“身份信息”和“公钥”绑定在一起,再通过 CA 的签名形成可验证的信任关系。 1. x509 证书里通常有什么 版本号 序列号 签名算法 颁发者 有效期 使用者 公钥信息 扩展信息 2. 证书和私钥的关系 证书相当于公开身份证明,可以发给别人看。 私钥必须只保留在持有者手里,用来完成签名、解密或握手中的关键运算。 公钥通常放在证书里,任何人都可以拿到。 3. 证书链和信任链浏览器或设备并不是直接...
HTTPS 与 TLS 安全通信基础
HTTPS 与 TLS 基础HTTPS 可以理解为 HTTP + TLS。它解决的不是“更快传输”,而是“更可信、更保密地传输”。 1. HTTPS 解决什么问题 机密性:传输中的内容不容易被旁路窃听直接读到。 完整性:传输中的内容不容易被悄悄篡改。 身份认证:客户端可以确认自己连到的确实是目标服务。 2. TLS 握手在做什么一个简化版流程如下: 客户端发起连接,并声明支持的 TLS 版本和加密套件。 服务端返回证书,并选择本次会话参数。 客户端验证证书链、域名和...
