当我运行:
OpenSSL::X509::Certificate.new("-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDd/deZ6ncdwxUH
Qlt2IV0LAZLEouWv7ntukG2FNhouvSW7xTi3JXTio7aBnPHUVCJdN41U1cVwfbtn
...
f5SDrfUDnuALz6YBiwf8vvCl1RSV2jB9yWKxGK9FG7iT96dBM1CYQMMx6xD204YL
CE/Q5PCKGOTWxOQSpLvctN3U
-----END PRIVATE KEY-----")
得到OpenSSL::X509::CertificateError (PEM_read_bio_X509: no start line)
我错过了什么吗?
(注意。这个问题是一个更广义重写先前的问题以使它更有用更广泛的社区)
您正在那里加载私钥,而不是X509证书。要加载密钥,必须使用OpenSSL::PKey
类而不是OpenSSL::X509::Certificate
:
OpenSSL::PKey.read("-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDd/deZ6ncdwxUH
Qlt2IV0LAZLEouWv7ntukG2FNhouvSW7xTi3JXTio7aBnPHUVCJdN41U1cVwfbtn
...
f5SDrfUDnuALz6YBiwf8vvCl1RSV2jB9yWKxGK9FG7iT96dBM1CYQMMx6xD204YL
CE/Q5PCKGOTWxOQSpLvctN3U
-----END PRIVATE KEY-----")
详细信息请参考OpenSSL::PKey.read
的文档。