2012-07-09 26 views
5

tập tin .key của tôi như: ----- BEGIN RSA PRIVATE KEY ----- MIIEpAIBAAKCAQEA1j6eGXbHpqigZ1K // wnuyr5v/L2jFm7dzTtHJx8ZoMQ4CbsGCách sử dụng tệp .key và .pem để tạo SSL socket trong Android?

tập tin .pem nào của tôi như: ----- BEGIN CERTIFICATE-- --- MIIE4zCCA8ugAwIBAgIDBOziMA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT

Tôi không biết có bao nhiêu bước xác thực tại đây. Tôi chỉ muốn tạo một ổ cắm ssl cho một IP và cổng, và gửi/nhận dữ liệu trong ổ cắm đó. Tôi đã cố gắng sử dụng keystock, nhưng có lẽ tôi không hiểu sâu về nó, tôi luôn bị sai.

Vui lòng cho tôi hướng dẫn hoặc mã mẫu.

Cảm ơn rất nhiều.

Trả lời

0

Khi tạo kết nối SSL, bạn chỉ cần ổ cắm để cho phép kết nối với máy chủ của mình, cho phép kết nối đó với tư cách là nguồn đáng tin cậy. Để làm như vậy, bạn cần phải có chứng chỉ SSL của bạn ở định dạng X509 và sau đó tạo kết nối của bạn như đã nêu trong this article.

Đây là a guide on generating X.509 certificates.

+0

Bài viết được liên kết sắp đặt về một kho lưu trữ tin cậy của Android, không phải là kho khóa cho xác thực ứng dụng khách HTTPS, do đó việc sử dụng nó bị giới hạn. Ngoài ra, OP không cần tạo chứng chỉ (máy khách) vì anh ta đã có tệp .key và .pem. – Robert

9

Tôi giả định rằng tệp .key.pem thể hiện chứng chỉ ứng dụng khách của bạn mà bạn phải sử dụng để thực hiện xác thực ứng dụng khách HTTPS. Thật không may Java/Android thích một định dạng khác nhau, do đó tôi khuyên bạn nên nhập cả hai tập tin vào một tập tin BKS.

Tạo tệp BKS và nhập tệp hiện có .key + .pem rất đơn giản bằng cách sử dụng Portecle GUI. Sau khi khởi động Portecle, hãy chọn File -> New Keystore -> BKS. Sau đó, bạn có thể thực thi các công cụ -> Nhập cặp khóa và chọn tệp .pem. Sau đó Portecle sẽ yêu cầu bạn chọn tệp .key.

Cuối cùng lưu kho khóa được bảo vệ bằng mật khẩu bạn chọn.

Tệp BKS đã tạo hiện có thể được sử dụng trong ứng dụng Android của bạn. Xem ví dụ mã được đăng trong câu hỏi này: Using client/server certificates for two way authentication SSL socket on Android

Cập nhật 2015-06-30: Mô tả ở trên chỉ hoạt động đối với Portecle 1.6 và trước đó. Với phiên bản 1.7 và 1.8 bạn không thể tạo các keystores tương thích với Android. Trong Portecle 1.9, hãy sử dụng định dạng BKS-V1 để thay thế.

+0

Đây là liên kết tốt. Nhưng tôi tạo tất cả mọi thứ trong một chuỗi và nhận lỗi: android.os.NetworkOnMainThreadException. Chúng ta có cần tạo luồng cho nó không? – Brave

+0

Trong Portecle 1.9 (không chắc chắn về các phiên bản khác) tệp '.key' * của bạn phải được bảo vệ bằng mật khẩu *, nếu không, Portecle sẽ chỉ cho bạn biết khóa không hợp lệ. –

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