自签名证书和自己签名的证书是否有区别?

我们需要在内部networking上为一些敏感应用程序使用SSL,并且需要知道自签名证书与我们设置的Windows Server CA签名的证书是否有区别。 我们是否需要设置一个CA?

在单一服务的短期内,没有太大的差别。

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

如果你设置了一个CA,你应该能够让你的客户信任CA以及它签署的任何证书。 一旦他们join了CA,增加额外的服务是很容易的。 有了大量的自签名证书,用户将不得不分别接受每个证书。

你是说你有一个Windows CA吗? 如果你已经有一个,我会使用它。 如果你还没有一个,我会试图使用像TinyCA这样的轻量级系统,你可以在一个虚拟机上运行,​​也可以在一个USB磁盘上运行Linux。

证书可能包含有关授权的用途的信息,例如是否允许用于签署其他公钥证书,或者是否为CA证书。 有些实现可能会检查这种信息,并拒绝为了某些目的而没有正确的信息的证书

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

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

如果你正在创build你自己的自签名证书,并且你想把它作为一个CA证书,并且你想增加你接受它使用它的任何软件的机会,你应该确保它包含我上面提到的那两个扩展的正确configuration的值。

如果你省略了这两个扩展,许多实现可能仍然将它作为CA证书来实现,但有些实现可能不会。

如果你想签署自己的证书,你需要一个CA(不pipe是你的还是官方的)。 但是,除非您打算签署多个证书,并且希望用户只需要接受一个(即,如果他们安装了您的CA,那么您发布的所有证书将被接受),否则不需要将您的CA推送给用户。 从长远来看推行CA可能会更好。

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