自签名证书和您自己的 CA 签名的证书之间有什么区别?

自签名证书和您自己的 CA 签名的证书之间有什么区别?

我们需要在内部网络上为一些敏感应用程序使用 SSL,我需要知道自签名证书和我们设置的 Windows Server CA 签名的证书之间是否存在差异?我们需要设置 CA 吗?

答案1

短期内对于单一服务来说没有太大的差别。

如果您决定需要设置更多使用 SSL 的服务,那么您可能会发现设置 CA 是一个更好的选择。

如果您设置了 CA,您应该能够让您的客户信任该 CA,从而信任它所签署的任何证书。一旦 CA 启动,添加其他服务就很容易了。如果有大量自签名证书,用户必须分别接受每个证书。

您是说您有 Windows CA 吗?如果您已经有了,我会使用它。如果您还没有,我会倾向于使用 TinyCA 之类的轻量级系统,您可以在 VM 中或 USB 磁盘上的 Linux 上运行它。

答案2

证书可能包含有关其被授权使用的信息,例如是否允许将其用于签署其他公钥证书,或者它是否是 CA 证书。某些实现可能会检查此类信息,并且如果没有正确的信息,则拒绝将证书用于某些目的

这些额外信息的示例包括:

  • “密钥使用”扩展(OID 2.5.29.15),可能指定是否允许此证书用于密钥证书签名。
  • “基本约束”扩展(OID 2.5.29.19),指定这是否是 CA 证书。

如果您正在创建自己的自签名证书,并且想要将其用作 CA 证书,而且想要增加它被您将要使用它的任何软件接受的机会,那么您应该确保它包含正确配置的值我上面提到的两个扩展。

如果省略这两个扩展,许多实现可能仍将其视为 CA 证书,但有些实现可能不会。

答案3

如果您想签署自己的证书,您需要一个 CA(无论是您自己的还是官方的)。但是,除非您计划签署多个证书并且希望您的用户只需接受一个证书(即,如果他们安装了您的 CA,您颁发的所有证书都将被接受),否则您不需要向用户推送您的 CA。从长远来看,推送 CA 可能更好。

答案4

它们不是一回事吗?您自己的内部 CA 颁发的证书是“自签名的”,这意味着它不是由外部 CA 颁发的,对吗?

相关内容