2012-02-20 24 views
5

Chúng tôi có chứng chỉ hiện có (dấu toàn cầu) hoạt động tốt khi ứng dụng Windows Mobile (.NET 3.5) cố gắng sử dụng web dịch vụ (cũng được viết bằng .NET 3.5) được lưu trữ trên IIS.Lỗi "Không thể thiết lập mối quan hệ tin cậy với máy chủ từ xa" khi thiết bị Windows di động .NET tiêu thụ một webservice

Tuy nhiên khi chúng tôi tạo chứng chỉ được cấp lại (dấu toàn cầu) trực tiếp, ứng dụng Windows Mobile không kết nối được với dịch vụ web, lỗi chúng tôi nhận được là "Không thể thiết lập mối quan hệ tin cậy với máy chủ từ xa". Ive đã cố gắng tìm kiếm điều này trên Google nhiều lần và không tìm thấy bản sửa lỗi phù hợp.

Chúng tôi cũng đã cố gắng sao chép (và cài đặt) chứng chỉ ROOT và trung gian trong chuỗi vào thiết bị, nhưng điều này vẫn không hoạt động.

Khi chúng tôi kiểm tra chứng chỉ mới bằng trình duyệt web PC (IE, Firefox, Opera), ứng dụng Máy tính để bàn sử dụng dịch vụ web (.NET 3.5) và thậm chí Internet Explorer trên thiết bị Windows Mobile. trang tài liệu/định nghĩa dịch vụ hiển thị không có vấn đề (không có cảnh báo hoặc lỗi), có vẻ như chỉ là sự cố trên thiết bị di động khi sử dụng ứng dụng khung nhỏ gọn (3.5) đang cố gắng sử dụng dịch vụ web.

Chúng tôi đã xác thực rằng chứng chỉ được cài đặt chính xác trên trang web của người mua sắm SSL và sau khi tìm kiếm google của chúng tôi, chúng tôi đã xem xét và triển khai (kiểm tra) một trình xử lý "tin tưởng tất cả" ICertificatePolicy, điều này đã giải quyết được vấn đề. hy vọng rằng vấn đề này có thể được giải quyết bằng cách thay đổi cấu hình/thiết lập thay vì thay đổi mã và triển khai lại trên 150 thiết bị dựa trên thiết bị di động.

Trình xử lý ICertificatePolicy đã hiển thị lỗi đang được trả lại khi cố gắng xác thực chứng chỉ: thông số vấn đề được đặt thành: -2146762481 (0x800B010F trong HEX), mà tôi tin là lỗi "CN No MATCH", tuy nhiên Ive đã tìm kiếm điều này ở cả dạng số, hex và tên của nó và vẫn chưa tìm thấy độ phân giải nào khác với thay đổi mã "Tin tưởng tất cả".

+0

Tại sao bạn tag này như một câu hỏi ColdFusion? –

+0

Xin lỗi, tôi không có ý, tôi không biết rằng các thẻ tự động hoàn thành khi tôi thêm câu hỏi vào ngăn xếp tràn, vì đây là lần đầu tiên tôi có câu hỏi aska, tôi thường google và tìm câu hỏi mà người khác có đã trả lời rồi. Tôi sẽ thay đổi các thẻ nếu có thể cho tôi làm như vậy – dtpuk

+0

Như một thông báo ngoại lệ cụ thể hơn, chúng tôi nhận được thông báo "Chứng chỉ từ xa đã thất bại quy trình xác thực". – thecoolmacdude

Trả lời

7

Tôi nghĩ tôi sẽ đăng câu trả lời ở đây trong trường hợp có ai đó gặp phải vấn đề này. Tôi đã không tìm thấy một lời giải thích đá rắn 100%, nhưng chúng tôi đã cố gắng để làm cho nó hoạt động và điều này đã làm cho tôi đưa ra một giả thuyết về vấn đề này:

Dường như khung nhỏ gọn dường như đang lấy Tên thường gặp đầu tiên (CN) tắt trường "Tên chủ đề thay thế" của chứng chỉ SSL và chỉ đánh giá chứng chỉ chống lại điều đó trong khi khung làm việc đầy đủ, IE và IE trên thiết bị di động dường như đang sử dụng cả hai. Lý luận của tôi để tin đây là dưới đây:

Ứng dụng PDA được truy cập vào url:

https://AMobileWebService.com/Webservice.asmx

chứng chỉ SSL cũ của chúng tôi rằng làm việc có sau trong "Tên Chủ đề Alternative":
Tên DNS = AMobileWebService.com
DNS Nam e = www.AMobileWebService.com

Và giấy chứng nhận mới mà không làm việc được ngăn chặn như sau trong cùng lĩnh vực:
DNS Name = www.AMobileWebService.com
DNS Name = AMobileWebService.com

Khi chúng ta thay đổi các ứng dụng để sử dụng https://www.AMobileSebService.com/Webservice.asmx, chứng chỉ cũ (đã được làm việc trước đây) thất bại trong việc thiết lập một mối quan hệ tin cậy, và các chứng chỉ mới làm việc (nhưng trước đó không). Như tôi đã đề cập trước đó, điều này khiến tôi tin rằng .NET CF chỉ lấy tên đầu tiên trong chứng chỉ SSL và sau đó đánh giá tên máy chủ lưu trữ trên đó, thay vì thực hiện nó chống lại cả hai như trong .NET đầy đủ. Khung.

Chúng tôi đi đến kết luận này bằng cách thực hiện một "tin tưởng tất cả các chứng chỉ" làm việc xung quanh mà chúng tôi tìm thấy trên stackoverflow: https://stackoverflow.com/questions/6552598/system-net-webexception-thrown-when-consuming-a-web-service-over-https

Tham số vấn đề về thực hiện giải pháp đã được trả lại giá trị -2146762481. Tìm kiếm trên đại diện hex giá trị (0x800B010F) chỉ cho tôi các thông tin sau: https://blogs.technet.microsoft.com/rrasblog/2007/09/26/how-to-debug-sstp-specific-connection-failures/

Các lỗi hóa ra là hằng số: CERT_E_CN_NO_MATCH

+0

Gần đây tôi đã chạy vào này cũng nhưng đối với tôi đó là tên thân thiện đã được thay đổi để xyz.com-2048 thay vì xyz.com như trước đây. Tôi đã có thể giải quyết vấn đề này bằng cách sử dụng liên kết ở trên nhưng muốn cho người khác biết nó có thể không phải là thứ tự tên cn vì điều đó giống nhau trong chứng chỉ của tôi. –

+1

Chỉ muốn nói rằng gần đây chúng tôi đã gặp sự cố này (vâng, chúng tôi vẫn sử dụng khung nhỏ gọn) và tạo lại chứng chỉ SSL với tên thích hợp đầu tiên trong danh sách của SAN là bản sửa lỗi. – Hypino

+0

Cuối cùng tìm thấy điều này sau nhiều ngày đáng để cố gắng tìm ra vấn đề của chúng tôi. Cảm ơn bạn! – thecoolmacdude

Các vấn đề liên quan