關於PingFederate用到的證書

iteye_8658發表於2009-03-30
關於PingFederate用到的證書

最近用PingFederate做了一個專案,覺得裡面的證書的理解很重要。 就關於證書部分在這裡記一下我的理解。有興趣的朋友可以一塊討論。如果對PingFederate一點都不瞭解,可能有點搞不清楚我說什麼,請大家見諒,因為Federate這個東西我還沒有理解太透, 不能在這裡講這個了。

1. DSign JKS Keystrore: 要指向一個jks檔案。 此jks裡只需有一項(當然匯入其他證書也可以),就是public-private key雙。其中private key用來對token簽名,public key用來驗證token簽名。

2. 首先要Trust CAs裡把根證書(DER格式的證書, 注意副檔名通常為cer)匯入。以下三個證書申請都用此根證書籤署。
IDP用匯入的pk12裡的private key對SAML進行簽名,然後SP用匯入的cer裡的public key進行驗證簽名---(在Adapter裡)。
SP用匯入的pk12裡的private key對SAML進行簽名,然後IDP用匯入的cer裡的public key進行驗證簽名---(在My IDP的SP connection裡進行設定)。
IDP用匯入的cer裡的public key對SAML進行加密,然後SP用匯入的pk12裡的private key進行驗證解密---(在My SP的IDP connection裡進行設定)。
注意:jks裡的key雙與其他證書可以沒有任何關係。 好像jks的證書也可以和public key起到同樣驗證簽名的作用,但是需要匯入cer證書。

這裡理解證書了,基本也就換懂PingFederate裡面的大概機制了。

3. 證書生成過程:
建立私鑰 :
openssl genrsa -out root-key.pem 1024
(root-key裡應該是有一對金鑰,即public-private金鑰對)
建立證書請求
openssl req -new -out root-req.csr -key root-key.pem
(建立證書請求時,需要從root-key.pem裡提取public key, 建立除證書之外的其他證書,要使用自己的key檔案。)
自簽署證書 :
openssl x509 -req -in root-req.csr -out root-cert.pem -signkey root-key.pem -days 3650
(用root-key.pem進行簽署證書請求,如果有CA,此步驟應該由CA來做)
 openssl x509 -req -in other-req.csr -out ohter-cert.pem -CA root-cert.pem -CAkey root-key.pem -CAcreateserial -days 3650
(其它證書用CA來簽署)
將pem證書和private key合成p12格式 :
openssl pkcs12 -export -clcerts -in root-cert.pem -inkey root-key.pem -out root.p12

然後把p12的證書匯入IE裡,再用IE匯出DER格式的cer證書。看網上說pkcs7 可以轉換證書格式,但是我下的windows版本的openssl不能用這個命令,不知道是什麼原因。

相關文章