2015-10-13 163 views
2

我正在嘗試關注these instructions以使用WIF創建SAML2標記。如何創建測試簽名證書?

的指示說

要提供簽約憑據SecurityTokenDescriptor,必須 首先得到簽名證書作爲 X509Certificate2實例的引用。

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包括主題密鑰識別測試證書:這個,你可以創建一個 SecurityKeyIdentifier併產生SigningCredentials實例

下面的代碼提供,但是當我通過上面的代碼運行任何證書時,我會得到以下代碼System.NotSupportedException

'X509SecurityToken'不支持'X509SubjectKeyIdentifierClause' 創建。

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

現在我知道了指示說...

注:與makecert.exe創建的證書不包括主題 關鍵

這調用此線時出現標識符,因此不能以這種方式使用。您應該使用Windows Server產品證書 或從Verisign或同等供應商處購買證書 。

...不過我用的說法-eku 2.5.29.14,我希望這將解決這個問題,我覺得這個圖像顯示,我已經做到了嗎?

enter image description here

誰能給我我如何可以創建我可以用它來獲取此代碼的工作,或點我的方向是正確的測試證書的說明?我也不確定它們是什麼意思,「您應該使用Windows Server生成證書」。是否提前意味着creating a CSR?

謝謝:)

回答

0

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

需要做那麼什麼:

  1. 下載XCA
  2. 在XCA使CA證書(它已經CA模板,只是用它)。可以找到指南here
  3. 在CA下發出最終實體證書。指南可以發現here
  4. 導出CA證書(無私鑰)到一個文件
  5. 導入CA證書到受信任根存儲在LOCALMACHINE(使用mmc->文件 - >添加snapin->證書─>計算機帳戶)
  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再次),以便您的帳戶可以使用私鑰從本地機器的個人存儲。
+0

感謝您的回覆。 XCA應用程序上的按鈕呈灰色。最終我意識到我需要創建一個數據庫。我明天繼續你的指示。 –