我在我的 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/