【问题标题】:Convert .p10 file to a cert.pem and key.pem file将 .p10 文件转换为 cert.pem 和 key.pem 文件
【发布时间】:2017-02-25 02:30:59
【问题描述】:

我有一个 .p10 文件和一个密码,但是,我无法找到将其转换为证书和 RSA 私钥文件所需的操作,该文件还需要包含包属性( localkeyid 和friendlyname)以及证书中的密钥属性以及颁发者和主题。

我在 OS X 上安装了 openSSL(如果需要,我也可以使用 Ubuntu 或 Windows),并且能够使用 openssl req -noout -text -in 文件查看属性和颁发者/主题。 p10 但我不知道从这里去哪里。

我需要这些文件用于 pybankid。

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Unix & Linux Stack ExchangeInformation Security Stack Exchange 会是一个更好的提问地点。
  • PKCS #10 用于签名请求。您无法将其转换为证书,因为证书颁发机构必须为您生成它。他们必须在 ToBeSigned 上提供签名,然后将铸造的证书返回给您。您确定没有 PFX 或 PKCS #12 格式的文件吗?
  • 你能解释一下为什么这不是一个开发问题吗?
  • @jww 我基本上是在尝试使用一个名为 pybankid 的库(它要求一个 cert.pem 和一个 key.pem),但我只得到了一个 .p10 文件和它的密码(我认为 PKCS #10 不是我需要的,但人们坚持认为这就是他们所拥有的,并且之前的开发人员对此没有任何问题)
  • 创建 CSR (pkcs10 aka p10) 需要私钥,并且 CA 颁发“来自”(使用)CSR 的证书。您需要获得一个真正的 CA(如 Letsencrypt)才能从 CSR 向您颁发证书,或者创建自己的 CA 并自己颁发证书(openssl 可以这样做),尽管可能没有其他人会信任它。在任何一种情况下,openssl 都可以将证书与您必须已经拥有的私钥结合到具有“bag”属性的 pkcs12 中。 @jww 是正确的,这属于安全性或 Unix,但近乎欺骗 stackoverflow.com/questions/29994878 已经涵盖了大部分内容。

标签: openssl certificate rsa private-key bankid


【解决方案1】:

您需要完成更多步骤才能获得所需的内容。

让我解释创建证书的完整过程:

  1. 生成密钥(带或不带密码短语)。

  2. 使用您的密钥创建证书签名请求 (CSR)

  3. 将您的 CSR 发送给 证书颁发机构 (CA)(在您的情况下是合作银行)并要求他们签署。

  4. 从 CA 获得证书后,使用您的密钥将其转换为所需的格式。

您拥有的 .p10 文件很可能是 CSR。要验证,请尝试:

openssl req -noout -text -in *.p10

然后寻找类似的东西:

Certificate Request:
Data:
    Version: 0 (0x0)...

您有一个密码短语,但我不清楚您是否有权访问用于生成 CSR 的密钥,请确保您在向 CA 发送请求之前这样做(第 3 步)。否则您将无法使用已签名的证书。

一旦你有一个签名的证书(比如 cert.crt),你可以使用这个命令查看详细信息:

openssl x509 -text -in cert.crt -noout

现在您已准备好进行最后一步 (4)。

要生成 .pfx/.p12 文件,请使用:

openssl pkcs12 -inkey *.key -in *.crt -export -out certificate.pfx

然后将 certificate.pfx 转换为 .pem(包括包属性),使用:

openssl pkcs12 -in *.pfx -out cert.pem -nodes

【讨论】:

  • 从二进制 p10 转换为 ascii crt 的命令不起作用。它抛出“无法加载 X509 请求 139716756115904:error:0909006C:PEMroutines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: CERTIFICATE REQUEST”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多