2010-08-10 38 views
9

Tôi đang cố gắng nhập chứng chỉ smtp Gmails để sử dụng với Jira, nhưng tôi gặp lỗi này khi nhập bằng cách sử dụng công cụ khóa Javas.lỗi keytool: java.lang.Exception: Nhập không phải chứng chỉ X.509

Tôi đã sử dụng openssl để lấy chứng chỉ, mọi thứ giữa ---- Bắt đầu chứng chỉ ---- và ---- Giấy chứng nhận kết thúc ---- (bao gồm). Tôi cũng đã cố gắng tạo chứng chỉ x.509 bằng Trình quản lý chứng chỉ Windows nhưng vẫn gặp lỗi này. Tôi đã xác minh rằng không có khoảng trống thừa nào trong tệp.

Tôi đã thấy nhiều người có vấn đề này trực tuyến, nhưng không có giải pháp nào có vẻ phù hợp với tôi. Bất kỳ trợ giúp sẽ được đánh giá cao.

Cảm ơn

Trả lời

16

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

Sau đó sử dụng giấy chứng nhận kết quả DER-mã hóa.

+0

Tôi thực sự hy vọng điều này sẽ hiệu quả, nhưng tôi vẫn gặp lỗi tương tự. Đây là những gì tôi đang làm chính xác. openssl s_client -connect smtp.gmail.com:465 sao chép rằng vào một tập tin gọi là gmail.pem openssl x509 -outform der -in gmail.pem out gmail.der keytool -import -file pathTo /gmail.der -keystore pathTo/cacerts – dbbooh01

+0

Điều này thực sự đã làm việc, tôi đã quên đối số -trustcacerts khi sử dụng keytool. Cảm ơn sự giúp đỡ – dbbooh01

+0

@ dbbooh01 lý do này có thể làm việc là vì '-trustcacerts' nhập khẩu các CA gốc chuẩn từ tệp cacerts được phân phối. Điều này sẽ bao gồm các CA gốc nằm trong chuỗi tin cậy cho Gmail. –

5

Câu trả lời là chính xác nhưng hãy chắc chắn BAO GỒM -----BEGIN CERTIFICATE----------END CERTIFICATE----- trong bản sao/dán. lệnh này sau đó sẽ làm việc:

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

và sau đó bạn làm:

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

Yepp, đây cũng là nguyên nhân của vấn đề của tôi – Andrejs

2

Thật không may, openssl không làm việc cho tôi.

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:

Sử dụng cơ sở tri thức này và thành công theo sau.

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

Các vấn đề liên quan