【发布时间】:2019-12-09 14:53:56
【问题描述】:
在示例代码中,有一个名为“idsrv3test.pfx”的 PFX 证书文件
如何配置 PFX 证书以供生产使用?我可以使用自签名 PFX 吗?
【问题讨论】:
标签: c# oauth-2.0 identityserver4 openid-connect
在示例代码中,有一个名为“idsrv3test.pfx”的 PFX 证书文件
如何配置 PFX 证书以供生产使用?我可以使用自签名 PFX 吗?
【问题讨论】:
标签: c# oauth-2.0 identityserver4 openid-connect
参考:ASP.NET Core Authentication with IdentityServer4
正如我在上一篇文章中提到的,可以创建自签名证书以使用 makecert 和 pvk2pfx 命令行工具(应该在 Visual Studio 开发人员命令提示符的路径上)进行测试。
makecert -n "CN=AuthSample" -a sha256 -sv IdentityServer4Auth.pvk -r IdentityServer4Auth.cer
这将使用 IdentityServer4Auth.cer 中的公钥和 IdentityServer4Auth.pvk 中的私钥创建一个新的自签名测试证书。
pvk2pfx -pvk IdentityServer4Auth.pvk -spc IdentityServer4Auth.cer -pfx IdentityServer4Auth.pfx
这会将 pvk 和 cer 文件合并为一个 pfx 文件,其中包含证书的公钥和私钥。我们的应用程序将使用 pfx 中的私钥对令牌进行签名。确保保护此文件。 .cer 文件可以与其他服务共享以进行签名验证。
从安全角度特别注意:
请注意,您不应在生产环境中从应用路径加载证书;还有其他
AddSigningCredential重载可用于从机器的证书存储中加载证书。
在生产环境中,您应该使用 CertMgr.msc(或等效平台)将带有私钥的证书存储在本地计算机的证书存储(而不是任何特定用户的证书存储)中。使用 CertMgr.msc 导入证书时,请务必勾选“将此证书标记为可导出”,否则您的服务将无法访问私钥来签署数据。这就像为 IIS 使用安装 SSL/TLS 证书一样。
【讨论】: