关于自签名证书的几个基本问题
自签名证书必须有CA吗?我意识到,一个“真实”的证书必须是因为它可以被链式验证,但是自我签名呢?
如果一个自签名没有CA -它是否仍然在可信的CA存储中不引起链验证错误时使用它进行测试?
是否有一种方法可以查看自签名证书是否由CA签名--如果它有CA,是否会影响上述问题?那么,我是否必须让CA信任它,还是仍然可以将实际的证书放在CA存储中以创建一个安全的SSL通道?
发布于 2013-10-23 18:02:56
证书由颁发证书的CA签名。根据定义,自签名证书不是由CA颁发的(如果您想这样查看它,也不是它自己的CA )。
证书可能具有CA权限,即信任用于签署其他证书,这取决于证书是否包含Basic Constraints扩展,cA标志设置为TRUE (cf 标准)。
发生的情况如下:当某个应用程序想要验证证书(例如,希望对服务器执行SSL并刚刚获得服务器证书的Web浏览器)时,它将希望构建一个以“信任锚”(其“可信根”证书存储中的一个证书之一)开始并以要验证的证书(称为"EE“作为"end-entity")结束的证书链。链有效的确切规则是错综复杂,并包含详细信息;为了回答这个问题,让我们将自己限制在以下必要条件上:
Basic Constraints扩展,其中cA标志设置为TRUE。因此,当用作信任锚时,自签名但非CA证书将被接受为有效的结束实体证书(即,在一个完全还原为该证书的链中),而不是其他证书。这是正常情况。当作为浏览器用户,您希望接受给定的自签名证书为有效时,您实际上告诉您的浏览器,自签名证书应该成为信任锚--但您肯定不希望信任该证书,因为它可以发出其他名称的证书!您希望只在验证特定站点时信任它。
和往常一样,细节可能会有所不同--并不是所有浏览器的反应都完全一样。但核心概念仍然是:
当链简化为单个证书时,即结束实体也是信任锚点,那么这就是所谓的直接信任:一个特定的证书是通过已知的、准确的,而不是通过一个受信任的CA发出的而被信任的。
发布于 2013-10-23 17:52:01
https://security.stackexchange.com/questions/44340
复制相似问题