2012-10-18 40 views
5

Tôi đang khởi chạy ý định KeyChain để cài đặt chứng chỉ tự ký mà tôi có trên bộ nhớ làm đối tượng X509Certificate (có bằng X509TrustManager, theo phương thức checkServerTrusted). Với mã này:Cài đặt chứng chỉ tự ký tự lập trình

Intent intent = KeyChain.createInstallIntent(); 
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certs[0].getEncoded()); 
intent.putExtra(KeyChain.EXTRA_NAME, "certificate"); 
context.startActivityForResult(intent, 0); 

Hoạt động mới được đưa ra và tôi có thể nhận được thông báo "chứng chỉ được cài đặt", nhưng tôi không thể tìm thấy nó thông qua danh sách các chứng chỉ bảo mật, và khi cố gắng kết nối với máy chủ đó, nó dường như không được cài đặt.

Bất kỳ ý tưởng nào về cách giải quyết?

+0

Bạn có tìm thấy câu trả lời cho điều này không? –

Trả lời

1

Màn hình Danh sách chứng chỉ bảo mật mà bạn đề cập chỉ chứa danh sách chứng chỉ CA đáng tin cậy mà bạn đã thêm vào thiết bị Android. (Lưu ý: danh sách chứng chỉ hệ thống là danh sách các CA đáng tin cậy mà nhà sản xuất thiết bị đã thiết lập). Không có màn hình (trên điện thoại không bắt nguồn từ ít nhất) hiển thị cho bạn chứng chỉ của KeyChain.

Để ứng dụng truy cập chứng chỉ/khóa, ứng dụng cần yêu cầu hệ điều hành cho phép. Để thực hiện điều này, lớp KeyChain có một phương thức gọi là selectPrivateKeyAlias, cho thấy người dùng một hoạt động để chọn chứng chỉ mà ứng dụng có thể truy cập. Hoạt động này sẽ liệt kê bất kỳ chứng chỉ đã nhập nào mà bạn đã cài đặt bằng phương pháp ở trên.

Xem liên kết bên dưới để biết thêm chi tiết.

Unifying Key Store Access in ICS

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