将 .pem 和 .key 文件作为字符串存储在数据库中
storing .pem and .key files as strings in database
我试图让用户在我的 rails 数据库中存储 .pem 和 .key 文件文本字符串,但是当我尝试使用 OpenSSL::X509::Certificate.new 和 [=13= 读取它们时].new,我收到以下错误:OpenSSL::X509::Certificate错误:嵌套的 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
我试图让用户在我的 rails 数据库中存储 .pem 和 .key 文件文本字符串,但是当我尝试使用 OpenSSL::X509::Certificate.new 和 [=13= 读取它们时].new,我收到以下错误:OpenSSL::X509::Certificate错误:嵌套的 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