2009-03-30 23 views
6

Tôi đang viết một dịch vụ web trong Perl sẽ chạy dưới SSL (HTTPS) với chứng chỉ ứng dụng khách. Làm cách nào để xác định chứng chỉ nào đang được khách hàng sử dụng trong kết nối hiện tại để tôi có thể lọc ra những chứng chỉ không mong muốn?Làm cách nào để xác định chứng chỉ ứng dụng khách SSL nào mà kết nối đang sử dụng trong mod_perl?

Lưu ý: dịch vụ web đang được chạy dưới dạng tập lệnh mod_perl.

+0

Đây có phải là tập lệnh cgi hoặc mod_perl hay bạn sẽ tự mở chính socket máy chủ nghe? – innaM

+0

nó sẽ là một kịch bản mod_perl. Tôi đã suy nghĩ về việc sử dụng SOAP :: WSDL :: Server :: Mod_Perl2 – Sklivvz

Trả lời

4

Tìm thấy câu trả lời trên PerlMonks:

Sử dụng Apache::SSLLookup module

sub handler { 
    my $r = Apache::SSLLookup->new(shift); 
    my $request_is_over_ssl = $r->is_https; 
    my $certificate = $r->lookup_var('SSL_CLIENT_CERT'); 

    ... 
    } 

mod_ssl tham khảo môi trường here.