Mat*_*hew 36 ssl rsa ruby-on-rails certificate apple-push-notifications
通过传递.pem文件使用OpenSSL :: PKey :: RSA模块构建公钥时,响应的原因是什么:
OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error
from /Users/Matt/projects/placepop/lib/apn.rb:48:in `initialize'
from /Users/Matt/projects/placepop/lib/apn.rb:48:in `new'
from /Users/Matt/projects/placepop/lib/apn.rb:48:in `open'
from (irb):1
Run Code Online (Sandbox Code Playgroud)
这是来源:
cert = File.join(rails_root, 'config', 'apns', 'sandbox-cert.pem')
APN_CONFIG = { :delivery => {
:host => 'gateway.sandbox.push.apple.com',
:cert => cert,
:passphrase => "",
:port => 2195 },
:feedback => {
:host => 'feedback.sandbox.push.apple.com',
:port => 2196,
:passphrase => "",
:cert => cert} }
options = APN_CONFIG[:delivery].merge(options)
cert = File.read(options[:cert])
ctx = OpenSSL::SSL::SSLContext.new
ctx.key = OpenSSL::PKey::RSA.new(cert, options[:passphrase])
ctx.cert = OpenSSL::X509::Certificate.new(cert)
sock = TCPSocket.new(options[:host], options[:port])
ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
ssl.sync = true
ssl.connect
Run Code Online (Sandbox Code Playgroud)
2ca*_*aos 31
我有同样的问题,它有不同的原因.现在猜猜:)
...
该死的密码是错误的:(搜索3天的"解决方案".可能是一个"抱歉的家伙,这是错误的密码!"而不是"嵌套asn1错误"imho但无论如何,也许这将有助于某人.
Jam*_*olk 14
pem文件不是公钥,它是base64编码的X509证书,在其许多字段中包含公钥.我不知道Ruby或OpenSSL ruby模块,但我会寻找一些读取PEM文件并输出X509证书的函数,然后是另一个从证书中提取公钥的函数.
Dor*_*ian 12
dotenv
例如,如果您正在使用,则必须包含值"
并使用\n
换行符.
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIICW ... UcuUtU0eIl\n-----END RSA PRIVATE KEY-----"
Run Code Online (Sandbox Code Playgroud)
我也有类似的问题,但对我来说,我一开始就没有为 id_rsa.pub 文件创建 pem 文件。对我来说,我需要用现有的公钥创建一个 pem 文件:
ssh-keygen -f testing_rsa.pub -e -m pem > pem
Run Code Online (Sandbox Code Playgroud)
然后我将该 OpenSSL 字符串复制到正在使用它的测试文件中。对我来说最后看起来像这样。
@pub_key = "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAoxi2V0bSKqAqUtoQHxWkOPnErCS541r6/MOSHmKOd6VSNHoBbnas\nZRQSDUTbffB6C++DbmBCOHmvzYORD0ZWYgyMcgbYJD48Z2fe0nm+WMYN5u8DPnTP\nvf8b/rJBxGF0dsaoFAWlB81tTnKFCxAbCSgfmQt+Vd4qupGZ5gGu9uoKlaPjmYuA\nIxIjUMcu3dov7PQ+PZIvdkM0fiz8YIl8zo+iWWyI2s6/XLoZJ4bYs2YJHZDf6biU\nsZhs8xqh/F6qlcRt3Ta25KMa0TB9zE3HHmqA/EJHFubWFRCrQqpboB0+nwCbmZUl\nhaxA79FRvYtORvFAoncoFD4tq3rGXcUQQwIDAQAB\n-----END RSA PUBLIC KEY-----\n"
.
.
.
OpenSSL::PKey::RSA.new(@pub_key)
Run Code Online (Sandbox Code Playgroud)
之后该方法停止抛出该错误。
归档时间: |
|
查看次数: |
36802 次 |
最近记录: |