客户端如何验证ssl/tls证书的合法性

本文涉及的产品
.cn 域名,1个 12个月
简介: 客户端是如何验证ssl/tls证书的合法性

CA(Certificate Authority) 证书颁发机构对证书进行签名,可以避免中间人在获取证书时对证书内容进行篡改。

证书签名流程

  • 打包:CA 会把持有者的公钥,用途,颁发者,有效时间等信息进行打包,然后对这些信息进行Hash计算,得到一个Hash值。
  • 签名:然后CA用自己的私钥将该 Hash 值加密,生成 Certificate Signature
  • 添加:将 Certificate Signature 添加到证书文件中,形成数字证书

客户端验证

  • 打包:客户端使用相同的Hash算法,对证书信息进行打包,hash计算,得到一个hash值 H1
  • 公钥解密:使用CA机构的公钥对数字证书 Certificate Signature 内容进行解密,得到hash值 H2
  • 比较:如何H1和H2的值相同,则为可信证书

ps. 浏览器和操作系统通常会集成CA的公钥信息。

证书信任链

通过浏览器打开zhihu.com,baidu.com的证书详细信息,可以看到它们的证书层次结构:

# zhihu.com
DigiCert Global Root CA
    GeoTrust CN RSA CA G1
        *.zhihu.com

# baidu.com
GlobalSign
    GlobalSign RSA OV SSL CA 2018
        baidu.com

会存在中间证书来给域名证书签名,而非根证书直接对域名证书签名。

证书信任链验证流程:

  • 客户端拿到域名证书,发现证书签发者不是根证书。然后客户端根据域名证书颁发者从 服务端发送过来的证书链或者操作系统/浏览器本地获取
  • 客户端请求中间证书,发现其颁发者是根证书。然后从操作系统/浏览器本地获取根证书的公钥,验证中间证书,验证通过则中间证书可信
  • 中间证书可信之后,客户端拿到中间证书的公钥再去验证域名证书是否可信。

三级证书结构为什么更安全

1.降低证书被伪造的风险

三级结构将CA分为根CA和中级CA。攻击者想要伪造证书,需要伪造三级CA的签名,难度大大增加。

2.更好的密钥管理

根CA负责签发子CA证书,不直接签发服务器证书。如此可以使用更强的密钥保护根CA,并轮换子CA密钥。

3.证书撤销更灵活

若中级CA证书被破坏,可以选择撤销该中级CA,而不影响信任链中其他CA,避免大规模证书撤销。

4.分散信任链

不同中级CA可交叉签名,防止单一CA损害导致整个链失效。

5.区分业务范围

不同中级CA可颁发不同用途的证书,进行业务隔离。

6.更好的扩展性

新增的证书服务可以通过新增中级CA扩展,而不需要重新配置信任的根CA。

7.隔离内外网证书

内网证书可使用独立的中级CA,与公共CA分离,降低证书遭破坏的风险。

目录
相关文章
|
27天前
|
安全 网络安全
如何给网站添加ssl安全证书
如何给网站添加ssl安全证书
37 1
|
7天前
|
Linux 网络安全 开发者
【Python】已解决:WARNING: pip is configured with locations that require TLS/SSL, however the ssl module i
【Python】已解决:WARNING: pip is configured with locations that require TLS/SSL, however the ssl module i
21 3
|
13天前
|
运维 安全 数据建模
阿里云免费SSL证书与付费SSL证书区别及免费SSL证书申请教程参考
免费SSL证书是阿里云为个人网站、开发测试或企业网站建设之初提供的SSL证书,以便满足其对HTTPS数据加密传输的基本要求,从而提高数据传输的安全性。本文为大家详细介绍阿里云免费SSL证书与付费SSL证书区别以及免费SSL证书申请教程。
阿里云免费SSL证书与付费SSL证书区别及免费SSL证书申请教程参考
|
18天前
|
前端开发 小程序 应用服务中间件
在服务器上正确配置域名https证书(ssl)及为什么不推荐使用宝塔申请免费ssl证书
在服务器上正确配置域名https证书(ssl)及为什么不推荐使用宝塔申请免费ssl证书
72 4
|
28天前
|
安全 网络安全 Windows
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
在访问App Service的KUDU工具或使用`az webapp deploy`时遇到SSL错误:`SSL: CERTIFICATE_VERIFY_FAILED`。解决方法是临时禁用Azure CLI的SSL验证。在PowerShell中,设置`$env:ADAL_PYTHON_SSL_NO_VERIFY`和`$env:AZURE_CLI_DISABLE_CONNECTION_VERIFICATION`为1;在Windows命令提示符中,使用`set AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1`。注意,这可能引入安全风险,应仅在必要时使用。
|
2天前
|
安全 网络协议 网络安全
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
4 0
|
10天前
|
网络安全
嗯… 无法访问此页面43.139.210.211 花了太长时间进行响应,无法连接宝塔,是服务器内的宝塔面板开启了ssl的验证,但是没有绑定证书,所以被拦截,关闭宝塔面板的ssl访问认证恢复正常
嗯… 无法访问此页面43.139.210.211 花了太长时间进行响应,无法连接宝塔,是服务器内的宝塔面板开启了ssl的验证,但是没有绑定证书,所以被拦截,关闭宝塔面板的ssl访问认证恢复正常
|
1月前
|
前端开发 Java 网络安全
基于Java Socket实现的SMTP邮件客户端 - 全面支持SSL, TLS
基于Java Socket实现的SMTP邮件客户端 - 全面支持SSL, TLS
23 0
|
2月前
|
安全 搜索推荐 数据建模
解决网站“不安全”、“不受信”、“排名下降”,你需要——「SSL证书」
SSL证书是网络安全的关键,用于加密和验证网站身份,保护用户数据安全,防止信息被窃取。它分为DV、OV、EV和IV四种类型,每种验证网站身份的程度不同。DV证书快速签发,OV和EV证书提供更高级别的身份验证,EV证书曾在浏览器地址栏显示绿色。目前,DV证书占据市场大部分份额。SSL证书还有单域、通配符和多域之分,有效期曾从多年逐渐缩短至90天,以增强安全性。部署SSL证书能提升用户信任,优化SEO排名,并符合网络安全法规要求。
解决网站“不安全”、“不受信”、“排名下降”,你需要——「SSL证书」
|
2月前
|
存储 算法 安全
ssl 证书名词解释--crt和pem
ssl 证书名词解释--crt和pem
180 0