SAML - Security Assertion Markup Language(安全断言标记语言)
TSL
“证书是承载公钥和身份信息的‘数字身份证’,签名则是用私钥盖在这张身份证上的‘防伪印章’,两者共同解决‘这是谁的公钥’以及‘它有没有被篡改’的问题。”
证书 = 公钥 + 身份信息 + 元数据
典型结构(X.509)包括:
• Subject(是谁)
• Public Key(对应的公钥)
• Issuer(由谁颁发)
• Validity(有效期)
• Signature(颁发者对该证书内容的数字签名)
签名的作用
• 完整性:任何改动证书内容都会使签名验证失败。
• 真实性:签名只能用颁发者的私钥生成,因此可证明“这张证书确实出自该颁发者”。
• 信任链的根:浏览器/操作系统内置了一批“根CA”的公钥,用来验证链上所有证书的签名,从而层层信任。
自签名 vs CA 签名
• 自签名:自己给自己盖章,防伪印章的“签发者”和“使用者”是同一人,因此只能靠自己宣称可信。
• CA 签名:受信任的第三方(CA)用其私钥给你盖章,浏览器已内置该 CA 的公钥,故能自动验证。
使用场景
• 当你访问 https://example.com,浏览器收到服务器证书 → 用证书里写的“颁发者”逐级向上验证签名 → 根 CA 公钥验证成功 → 浏览器确认“这是 example.com 的合法公钥”。
• 如果收到自签名证书,浏览器找不到链上的根 → 提示“该证书不受信任”。
自签名证书(Self-signed Certificate) 是一种由证书持有者自己生成和签名的数字证书,而非由受信任的第三方证书颁发机构(CA,如Let's Encrypt、DigiCert等)签发。