2011-10-26 34 views
5

Trong ứng dụng của tôi, tôi có các tình huống trong đó tôi cần thực hiện yêu cầu đối với các máy chủ có chứng chỉ tự ký. Tôi muốn có thể tắt xác thực chứng chỉ chỉ cho yêu cầu cụ thể đó.Tắt xác thực chứng chỉ cho một yêu cầu duy nhất

Tôi biết tôi có thể tắt chứng chỉ xác thực bằng cách đặt ServicePointManager.ServerCertificateValidationCallback để trỏ đến phương thức gọi lại và chỉ cần trả về true. Tuy nhiên điều này sau đó vô hiệu hóa xác nhận chứng chỉ cho toàn bộ ứng dụng mà tôi chỉ đơn giản có thể làm bằng cách thiết lập trong app.config.

Tuy nhiên tôi không muốn vô hiệu hóa cho toàn bộ ứng dụng mà là vô hiệu hóa cho một yêu cầu riêng lẻ. Điều đó có thể không?

Lớp tôi đang làm việc là SmtpClient

Trả lời

0

Vô hiệu xác thực chứng chỉ thường là một ý tưởng tồi. Tại sao bạn không chỉ cần thêm chứng chỉ tùy chỉnh của mình dưới dạng chứng chỉ đáng tin cậy trên hệ thống hoặc trong ứng dụng của bạn.

AFAIR việc này có thể được thực hiện, ví dụ: bằng cách triển khai X509CertificateValidator của riêng bạn. Chỉ cần nhúng chứng chỉ tùy chỉnh vào ứng dụng của bạn và so sánh trong X509CertificateValidator nếu cả hai đều bằng nhau.

Xem thêm: How safe is my custom SSL verification logic to handle excepted RemoteCertificateNameMismatch?

+0

Robert thaks cho phản hồi. Trong các phần của ứng dụng của chúng tôi, chúng tôi không muốn cho phép nếu chứng chỉ không hợp lệ. Tuy nhiên trong trường hợp cụ thể này, chúng tôi gửi email chúng tôi muốn sử dụng SSL nhưng chúng tôi đang tìm kiếm nhiều khách hàng có chứng chỉ SSL tự ký, dẫn đến việc không gửi được email. Thật không may, điều này thường xảy ra đối với các máy chủ SMTP và sẽ là một cơn ác mộng khi nhập chứng chỉ cho mỗi máy chủ smtp không thành công, vì vậy chúng tôi muốn cho phép SMTP có khả năng chấp nhận các lỗi giấy chứng nhận và các phần khác của ứng dụng của chúng tôi để vẫn thực thi. –

+0

Sau đó có thể bạn nên sử dụng lược đồ xác thực được sử dụng trong Ứng dụng thư khách K9 "Android có cùng vấn đề. Lần đầu tiên nó gặp một chứng chỉ không đáng tin cậy, nó cho thấy một số chi tiết chứng chỉ yêu cầu người dùng nếu họ tin tưởng chứng chỉ này. Nếu người dùng trả lời có AFAIR nó sẽ lưu băm chứng chỉ trong tập tin cài đặt đánh dấu chứng chỉ này là hợp lệ. Trình xác thực chứng chỉ nội bộ sau đó chấp nhận tất cả các chứng chỉ thông thường cộng với chứng chỉ có băm được lưu. Làm việc cho mọi người và vẫn tương đối an toàn. – Robert

+0

Thật không may đây là một dịch vụ do đó không có giao diện người dùng và do đó không có bất kỳ hộp thoại nào mà người dùng có thể nhấp để chấp nhận chứng chỉ. –

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