将.pem和.key文件作为字符串存储在数据库中



我试图允许用户在我的rails数据库中存储.pem和.key文件文本字符串,但当我尝试使用OpenSSL::X509::Certificate.new和OpenSSL::PKey::RSA.new读取它们时,我得到以下错误:OpenSSL:::X509::CertificateError:嵌套asn1错误。有更好的方法吗?

使用pem key,您可以使用以下简单方法:

# Create pem key
pkey = OpenSSL::PKey::RSA.new 2048
# Save key
s = pkey.to_s
# Read key by load text key content to s variable, then:
pkey = OpenSSL::PKey::RSA.new(s)

但使用X.509 key,您必须填写一些额外的信息才能保存:

# Create X.509 key
xkey = OpenSSL::X509::Certificate.new
# Fill some fields
xkey.version = 2
xkey.serial = 0
xkey.not_before = Time.now
xkey.not_after = Time.now + 3600
xkey.public_key = key.public_key
xkey.sign key, OpenSSL::Digest::SHA1.new
# Save key
s = xkey.to_s
# Read key by load text key content to s variable, then:
xkey = OpenSSL::X509::Certificate.new(s)

所有的错误都会从你的代码中消失:D

最新更新