如何使用私钥和公钥创建自签名x509证书?

时间:2013-01-22 17:25:21

标签: single-sign-on x509certificate adfs2.0 saml-2.0

我正在使用SAML2和ADFS2(IdP)创建SSO“概念证明”。登录工作正常,但ADFS2要求我的Logout请求被签名(使用私钥),然后我想我会在我的信赖方信任中的签名选项卡下添加相同的证书(.cer文件)在ADFS2中。唯一的问题是我的应用程序(服务提供商)没有证书。我知道我可以为此目的创建一个自签名证书,但我似乎无法弄清楚如何创建一个我需要的东西。

2 个答案:

答案 0 :(得分:11)

为了生成自签名证书,您需要openssl库,所以:

的Debian:     apt-get install openssl

的Centos / RedHat的:     yum install openssl

然后按照以下3个步骤进行操作:

  • 生成私钥:

    openssl genrsa -out server.pem 2048

  • 生成CSR :(在“公共名称”中设置服务提供商应用的域名)

    openssl req -new -key server.pem -out server.csr

  • 生成自签名证书

    openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt

在流程结束时,您将获得server.csr(证书签名请求),server.pem(私钥)和server.crt(自签名证书)

在Windows中,您可以使用makecert.exe

答案 1 :(得分:4)

在整合ADFS概念验证时,我使用了适用于Windows的SelfSSL工具。具体来说,这个人has an enhanced version用于IIS7。

示例命令:

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文件。