Ruby编码P12证书(二进制),并作为JSON响应发送



我有一个带有私钥的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')

最新更新