2010-08-10 11 views
9

Sto tentando di importare il certificato smtp di Gmails per l'utilizzo con Jira, ma ottengo questo errore durante l'importazione utilizzando lo strumento keytool di Javas.keytool error: java.lang.Exception: input non un certificato X.509

Ho usato openssl per ottenere il certificato, tutto compreso tra ---- Inizia certificato ---- e ---- Certificato finale ---- (incluso). Ho anche provato a creare un certificato x.509 utilizzando Gestione certificati di Windows, ma ottengo ancora questo errore. Ho verificato che non ci sono spazi bianchi aggiuntivi nel file.

Ho visto molte persone con questo problema in linea, ma nessuna delle soluzioni sembra funzionare per me. Qualsiasi aiuto sarebbe apprezzato.

Grazie

risposta

16

openssl x509 -outform der -in foo.pem -out foo.der

Quindi utilizzare il certificato uscita DER-encoded.

+0

Ero veramente sperando che avrebbe funzionato, ma io continuo a ricevere sporgono lo stesso errore. Ecco cosa sto facendo esattamente. openssl s_client -connect smtp.gmail.com:465 copio che in un file chiamato gmail.pem openssl x509 -outform der -in gmail.pem -out gmail.der keytool -import -file pathto /gmail.der -keystore pathTo/cacerts – dbbooh01

+0

Questo in realtà ha funzionato, ho dimenticato l'argomento -trustcacerts quando si utilizza keytool. Grazie per l'aiuto – dbbooh01

+0

@ dbbooh01 il motivo per cui questo ha probabilmente funzionato è dovuto al fatto che '-trustcacerts' importa le CA radice standard dal file cacerts distribuito. Ciò includerebbe le CA radice presenti nella catena di fiducia per Gmail. –

5

La risposta è corretta ma assicuratevi di INCLUDERE -----BEGIN CERTIFICATE----- e -----END CERTIFICATE----- nella copia/incolla. Questo comando funziona quindi:

openssl x509 -outform der -in gmail.pem -out gmail.der 

e poi fare:

sudo keytool -import -file gmail.der -keystore $JAVA_HOME/jre/lib/security/cacerts -trustcacerts 
+0

Yepp, anche questa è stata la causa del mio problema – Andrejs

2

Purtroppo, OpenSSL non ha funzionato per me.

unable to load certificate 2740:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:./crypto/as n1/tasn_dec.c:1294: 2740:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:./ crypto/asn1/tasn_dec.c:380:Type=X509_CINF 2740:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 e rror:./crypto/asn1/tasn_dec.c:749:Field=cert_info, Type=X509 2740:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:./crypto/pem/pem_oth .c:83:

Utilizzato questa base di conoscenza e successo seguito.

https://knowledge.verisign.ch/support/code-signing-support/index?page=content&id=SO18659&actp=search&viewlocale=en_US&searchid=1343045026667