Cách khắc phục thực sự cho việc này là đảm bảo rằng máy chủ của bạn xuất trình tất cả các chứng chỉ trong chuỗi chứ không chỉ chứng chỉ thực thể cuối (máy chủ).
Trỏ quản trị viên máy chủ của bạn tới RFC 5246 Mục 7.4.2 , trong đó nêu rõ rằng Thông báo này truyền chuỗi chứng chỉ của máy chủ cho khách hàng.
Nếu quản trị viên của bạn từ chối / không thể làm điều này vì một số lý do, tùy chọn thay thế của bạn là thử và bắt curl
đầu làm việc với cái bắt tay không đúng định dạng.
Theo một tin nhắn trong danh sách gửi thư Curl:
Ai đó có thể xác nhận nếu cURL hỗ trợ (hoặc không) chứng chỉ trung gian không?
Có nó làm. Tất cả các chứng chỉ ca có một chuỗi chứng chỉ đi lên đến gốc. Các gói ca bạn sử dụng với curl cần bao gồm các certs cho toàn bộ chuỗi.
/ daniel.haxx.se
Bạn sẽ có thể thêm Root CA và tất cả các chứng chỉ trung gian vào một gói và trỏ curl
đến nó bằng --cacert <file>
tùy chọn.
Khi trình duyệt của bạn hoạt động, bạn có thể truy cập các chứng chỉ CA chính xác từ đó. Trên tab chứng chỉ (khác nhau cho từng trình duyệt, nhưng tôi chắc chắn bạn sẽ tìm ra cái đó), xem chuỗi chứng chỉ. Nhấp đúp vào Root CA đầu tiên GlobalSign Root CA - G1 và trên chi tiết tab, bấm vào Sao chép tập tin ... . Lưu nó như root.cer
. Làm tương tự với AlphaSSL CA - SHA256 - G2 và lưu nó dưới dạng issuing.cer
. Kết hợp cả hai lại với nhau trong một tệp duy nhất (ví dụ chain.cer
) và sử dụng nó làm đối số -cacert
.
Như @AB chỉ ra, chứng chỉ còn thiếu cũng có thể được tìm thấy ở đây .
Trình duyệt của bạn hoạt động vì chúng lưu trữ chứng chỉ CA. Nếu bạn đã điều hướng đến một trang web được định cấu hình chính xác tại một thời điểm trước đây, chứng chỉ được cấp bởi cùng một CA với chứng chỉ của máy chủ của bạn, nó sẽ được trình duyệt lưu vào bộ nhớ cache. Sau đó, khi bạn truy cập trang web được cấu hình không chính xác, trình duyệt của bạn sẽ sử dụng chứng chỉ CA trong bộ đệm của nó để xây dựng chuỗi. Đối với bạn, có vẻ như mọi thứ đều ổn, mặc dù đằng sau hậu trường, máy chủ bị cấu hình sai.
Lưu ý rằng trên Windows, IE / Edge và Chrome có chung bộ đệm, trong khi Firefox sử dụng riêng.
Ngoài các cách trên, IE / Edge và Chrome (vì chúng có chung ngăn xếp tiền điện tử) sẽ sử dụng một tiện ích mở rộng trong các chứng chỉ được gọi là AuthorIn informationAccess . Điều này có một tùy chọn caIssuer cung cấp một URL mà từ đó chứng chỉ CA của chứng chỉ thực thể cuối có thể được tải xuống. Do đó, ngay cả khi một trong những trình duyệt này không lưu các chứng chỉ bị thiếu từ trình duyệt trước đó, nó có thể tìm nạp nó nếu cần. Lưu ý rằng Firefox không làm điều này, đó là lý do tại sao đôi khi Firefox có thể hiển thị lỗi chứng chỉ khi IE / Edge và Chrome dường như hoạt động.