【问题标题】:Convert DER key (with pass phrase) to PEM with ruby使用 ruby​​ 将 DER 密钥(带密码)转换为 PEM
【发布时间】:2018-04-16 15:11:07
【问题描述】:

我使用这个 openssl 命令将密钥文件转换为 pem:

openssl pkcs8 -inform DER -in LAN7008173R5.key -passin pass:12345678a -out converted_key.pem

当我使用cat converted_key.pem 时,我得到了这个(预期结果):

-----开始私钥----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCC+8KIIUMVVphf ... kEGx50X8z7yLGNYY34YDPIU= -----结束私钥-----

我正在尝试使用反引号运行此命令以将私钥值保存到字符串中,然后将其保存到文件中:

file = File.read(Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key'))

pem_key = openssl pkcs8 -inform DER -in #{file} -passin pass:12345678a

但我收到此错误(即使文件和路由相同): ArgumentError:字符串包含空字节

当我这样做时:

OpenSSL::PKey::RSA.new(File.read(Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key')), '12345678a')

我明白了: OpenSSL::PKey::RSAError: PUB key 和 PRIV key 都没有: 嵌套 asn1 错误

我也试过这个:

file = File.read(Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key'))

key = OpenSSL::PKey.read(file, '12345678a')

得到了这个: ArgumentError: 无法解析 PKey: 没有起始行

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails openssl pem backticks der


    【解决方案1】:

    我找到了(不需要“阅读”)!

    file = Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key')

    pem_key = openssl pkcs8 -inform DER -in #{file} -passin pass:12345678a

    得到了我的预期结果:

    "-----开始私钥-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCC+8KIIUMVVphf\nvF1VGG... L80yqP3p6nXBohs45XsbF1\nkEGx50X8z7yLGNYY34YDPIU=\n-----结束私钥-----\n"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 2018-07-30
      相关资源
      最近更新 更多