我有一个带有私钥的PEM证书。我正在使用上述信息生成P12证书,该证书受密码保护如下:
def p12_cert
ca_cert = x509_cert(File.open("#{root}/ca-cert.crt").read)
p12 = OpenSSL::PKCS12.create(@random_pass, 'My Certificate',
rsa_pkey(private_key), x509_cert(public_cert), [ca_cert])
create_file('p12', p12.to_der, ':ASCII-8BIT')
end
问题是这是以二进制格式的,不能通过JSON API传输。
有人可以如何编码它(也许是base64),以便可以作为JSON响应发送?
编辑:我打开了p12文件以进行读取,然后尝试使用base64编码,以下是:
irb(main):017:0> enc_p12 = base64.encode64(p12)typeerror:无隐式 openssl :: pkcs12转换为字符串
您通常不编码PKCS12对象本身,而是原始文件。就像是 Base64.encode64( File.read(filename, mode: 'rb')