Điểm:0

Xác thực lẫn nhau (ứng dụng khách WCF kết nối với dịch vụ SOAP) không thành công với một chứng chỉ ứng dụng khách nhưng hoạt động với chứng chỉ khác (nhưng cả hai đều đáng tin cậy ở phía máy chủ)

lá cờ hr

Thiết lập: ứng dụng khách .NET (4.6) kết nối với dịch vụ SOAP từ xa qua HTTPS. Dịch vụ từ xa có thể được định cấu hình để yêu cầu chứng chỉ ứng dụng khách hay không.

Những gì tôi đang tìm kiếm như một câu trả lời là bất kỳ lời giải thích khả thi nào về lý do tại sao kịch bản # 2 không thành công ... 3 kịch bản sau đây đều được kiểm tra bằng cách sử dụng chính xác cùng một cơ sở mã, chỉ thay đổi các chứng chỉ liên quan và chứng chỉ ứng dụng khách có được yêu cầu hay không dịch vụ.

Kịch bản #1 - không yêu cầu chứng chỉ ứng dụng khách

  • máy khách kết nối OK

Kịch bản #2 - yêu cầu chứng chỉ ứng dụng khách, chứng chỉ A đã sử dụng

  • chứng chỉ A được cài đặt trong Windows ở phía máy khách (cửa hàng máy tính cục bộ)
  • chứng chỉ hợp lệ, 2048 bit, không phải ký tự đại diện, được sử dụng thành công để xác thực máy chủ trong một dịch vụ không liên quan khác, do Cơ quan cấp chứng chỉ bảo mật GoDaddy - G2 cấp
  • chứng chỉ được chia sẻ với bên từ xa dường như biết họ đang làm gì
  • khi khách hàng cố gắng yêu cầu, bắt tay không thành công. Về phía máy khách, ngoại lệ .NET là "Yêu cầu đã bị hủy bỏ: Không thể tạo kênh bảo mật SSL/TLS.". Về phía máy chủ, lỗi là "máy khách không xuất trình được chứng chỉ".

Kịch bản #3 - yêu cầu chứng chỉ ứng dụng khách, chứng chỉ B đã sử dụng

  • mọi thứ hoàn toàn giống với #2 ngoại trừ chứng chỉ ứng dụng khách khác được sử dụng (B)
  • chứng chỉ hợp lệ, 2048 bit, ký tự đại diện, được sử dụng thành công để xác thực máy chủ trong một dịch vụ không liên quan khác, do GeoTrust RSA CA 2018 cấp
  • máy khách kết nối OK

Những gì chúng ta có thể thấy từ nhật ký là trong cả hai kịch bản #2 và #3, máy khách và máy chủ thương lượng để sử dụng TLS 1.2.

Sau khi chạy nhiều lần ở trên, kiểm tra mọi thứ, kết luận duy nhất của tôi là chứng chỉ A bằng cách nào đó không tương thích với thiết lập - ứng dụng khách .NET quyết định không xuất trình hoặc dịch vụ không thể chấp nhận. Nhưng những gì có thể khác/thiếu?

lá cờ hr
Đúng, nhưng điều gì sẽ làm cho một chứng chỉ không tương thích hoặc không được nhận dạng, khi cùng một chứng chỉ hoạt động thành công để xác thực máy chủ trong một dịch vụ không liên quan khác?
lá cờ hr
Tôi đoán #1 và #2 có thể áp dụng ở đây - Tôi sẽ kiểm tra. Chứng chỉ chưa hết hạn nên không #3. Theo bài đăng, lỗi xảy ra trong quá trình bắt tay giữa ứng dụng khách WCF và dịch vụ SOAP, vì vậy không có trang web nào liên quan ở đây.
Steeeve avatar
lá cờ fr
Chỉ cần đoán: bạn đã kiểm tra xem tài khoản người dùng của khách hàng có quyền truy cập đọc vào khóa riêng của chứng chỉ A chưa?
lá cờ hr
Cảm ơn @Steeeve nhưng quyền đọc trên khóa riêng của chứng chỉ A và B giống hệt nhau và chúng nằm trong cùng một thư mục cửa hàng Windows.
lá cờ cn
Chụp gói trên máy khách có thể xác nhận xem chứng chỉ có được xuất trình hay không. Đồng thời kích hoạt và kiểm tra nhật ký sự kiện Windows CAPI.

Đă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.