【问题标题】:How can I create a test signing certificate?如何创建测试签名证书?
【发布时间】:2016-01-11 08:16:03
【问题描述】:

我正在尝试关注 these instructions 以使用 WIF 创建 SAML2 令牌。

说明书上说

要向 SecurityTokenDescriptor 提供签名凭据,您必须 首先获取对签名证书的引用作为 X509Certificate2 实例。从这里你可以创建一个 SecurityKeyIdentifier 并产生一个 SigningCredentials 实例

提供以下代码:

X509Certificate2 signingCert = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, "CN=busta-rpsts.com ");
SecurityKeyIdentifier ski = new SecurityKeyIdentifier(new SecurityKeyIdentifierClause[] { new     X509SecurityToken(signingCert).CreateKeyIdentifierClause<X509SubjectKeyIdentifierClause>() });
X509SigningCredentials signingCreds = new X509SigningCredentials(signingCert, ski);
descriptor.SigningCredentials = signingCreds;

我尝试使用包含主题密钥标识符的 makecert 制作测试证书,但是当我运行通过上述代码制作的任何证书时,我得到以下 System.NotSupportedException

“X509SecurityToken”不支持“X509SubjectKeyIdentifierClause” 创作。

调用此行时会发生这种情况:

new X509SecurityToken(signingCert).CreateKeyIdentifierClause<X509SubjectKeyIdentifierClause>()

现在我知道说明书说...

注意:使用 makecert.exe 创建的证书不包含主题 密钥标识符,因此不能以这种方式使用。你应该 使用 Windows Server 生成证书或购买证书 来自 Verisign 或同等供应商。

...但是我使用了参数 -eku 2.5.29.14,我希望它能解决问题,我认为这张图片表明我做得对吗? p>

谁能告诉我如何创建一个测试证书,我可以用它来让这个代码工作,或者指出我正确的方向?我也不确定“您应该使用 Windows Server 生成证书”是什么意思。这是否意味着creating a CSR?

提前致谢:)

【问题讨论】:

    标签: c# .net certificate saml wif


    【解决方案1】:

    恕我直言,最好模拟现实世界的场景,因此请创建一个 CA 来颁发用于 SAML 令牌生成的证书。您将了解有关 PKI 和证书的更多信息,在开发时间而不是生产时间解决问题。但从技术上讲,不需要这样做。

    那么需要做什么:

    1. 下载XCA
    2. 在 XCA 中制作 CA 证书(它已经有 CA 模板,所以只需使用它)。指南可以找到here
    3. 在 CA 下颁发最终实体证书。指南可以找到here
    4. 将 CA 证书(不带私钥)导出到文件
    5. 将 CA 证书导入 LocalMachine 中的受信任根存储(使用 mmc->File->add snapin->certificates->computer account)
    6. 导出带有私钥的最终实体证书(PKCS#12 格式)。
    7. 将最终实体证书导入 LocalMachine 中的个人存储(使用 mmc->File->add snapin->certificates->computer account)
    8. 生成 CRL。指南可以找到here
    9. 将 CRL 放置在您在颁发最终实体证书时放置的位置,或将其放置在 LocalMachine 中的受信任根存储中
    10. 然后X509Certificate2 signingCert = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, "CN=busta-rpsts.com "); 会起作用……可能。如果没有,您将不得不修改私钥权限(再次 mmc),以便您的帐户可以使用本地计算机个人存储中的私钥。

    【讨论】:

    • 感谢您的回复。 XCA 应用程序上的按钮显示为灰色。最终我意识到我需要创建一个数据库。明天我会按照你的指示继续。
    猜你喜欢
    • 2012-12-25
    • 2019-11-07
    • 2011-12-31
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    相关资源
    最近更新 更多