Quando si costruisce una chiave pubblica usando OpenSSL :: :: PKEY modulo RSA facendola passare un file .pem, qual è la causa di una risposta:Che cosa causa "Né la chiave PUB né la chiave PRIV: nested asn1 error" quando si costruisce una chiave pubblica in ruby?
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
Ecco la fonte:
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
Hai ragione. Il problema era dal modo in cui il file pem è stato esportato dal certificato. La chiave privata non è stata inclusa. – Matthew
Sto avendo lo stesso problema. Che cosa hai fatto di sbagliato quando esporti il certificato? Il mio file .pem contiene la mia chiave privata nella parte inferiore del file. – tobyc
Sto avendo lo stesso problema ... passo solo la mia chiave privata! –