首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >证书SSL问题

证书SSL问题
EN

Stack Overflow用户
提问于 2015-03-25 22:59:18
回答 2查看 1.1K关注 0票数 0

我正在学习网络安全,我有以下问题:

  1. Java (和其他语言)应用程序和浏览器使用CA证书来验证证书。但是,出于安全原因,我想CA证书有一个到期日期。那么,当CA证书过期时会发生什么呢?我无法找到解决方案,特别是对于非网络上下文。
  2. 客户端证书(当存在时)由相关服务器签名和提供?
  3. CA证书是自签名的.这意味着没有人能操纵它。但是,如果另一个人创建了另一个具有相同CA证书公共名称的自签名证书?如何才能区分真实的?
  4. 据我所知,证书链是指证书Z由另一个证书X的私钥签名,它本身由另一个私钥/证书签名,等等,直到根证书为止。我的问题是:浏览器如何检查证书Z的有效性?服务器只传递证书Z,我不明白溴器是如何找到其他链证书的。我也认为这不是安全的链证书,我如何得到它。
  5. 为什么浏览器保存访问服务器的证书?我在firefox和chrome中都存储了许多证书,例如google。奇怪的是,chrome表示google证书是不可信的。证书检查算法的哪一部分--它们能更快地保存证书?
EN

回答 2

Stack Overflow用户

发布于 2015-03-25 23:23:22

  1. 当CA证书过期时,对由过期CA签名的证书的验证将失败--即使签名的证书尚未过期。CA证书可以通过获取一个新证书来更新,该证书具有相同的公钥(用于同一私钥)和主题可分辨名称,以及较晚的过期日期。 因为根证书通常有很长的有效期,所以可以用与旧证书重叠的有效期来更新证书。新证书可以通过浏览器或OS更新分发给客户端,并且只要当前时间在有效期内,就可以用来验证签名。
  2. 客户端证书和服务器证书可以由不相关的CA签名。服务器配置将包括指示信任哪些CA证书来验证客户端证书。
  3. 这里重要的不是通用名称,而是主题可分辨名称,其中公共名称(CN)是一个可能的组件。(不过,只有CN的SDN很常见,尤其是在网站上)。 如果两个自签名证书具有相同的SDN和公钥,则它们大致相等(模块有效期、扩展等)。由一个签名的任何证书都可以由另一个验证,反之亦然。但是,如果没有与公钥相对应的私钥,就没有人能够签名。因为没有人可以生成与您相同的私钥,并且假设您将私钥保持为私钥,因此除了您之外,没有人可以制作有用的CA证书。 有人可以使用相同的SDN,但使用不同的密钥来制作CA证书。在这种情况下,一方所作的签字将不能由另一方核实,反之亦然。在主题密钥标识符X.509扩展中,通过不同的公钥和不同的信息可以清楚地区分证书,该扩展包含公钥的密码摘要或散列。
  4. 服务器不仅必须传递终端实体证书,还必须传递任何中间证书,直至(但通常不包括)根证书。服务器软件将允许您配置要发送给客户端的整个证书链,作为TLS握手的一部分。接收到该证书后,客户端重新组装并验证该链,从根证书开始,该根证书由链中的第一个证书(即最顶层)中的主题密钥标识符扩展来标识。 证书是否是有效的CA (根或中介)取决于几个属性,其中最重要的属性是基本约束扩展中的cA布尔值和扩展密钥用法扩展中的keyCertSign位。在验证证书链时会检查这些内容,以确保每个签名证书都是CA证书。公共CA不会向一般公众颁发CA证书,因此某些人无法轻松地获得可用作验证google.com的有效中介的证书。
  5. 浏览器通常不会自动保存访问服务器的服务器证书(当然Firefox不会),但是一些浏览器(包括Firefox)会缓存中间证书。这篇博客文章详细介绍了这一实践。
票数 1
EN

Stack Overflow用户

发布于 2015-03-25 23:26:30

我正在学习网络安全,我有以下问题:

  1. ..。CA证书过期后会发生什么?我无法找到解决方案,特别是对于非网络上下文。

(a)他们重新发出该证明书,及(b)由该公司签署的所有证明书均属无效。请注意,CA证书的有效期很长,它们签署的证书的过期时间要快得多。CA将在您签署证书时向您提供证书链。该链应该安装在哪里,这取决于你。Java附带了一个预构建的信任存储库,其中包含公认的CA证书,每个版本的Java都会更新该证书。

  1. 客户端证书(当存在时)由相关服务器签名和提供?

不,它们由客户端提供,并由客户选择的CA签名。服务器与此无关。同一客户端证书可用于对任何SSL服务器进行身份验证。

  1. CA证书是自签名的.这意味着没有人能操纵它。但是,如果另一个人创建了另一个具有相同CA证书公共名称的自签名证书?如何才能区分真实的?

证书还包含与私钥隐式相关的公钥。伪造者无法访问CA的私钥,因此无法以CA的身份有效地签署任何内容。

  1. 据我所知,证书链是指证书Z由另一个证书X的私钥签名,它本身由另一个私钥/证书签名,等等,直到根证书为止。我的问题是:浏览器如何检查证书Z的有效性?

它安装在一组可信的CA证书中。

服务器只传递证书Z,我不明白浏览器是如何找到其他链证书的。

不,服务器传递整个证书链。

我也认为这不是安全的链证书,我如何得到它。

为什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29268090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档