【问题标题】:How to create a self-signed x509 certificate with both private and public keys?如何使用私钥和公钥创建自签名 x509 证书?
【发布时间】:2013-01-06 00:44:17
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    为了生成自签名证书,您需要 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

    【讨论】:

    • 似乎 ADFS 需要 .cer、.sst 或 .p7b 文件。您的解决方案是否可以实现其中任何一种?
    • 您可以在 ADFS 2.0 中将 x509 证书用于“令牌签名证书”: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 转换它
    • .crt 和 .pem 是我使用的扩展名。您可以将它们重命名: server.pem to server-private-key.cer server.crt to server-self-signed-cert.cer
    • 您也可以使用这个在线工具:samltool.com/self_signed_certs.php
    • 您可以使用openssl req -new -x509 -key privateKey.pem -out cert.cer -days 365从私钥创建一个.cer格式的文件。
    【解决方案2】:

    在整理 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 文件。

    【讨论】:

    • @Sean - 此证书将能够用作签署(私钥)单个注销请求(例如)发送到 ADFS 的方式,其中 ADFS 使用公钥核实?非常感谢。
    • Sean - 当我使用私钥导出时,我没有选择 .cer,只有 .pfx。这正常吗?
    • @Brian 是的,这很正常。 CER 格式不能携带像私钥这样的附加数据。我相信 PFX 更像是一种包含许多不同类型安全数据的容器格式,因此它可以将证书和密钥捆绑在一起。
    猜你喜欢
    • 2018-07-19
    • 2017-09-13
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 2012-09-06
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多