如果SSL/TLS证书没有真正的签名/ CA,为什么会自签名?

sle*_*ske 10 ssl cryptography ssl-certificate

我理解通常SSL(或更确切地说是X.509)证书应由某些认证机构签署,以确保它是真实的.

在某些情况下,不存在此类签名,例如,如果您为测试目的生成证书,或者您证书颁发机构(根证书).在这些情况下,使用自签名证书.

我的问题:为什么要使用这种奇怪的自签名结构?为什么证书不能简单地没有任何签名?包含自签名签名收益的内容是什么?

或者仅仅因为它在技术上更容易(没有签名的特殊情况)总是在每个证书中都有签名,即使它是无意义的签名?

Bil*_*ard 6

证书有三个主要部分

  1. 身份信息
  2. 公钥
  3. 数字签名

通过使用私钥加密前两个部分,然后将该加密信息附加到证书的末尾来签署证书.如果您可以使用证书中包含的公钥解密签名,那么您就知道证书是由持有匹配私钥的人签名的.签名将身份信息绑定到公钥.我用我的私钥签署我的证书,这样你只知道我可以阅读你可能用我的公钥加密的邮件.

现在,除非你真的亲自见过我并递给我证书,否则你真的不知道身份信息是合法的.证书的初衷是通过首先获得的是你的人了证书建立信任的网站已经在人满足,则相信有这些人,那么这些人的签名证书的人...

  • 我想我确实回答了.自签名证书的签名只不过是签名人持有与证书中的公钥匹配的私钥的断言. (4认同)
  • 我很惊讶有多少回复完全没有抓住要点。海报知道什么是自签名证书,以及您为什么使用它们,但他询问自签名的意义是什么,而不是简单地将其保留为未签名。 (2认同)
  • @Charlie:我认为问题比这更深一点.我认为OP想要知道它为什么以这种方式定义,而不仅仅是定义是什么. (2认同)

bdo*_*lan 2

我想这是为了确保你不能用证书“撒谎”——也就是说,除非私钥持有者同意,否则你不能创建证书。这可以通过 CA 验证证书指定的实体是私钥持有者来确保,或者在自签名的情况下,通过让密钥持有者自己签署证书来确保。