我将如何生成Identity Server签名证书

时间:2016-03-08 23:35:16

标签: identityserver3 identityserver4

在身份服务器示例中,我们在Startup.cs

中找到了这样的代码
var certFile = env.ApplicationBasePath + "\\idsrv3test.pfx";

var signingCertificate = new X509Certificate2(certFile, "idsrv3test");

我如何在生产场景中替换它?

4 个答案:

答案 0 :(得分:16)

为了记录,RuSs发布的图片中提出的代码:

<select id="listSelector">
  <option value="books">Books</option>
  <option value="countries">Countries</option>
  <option value="states">States</option>
  <option value="presidents">Presidents</option>
</select>

答案 1 :(得分:11)

获得专用证书 - 通过PKI或自行生成证书:

http://brockallen.com/2015/06/01/makecert-and-creating-ssl-or-signing-certificates/

将密钥对导入Windows证书存储区,并在运行时从那里加载。

为了提高安全性,有些人将密钥部署到专用设备(称为HSM)或专用计算机(例如防火墙后面)。 ITokenSigningService允许将实际令牌签名移动到该单独的计算机。

答案 2 :(得分:5)

以下是我在配置中从指纹加载它的方法: Click here to see image

答案 3 :(得分:5)

最近我决定改进我的令牌签名发布流程。如果您正在运行Windows 10,则可以使用名为 New-SelfSignedCertificate 的awesome powershell cmdlet。

以下是我的示例用法:

    New-SelfSignedCertificate -Type Custom
 -Subject "CN=TokenSigningForIdServer"
 -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3")
 -KeyUsage DigitalSignature
 -KeyAlgorithm RSA 
 -KeyLength 2048
 -CertStoreLocation "Cert:\LocalMachine\My"

确保以管理员身份运行该命令。您可以通过打开 certlm.msc 来获取证书详细信息。它应存储在Personal \ Certificates下面。

除了-TextExtention之外,大多数标志应该是显而易见的。它指定Enhaced Key Usage字段设置为&#34; Code Signing&#34;值。您可以通过参考以下documentation页面来使用所使用的算法,密钥长度,甚至添加范围。