2013-01-22 172 views
4

我正在使用SAML2和ADFS2(IdP)創建SSO「概念驗證」。登錄工作正常,但是ADFS2要求我簽出(使用私鑰)註銷請求,然後我想象我會在我的依賴方信任內的簽名選項卡下添加完全相同的證書(.cer文件)在ADFS2中。唯一的問題是我沒有爲我的應用程序(服務提供商)提供證書。我明白我可以爲此創建一個自簽名證書,但我似乎無法弄清楚如何創建一個我需要的一切。如何使用私鑰和公鑰創建自簽名x509證書?

回答

5

爲了生成自簽名的證書,你需要OpenSSL庫這樣:

Debian的: 的apt-get安裝OpenSSL的

Centos的/ RedHat的: 百勝安裝OpenSSL的

然後,按照此3個步驟:

  • 生成私鑰:

    的OpenSSL genrsa -out server.pem 1024

  • 生成CSR:(在 「通用名稱」 設置您的服務提供商的應用程序域)

    OpenSSL的REQ -new -key server.pem退房手續server.csr

  • 生成自簽名證書

    OpenSSL的X​​509 -req -days 365 -in server.csr -signkey server.pem -out server.crt這

在這個過程中你會得到server.csr(證書籤名請求),server.pem(私鑰)和server.crt這(自簽名證書)結束

在Windows中可以使用makecert.exe

+0

ADFS似乎需要.cer,.sst或.p7b文件。您的解決方案可能有哪些? –

+0

您可以在ADFS 2.0中使用x509證書作爲「令牌簽名證書」: http://technet.microsoft.com/en-us/library/dd807040%28v=WS.10%29.aspx .pb7是類型application/x-pkcs7-certificates的證書文件 要從實際格式(PEM或DER)轉換爲pkcs7格式,可以執行: openssl crl2pkcs7 -nocrl -certfile server.crt -out server.p7b .sst文件格式爲application/vnd.ms-pki.certstore 不知道如何使用openssl將其轉換爲 – smartin

+0

。crt和.pem是我使用的擴展名。 您可以重命名它們: server.pem到server-private-key.cer server.crt到server-self-signed-cert.cer – smartin

4

在將ADFS概念驗證放在一起時,我使用了Windows的SelfSSL工具。具體來說,這個人爲IIS7的has an enhanced version

的樣本命令:

selfssl7.exe /N cn=www.example.com /K 2048 /V 3652 /X /F C:\example.pfx /W foo 

生成具有2048位密鑰「example.pfx」文件,有效期爲〜10年,隨着密碼「foo」的保護私有密鑰,以通用名「WWW .example.com的」。您可以將其導入到本地計算機的證書存儲區,然後將其導出爲.cer文件,並根據需要輸入或不輸入私鑰信息。

+0

+1對於SelfSSL7。該死的好工具! – nzpcmad

+0

@Sean - 這個證書可以用作簽名(私鑰)一種單一註銷請求(例如)發送到ADFS的方式,ADFS使用公鑰驗證?非常感謝。 –

+0

肖恩 - 當我用私鑰導出時,我沒有得到.cer作爲選項,只有.pfx。這是正常的嗎? –

相關問題