簡體   English   中英

如何創建測試簽名證書?

[英]How can I create a test signing certificate?

我正在嘗試按照這些說明使用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的論據,我希望能解決這個問題,我認為這個圖像表明我做得對嗎?

在此輸入圖像描述

任何人都可以給我說明我如何創建一個測試證書,我可以使用它來使這段代碼正常工作,或指出我正確的方向? 我也不確定他們的意思是“你應該用Windows Server生成證書”。 這是否意味着創建CSR?

提前致謝 :)

恕我直言,最好是模擬真實場景,以便創建一個CA,它將發出用於生成SAML令牌的證書。 您將了解有關PKI和證書的更多信息,解決開發時間中的問題,而不是生產時間。 但從技術上講,不需要這樣做。

那么需要做些什么:

  1. 下載XCA
  2. 在XCA中制作CA證書(它已經有CA模板,所以只需使用它)。 指南可以在這里找到
  3. 在CA下頒發終端實體證書。 指南可以在這里找到
  4. 將CA證書(沒有私鑰)導出到文件
  5. 將CA證書導入LocalMachine中的受信任的根存儲(使用mmc->文件 - >添加snapin->證書 - >計算機帳戶)
  6. 導出已發布的帶有私鑰的終端實體證書(PKCS#12格式)。
  7. 將最終實體證書導入LocalMachine中的個人存儲(使用mmc->文件 - >添加snapin->證書 - >計算機帳戶)
  8. 生成CRL。 指南可以在這里找到
  9. 將CRL放在發出最終實體證書時放置的位置,或將其放在LocalMachine中的受信任的根存儲中
  10. 然后X509Certificate2 signingCert = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, "CN=busta-rpsts.com "); 可能會工作...... 如果沒有,您將不得不修改私鑰權限(再次mmc),以便您的帳戶可以使用本地計算機個人存儲中的私鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM