2013-03-21 45 views
5

Tôi đã phát triển một trang web cục bộ xác thực dựa trên dấu hiệu được chia sẻ. Một trong các bước là yêu cầu tôi thực hiện yêu cầu curl đến một tài nguyên https để nhận mã thông báo truy cập.Cách bật hỗ trợ CURLOPT_SSL_VERIFYHOST = 2 trên Hệ điều hành/PHP

Một phần của cấu hình curl là:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);           
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 

Như bạn có thể thấy tôi nhận xét ra các tùy chọn CURLOPT_SSL_VERIFYHOST. Tôi đã đọc trên php.net và trên các blog khác nhau/stackoverflow (Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl)) bài viết Ý nghĩa của các tùy chọn này.

Trên máy phát triển của tôi CURLOPT_SSL_VERIFYHOST 2 đã hoạt động tốt. Tôi chỉ sử dụng cài đặt vani php được cung cấp trong gói ubuntu 12.04 php5 và php5-curl.

Khi sản xuất (không gian trên nền tảng không gian), số CURLOPT_SSL_VERIFYHOST 2 không hoạt động, đó là lý do tại sao tôi đã thay đổi thành sai để xác minh đây là vấn đề. Thấy như tôi đã không rõ ràng làm bất cứ điều gì để kích hoạt tính năng này trên localhost của tôi Tôi không biết những gì chỉ thị/cấu hình tùy chọn điều khiển này.

Điều tôi muốn nói là "không hoạt động" là khi sản xuất cuộc gọi curl trả lại số http_code của 0 khi số VERIFYHOST được đặt thành 2. Khi tôi đặt nó vào FALSE nó được trả lại một mã trạng thái của 200

Câu hỏi của tôi là:

Làm thế nào tôi có thể bật SSL_VERIFYHOST trên một hộp linux?

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn bạn.

+2

curl của nó là '2' cho cài đặt này: http://php.net/manual/en/function.curl-setopt.php –

Trả lời

4

Đối với '2', bạn phải đảm bảo tên chung trong chứng chỉ SSL khớp với tên máy chủ đang được sử dụng. Đây là mặc định và phải thẳng về phía trước miễn là chứng chỉ SSL của bạn được tạo một cách thích hợp cho tên máy chủ (tên thường gọi) mà bạn đang sử dụng nó.

Từ hướng dẫn PHP curl_setopt:

1 để kiểm tra sự tồn tại của một tên chung trong giấy chứng nhận SSL ngang hàng. 2 để kiểm tra sự tồn tại của một tên phổ biến và cũng xác minh rằng nó phù hợp với tên máy chủ được cung cấp. Trong môi trường sản xuất, giá trị của tùy chọn này nên được giữ ở mức 2 (giá trị mặc định). mặc định

Manual Entry for curl_setopt