自签名 IdentityServer4 签名凭证在生产中是否足够好?

Is Self-Signed IdentityServer4 signing credential good enough in production?

我们正在使用 IdentityServer4,我们的版本从文件系统中的 PFX 文件或 windows 证书存储区加载签名密钥。使用证书有效。问题是 - 在生产中应该使用哪个证书颁发者?

是否推荐来自 public CA 的证书?或者拥有一个自签名证书(根本没有 CA)是否足够,例如可以使用 IIS 管理器创建的证书?

在我们的测试中,我们发现客户端仍然可以验证访问令牌中的签名,即使签名证书在客户端上没有有效的 CA 链也是如此。

在文档中,它说您也可以使用原始密钥 material 而不是证书: http://docs.identityserver.io/en/latest/topics/crypto.html#token-signing-and-validation 在这种情况下,将没有任何 CA 链。

这让我假设,当客户端加载 public 签名密钥(通过 HTTP(s) 端点)时,CA 链信息可能无论如何都不会传递。那正确吗?通过 HTTPs 的加载机制,您还拥有一个组合的安全机制。

所以我的结论是,对于签名凭据,自签名证书与 VeriSign 的证书一样安全。可以确认吗?

签名和验证令牌时不涉及证书。只有私钥和 public 密钥(RSA 或 ECDSA 密钥)。

然而,证书对于“import/transport”进入 .NET 的密钥很有用。所以,正因为如此,我们不关心证书是谁颁发的。

导入密钥时,一种方法是将持有public密钥的证书+私钥捆绑在一起,并将其存储在PKCE#12文件(.pfx/.p12扩展名)中。然后将该文件加载到 .NET 中。在 .NET 5 之前使用键有点困难。

更重要的是您可以安全地管理和部署私钥,并且它会随着时间的推移而持久化。

您可以选择添加对密钥轮换的支持。