x509 - 我应该使用什么证书存储来存储用于签名/加密 JWT token 的证书?

标签 x509 iis-8 jwt windows2012

我在我的 Web 应用程序中添加了对 JWT token 的支持,并且我有一个 X509 证书,它需要它来签署这些 token 。

我拒绝使用我们用于 HTTP 的相同证书的想法(参见 Can I use the Private Key Certificate of Web App to sign JWT?)。

我认为自签名证书应该可以解决问题,事实上我看不到信任网络在这种情况下有任何优势(这并不意味着没有任何优势,我只是想不出任何)。

Web 应用程序在 Web 服务器场上运行。我目前的计划是生成一个自签名证书并将 X509 证书放入每台机器上 Windows 的证书存储中。我们的 IT 部门正在检查,但他们认为他们可以使用组策略将其推广到农场中的所有 Web 服务器。所以这似乎是一个可行的计划。

Windows 中的证书存储区让我很困惑。我认为有两种选择:

1) 将它放在运行 IIS 应用程序池的用户的“我的”存储中。有很多应用程序池,因此证书可能会出现在许多商店中。

2) 将其放在 LocalMachine 存储下,然后为 IIS 用户授予对特定证书的显式访问权限。

3) 其他我想不到的。

这些类型的证书是否有“正确”的位置,如果有,它在哪里?

最佳答案

通常用于签署证书的 CertificateStore 是我的 商店。我通常将它们放在 LocalMachine 位置,但将它们放在应用程序池身份本身的证书存储中可能更安全。

然后我将仅授予应用程序池对此证书的只读访问权限(右键单击证书,然后单击“所有任务”>“管理私钥”,然后添加您的应用程序池身份并仅授予“读取”权限。

关于x509 - 我应该使用什么证书存储来存储用于签名/加密 JWT token 的证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30013298/

相关文章:

c# - 如何使用X509证书和C#进行非对称加密?

content-management-system - 识别未知的 ASN.1 对象

asp.net-core-mvc - 在 IIS 上部署 .Net Core WebAPI 项目

excel - VBA:如何根据 VBA 中的私钥生成带有 RS256 的签名?

php - 未找到 Lexik JWT token

wso2 - 如何将 JWT 与 Ballerina 一起使用

c# - 使用 Pkcs10CertificationRequest 获取主题备用名称

web-services - 如何在 Apigee 中签署 SOAP 请求

powershell - 需要自签名证书 Win2012 r2 SHA256 4 年到期

url-rewriting - IIS UrlRewrite 不适用于 IIS 8