Điểm:1

Tại sao khách hàng (không phải trình duyệt) đôi khi không tin tưởng vào các chứng chỉ hợp lệ, đã ký?

lá cờ us

Đây là một câu hỏi hơi kinh điển ... Tôi hy vọng điều đó ổn.

Trong công việc của mình, tôi thường khắc phục sự cố các tình huống trong đó máy khách chạy trên máy chủ Linux (thường là ứng dụng java) không tin cậy chứng chỉ hợp lệ, đã ký - chứng chỉ được các trình duyệt tin cậy. Cách khắc phục nhanh thông thường của chúng tôi là thêm chứng chỉ vào cửa hàng ủy thác cacerts java, nhưng nó khiến tôi thắc mắc tại sao điều này lại cần thiết.

Theo hiểu biết của tôi có hai khả năng:

  1. Phía máy chủ không gửi toàn bộ chuỗi (chứng chỉ thực thể cuối + chứng chỉ trung gian), theo đúng thứ tự VÀ khách hàng không tin tưởng vào chứng chỉ trung gian (có lẽ vì nó quá cũ.)
  2. Cửa hàng tin cậy của khách hàng không chứa chứng chỉ gốc để sử dụng làm mỏ neo tin cậy (có lẽ vì nó quá cũ.)

Điều đó có chính xác không? Nếu vậy, có vẻ như các khả năng thay thế để buộc tin tưởng vào chứng chỉ thực thể cuối là:

  • Định cấu hình ứng dụng máy chủ để gửi toàn bộ chuỗi.
  • Nâng cấp ứng dụng khách (ví dụ: java) lên phiên bản mới hơn. Trong trường hợp của tôi, thông thường bản phát hành chính của java có thể được sử dụng bị giới hạn bởi các điều kiện tiên quyết của phần mềm, nhưng có lẽ mỗi bản phát hành nhỏ chứa một cửa hàng tin cậy được cập nhật?

Bất kỳ suy nghĩ làm rõ được đánh giá cao.

Steffen Ullrich avatar
lá cờ se
*"VÀ khách hàng không tin tưởng vào các chứng chỉ trung gian (có lẽ vì nó quá cũ.)"* - điều này không liên quan đến chứng chỉ cũ. Cửa hàng tin cậy chỉ đơn giản là chứa CA gốc và máy chủ dự kiến ​​sẽ gửi các chứng chỉ trung gian. Trung gian được tin cậy nếu nó được cấp bởi một CA gốc đáng tin cậy cục bộ hoặc bởi một trung gian đáng tin cậy khác - bất kể tuổi tác của khách hàng.
Steffen Ullrich avatar
lá cờ se
Ngoài ra, bạn giải quyết các điểm chính. Các lý do có thể khác: máy khách không gửi được SNI (mặc dù hầu hết các máy khách hiện đại đều làm như vậy), máy chủ được định cấu hình đúng cho IPv4 chứ không phải IPv6 và máy khách cố gắng kết nối với IPv6 trong khi trình duyệt có thể sử dụng IPv4.
DarkMoon avatar
lá cờ in
Bạn chưa đề cập đến O/S, nhưng tôi tin rằng trên Windows, các trình duyệt sử dụng kho chứng chỉ Windows nhưng Java sử dụng kho chứng chỉ của chính nó theo mặc định. Vì vậy, chỉ vì một trình duyệt đáng tin cậy mà anh ấy chứng nhận không có nghĩa là Java sẽ làm được. javax.net.ssl.trustStoreType có thể được sử dụng để yêu cầu nó lấy danh sách chứng chỉ gốc đáng tin cậy từ danh sách nội bộ của Windows.
dave_thompson_085 avatar
lá cờ jp
@DarkMoon: IE Edge và Chrome/Windows sử dụng cửa hàng chứng chỉ Windows, nhưng Firefox sử dụng kho chứng chỉ của riêng mình. Trên tất cả các hệ điều hành, Java được xây dựng từ Oracle (và trước đây là Sun) mặc định thành tệp cacerts của riêng họ, nhưng OpenJDK phụ thuộc vào trình xây dựng; OpenJDK được xây dựng cho các bản phân phối Linux (luôn luôn? hầu như luôn luôn?) sử dụng kho lưu trữ hệ thống.
em_bo avatar
lá cờ us
@SteffenUllrich Từ những gì tôi có thể nói, Java thường cung cấp các chứng chỉ trung gian cho các CA chính. Tôi đã thấy độ tuổi của khách hàng bắt đầu phát huy tác dụng khi CA chuyển sang chứng chỉ trung gian mới hơn so với những gì được cung cấp.
em_bo avatar
lá cờ us
@DarkMoon Tôi không rõ ràng, nhưng bối cảnh câu hỏi của tôi chủ yếu là các máy chủ Linux, vì vậy trình duyệt được đề cập và ứng dụng khách được đề cập không chạy trên cùng một hệ thống.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.