2012-06-29 30 views
8

Cố gắng thiết lập chứng chỉ tự ký, cho trang web dịch vụ web của mạng nội bộ của chúng tôi. Bản thân chứng chỉ cho thấy nó là "ok" nhưng khi cố gắng gọi một phương thức từ dịch vụ web, nó sẽ phát ra một lỗi, và đồng thời thêm vào tham chiếu web nó đưa ra một cảnh báo.cert tự ký. Kết nối cơ bản đã bị đóng: Không thể thiết lập mối quan hệ tin cậy

Dưới đây là các bước và một số ảnh chụp màn hình để đảm bảo tôi cung cấp thông tin chính xác.

Máy chủ Windows 2003. IIS. Các trang web là "WebServices.companyName.vmc"

1

Đây là tiêu đề máy chủ cho các trang web

2

Từ máy chủ, nó cho thấy các CERT là 'ok'.

enter image description here

Dưới đây là một số trang web cài đặt

enter image description here


Bây giờ, trong visual studio 2008, thêm các tài liệu tham khảo web

enter image description here

cách nhấp vào 'Yes' để popup

enter image description here

Nhấp 'Không' để popup này, nhiều lần liên tục.

enter image description here

Sau khi dòng mã chạy, trong đó kêu gọi các dịch vụ web ... tôi nhận được lỗi này

Kết nối tiềm ẩn đã được đóng cửa: Không thể thiết lập sự tin tưởng mối quan hệ cho SSL/Kênh bảo mật TLS.

Và khi trang web của webservice trong trình duyệt, ít pad khóa bằng thanh URL, cung cấp tin nhắn này:

enter image description here


Đây là mã hiện tại của tôi:

Dim mySvc As New WebServices.InstantAccount 
mySvc.calledFunction() 


EDIT

Đối với bất kỳ ai có vấn đề tương tự, vui lòng đọc câu trả lời của iamkrillin và câu trả lời của tôi ... vì cả hai cách khác nhau để giải quyết vấn đề ... tùy thuộc vào phần nào bạn có thể kiểm soát mã, hoặc cert).

+0

Có thể điều này sẽ giúp bạn http://stackoverflow.com/questions/703272/could-not-establish-trust-relationship-for-ssl-tls-secure-channel-soap – daniloquio

+0

Tôi đã đọc bài đăng đó trước đây và tôi đã xác nhận một vài điều như DNS line-of-sight, rằng cert vẫn còn hiệu lực, và ngày là chính xác ... nhưng phần còn lại của một chút ngoài tôi. đó là lý do tại sao tôi đăng rất nhiều ảnh chụp màn hình. – adam

+0

Nếu tôi phải đoán, tôi muốn nói "• bạn có sử dụng đúng tên từ chứng chỉ không?" là một nơi tốt để kiểm tra. Nhưng tôi không chắc chắn làm thế nào để kiểm tra điều đó. – adam

Trả lời

11

Thêm dòng mã này ở đâu đó trước khi bạn tạo ứng dụng khách dịch vụ.

ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true); 

Lưu ý: điều này sẽ khiến ứng dụng của bạn chấp nhận tất cả các chứng chỉ không hợp lệ và chỉ tiếp tục di chuyển. Nếu điều này không được chấp nhận, bạn có thể đính kèm một chức năng vào đó và xử lý để xác định xem lỗi cert có được chấp nhận hay không

+0

BẠN LÀ GENIUS !! cảm ơn bạn rất nhiều!!! – adam

1

iamkrillin đã có giải pháp làm việc, trong đó mã của anh ấy sẽ bỏ qua cert không hợp lệ và cho phép ứng dụng để sử dụng dịch vụ web.

Ngoài việc này, tôi đã sửa chứng chỉ để tôi không còn cần bỏ qua chứng chỉ không hợp lệ nữa.

Giá trị tiêu đề máy chủ (hiển thị trong OP) là WebServices.mycompany.vmc, nhưng "Tên chung" hoặc "Tên thân thiện" cho chứng chỉ (được hiển thị trong ảnh chụp màn hình OP 3 cho 'Đường dẫn chứng nhận') là WebServices.

Tên thông dụng và URL trang web cần khớp. Tôi tạo lại cert tự ký với tên chung là "WebServices.mycompany.vmc" và bây giờ lỗi chứng chỉ đã biến mất. Các dịch vụ web có sẵn để sử dụng, mà không có coder cần phải bỏ qua certs không hợp lệ cho ứng dụng.

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