使用 ruby 将 DER 密钥(带密码)转换为 PEM
Convert DER key (with pass phrase) to PEM with ruby
我使用这个 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 密钥也不是 PRIV 密钥:嵌套的 asn1 错误
我也试过这个:
file
= File.read(Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key'))
key
= OpenSSL::PKey.read(file, '12345678a')
得到这个:
ArgumentError:无法解析 PKey:没有起始行
感谢您的帮助!
我找到了(不需要 'read')!
file = Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key')
pem_key = openssl pkcs8 -inform DER -in #{file} -passin pass:12345678a
并得到了我预期的结果:
"-----开始私人 KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCC+8KIIUMVVphf\nvF1VGG...
L80yqP3p6nXBohs45XsbF1\nkEGx50X8z7yLGNYY34YDPIU=\n-----私人结束KEY-----\n"
我使用这个 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 密钥也不是 PRIV 密钥:嵌套的 asn1 错误
我也试过这个:
file
= File.read(Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key'))
key
= OpenSSL::PKey.read(file, '12345678a')
得到这个: ArgumentError:无法解析 PKey:没有起始行
感谢您的帮助!
我找到了(不需要 'read')!
file = Rails.root.join('lib', 'cer', '2', 'LAN7008173R5.key')
pem_key = openssl pkcs8 -inform DER -in #{file} -passin pass:12345678a
并得到了我预期的结果:
"-----开始私人 KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCC+8KIIUMVVphf\nvF1VGG... L80yqP3p6nXBohs45XsbF1\nkEGx50X8z7yLGNYY34YDPIU=\n-----私人结束KEY-----\n"