`
grandboy
  • 浏览: 124888 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于PingFederate用到的证书

阅读更多
关于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不能用这个命令,不知道是什么原因。

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics