2011-05-15 31 views
5

Chúng tôi đang sử dụng một ứng dụng đa nền tảng sẽ chạy trên cả Windows và Mac. Ứng dụng của chúng tôi dựa trên OpenSSL với tư cách là nhà cung cấp SSL và công cụ liên quan. Nó sử dụng Chứng chỉ ứng dụng khách để thiết lập các kết nối an toàn và để xác định người dùng cuối.OpenSSL và Apple Keychain tích hợp

Chúng tôi muốn sử dụng kho lưu trữ chứng chỉ gốc Windows và Mac để đảm bảo an toàn tối đa. Openssl có một công cụ để tương tác với Windows Certificate Store (CAPI engine). Tuy nhiên, chúng tôi không tìm được giải pháp cho Keychain của Mac.

Có tích hợp giữa OpenSSL và Keychain của Apple không?

Nếu không, đề xuất của bạn là gì?

+0

Chúng tôi chỉ tình cờ gặp liên kết này (http://www.mentby.com/wim-lewis-2/using-cdsacssm-modules-as-openssl-engines.html) đối với một số loại triển khai công cụ openssl cho Mac. Chúng tôi đang kiểm tra xem nó có đáp ứng nhu cầu của chúng tôi hay không. – Guy

Trả lời

0

Ngoài việc xử lý chứng chỉ ứng dụng khách, bạn cũng sẽ cần xác minh chứng chỉ máy chủ.

Để làm như vậy, bạn sẽ phải cung cấp OpenSSL với cuộc gọi lại sử dụng khung bảo mật Mac OS X để xác thực chứng chỉ máy chủ. Sử dụng hàm OpenSSL SSL_CTX_set_cert_verify_callback để đặt gọi lại xác thực chứng chỉ tùy chỉnh của bạn. Cuộc gọi lại của bạn phải chuyển đổi chứng chỉ OpenSSL thành SecCertificateRef, tạo một SecPolicyRef cho kết nối SSL, tạo một SecTrustRef và đánh giá nó. Xem Certificate, Key, and Trust Services Reference để biết thêm chi tiết.

0

Tôi nghĩ giải pháp "đơn giản nhất" là viết một công cụ OpenSSL cho CSSM (API cho CDSA, security architecture used by Mac OS X). Bạn nên hỏi về danh sách gửi thư openssl-dev nếu có ai quan tâm đến việc giúp đỡ (và có thể đã bắt đầu).

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