Hiện tại tôi đang viết thư viện java để truy cập API REST của pointhq.com.cần trợ giúp tìm hiểu chuỗi chứng chỉ
Trong khi phát triển một khách hàng Android tôi nhận ra rằng chứng chỉ SSL không được chấp nhận theo mặc định vì vậy tôi đã viết một TrustManager tùy chỉnh và bổ sung giấy chứng nhận pointhq.com như giải thích trong bài này: Trusting all certificates using HttpClient over HTTPS
Sử dụng Trustmanager này và nhập khẩu của tôi bks file Tôi nhận được lỗi sau trong khi cố gắng kết nối: IssuerName(CN=GeoTrust Global CA, O=GeoTrust Inc., C=US) does not match SubjectName(CN=RapidSSL CA, O="GeoTrust, Inc.", C=US) of signing certificate.
Vì vậy, tôi đã làm gì sai? Tôi đã nhập chứng chỉ pointhq.com, rapidssl.com, geotrust.com. Nhưng không có gì thay đổi. Có một loại giấy chứng nhận nào mà tôi phải biết không? Tôi có thiếu chứng chỉ gốc không?
EDIT: Dưới đây là danh sách các giấy chứng nhận nhập khẩu:
Loại: BKS Provider: BC Entries: 3
nhập Bí danh: GeoTrust toàn cầu ca Creation Date: 19.10.2011 15:44: 35 MESZ Loại: Trusted Giấy chứng nhận Chứng chỉ: 1
Certificate 1 of 1
Version: 3
Subject: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
Issuer: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
Serial Number: 0002 3456
Valid From: 21.05.2002 06:00:00
Valid Until: 21.05.2022 06:00:00
Public Key: RSA (2.048 bits)
Signature Algorithm: SHA1withRSA
SHA-1 Fingerprint: DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12
MD5 Fingerprint: F7:75:AB:29:FB:51:4E:B7:77:5E:FF:05:3C:99:8E:F5
nhập Bí danh: pointhq.com (RapidSSL ca)NgàyCreation: 2011/09/29 18:55:12 MESZ Loại: Trusted Giấy chứng nhận Chứng chỉ: 1
Certificate 1 of 1
Version: 3
Subject: CN=pointhq.com, OU=Domain Control Validated - RapidSSL(R), OU=See www.rapidssl.com/resources/cps (c)11, OU=GT70151377, O=pointhq.com, C=GB, SERIALNUMBER=8Dvj7qRSYLjGZiX2tHocE2FDaqAp8RwO
Issuer: CN=RapidSSL CA, O="GeoTrust, Inc.", C=US
Serial Number: 8971
Valid From: 31.01.2011 13:20:09
Valid Until: 03.02.2013 09:15:38
Public Key: RSA (2.048 bits)
Signature Algorithm: SHA1withRSA
SHA-1 Fingerprint: BB:04:D0:3E:1A:36:02:F7:C3:8C:85:99:1D:67:2A:6B:CF:C1:BC:C5
MD5 Fingerprint: 21:9D:DF:72:E6:4A:33:47:E1:BA:D6:52:86:1E:59:B4
nhập Bí danh: RapidSSL ca (GeoTrust ca toàn cầu) Creation Date: 2011/09/29 18:54: 49 MESZ Loại: Trusted Giấy chứng nhận Chứng chỉ: 1
Certificate 1 of 1
Version: 3
Subject: CN=RapidSSL CA, O="GeoTrust, Inc.", C=US
Issuer: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
Serial Number: 0002 36D1
Valid From: 19.02.2010 23:45:05
Valid Until: 18.02.2020 23:45:05
Public Key: RSA (2.048 bits)
Signature Algorithm: SHA1withRSA
SHA-1 Fingerprint: C0:39:A3:26:9E:E4:B8:E8:2D:00:C5:3F:A7:97:B5:A1:9E:83:6F:47
MD5 Fingerprint: 1B:EE:28:5E:8F:F8:08:5F:79:CC:60:8B:92:99:A4:53
bây giờ tôi đã viết một ứng dụng SSL thử nghiệm. Kết quả là khó hiểu. Như bạn có thể thấy trên các ảnh chụp màn hình đính kèm, đôi khi kết nối ssl được chấp nhận và một số lần nó không được! Ngay cả khi đó là trang web tôi đang kết nối.
https://ssltest12.bbtest.net/ là trang web demo cho chứng chỉ RapidSSL Tôi phải sử dụng những gì. Như bạn có thể thấy trên Ảnh chụp màn hình Android 2.1, kết nối đầu tiên nhận được không được chấp nhận nhưng lần thử thứ hai hoạt động hoàn toàn tốt, trong khi lần cuối không hoạt động lại. Làm thế nào điều đó có thể xảy ra?
BTW: Kể từ Android 2.3.3 chứng chỉ RapidSSL được chấp nhận mà không có bất kỳ mã tùy chỉnh nào!
Scrennshots:
- http://jcodehq.org/Android2.1.png
- http://jcodehq.org/Android2.2.png
- http://jcodehq.org/Android2.3.3.png
- http://jcodehq.org/Android4.0.png
Bạn cũng có thể đăng các chứng chỉ bạn đã nhập không? Có vẻ như tên không khớp. –
Cấu hình của bạn dường như bỏ lỡ chứng chỉ trung gian RapidSSL trong chuỗi chứng chỉ của bạn. Có cách nào để buộc chuỗi của bạn trong TrustManager không? – kroonwijk
@kroonwijk cái nào nên bị thiếu? Bạn có ý gì với "buộc chuỗi của bạn"? Tôi nghĩ rằng có thể thứ tự của các chứng chỉ là sai trong tập tin BKS của tôi? Tôi sẽ cố gắng sắp xếp lại chúng ... –