Tôi đang cố gắng sử dụng cURL để đăng lên API chỉ mới bắt đầu sử dụng SNI (để chúng có thể lưu trữ nhiều chứng chỉ ssl trên 1 địa chỉ IP).Sử dụng cURL với SNI (Chỉ dẫn tên máy chủ)
CURL của tôi ngừng hoạt động do di chuyển này sang SNI. Họ giải thích rằng đó là vì cURL đang nhận lại * .domain-a.com thay vì * .domain-b.com nên SSL không thành công.
Điều này có vẻ là một lỗi trong cURL vì URL API không có lỗi khi được truy cập từ trình duyệt.
Sử dụng mã này, nó làm việc:
exec('curl -k -d "parameters=here", https://urlhere.com/', $output);
print_r($output);
Tuy nhiên, sử dụng -k là xấu bởi vì nó không xác minh cert SSL.
Sử dụng mã này, không làm việc:
exec('curl -d "parameters=here", https://urlhere.com/', $output);
print_r($output);
Vì vậy, câu hỏi của tôi là, làm thế nào tôi có thể sử dụng curl với SNI và vẫn kiểm tra SSL (không phải sử dụng -k). Có một thiết lập trong PHP hoặc một tùy chọn cURL tôi có thể thiết lập để làm việc xung quanh này?
Nếu bạn muốn sử dụng libcurl, hãy đặt 'CURLOPT_SSLVERSION' thành' 1' (tương đương với '-1' trên dòng lệnh). – Bruno
Đối với tôi, nó đã cài đặt phiên bản cũ của cURL. Cập nhật nó đã sửa nó. – Justin
BTW là một ví dụ tuyệt vời về câu trả lời hay về SO. Cảm ơn –