2012-02-21 16 views
10

Tôi đang cố gắng xây dựng một dịch vụ web được lưu trữ trên Glassfish mạo danh (để thử nghiệm phát triển) một dịch vụ web được lưu trữ WCF. Tôi có WSDL từ dịch vụ lưu trữ WCF, và tôi có thể xây dựng dịch vụ Java và máy khách Java từ WSDL được WCF lưu trữ mà không có vấn đề gì. WSDL sử dụng Bảo mật chứng chỉ lẫn nhau để trao đổi dữ liệu.Các vấn đề với mạo danh một Máy chủ Web Bảo mật WCF sử dụng Glassfish/Metro

WSDL có chứng chỉ X509 được nhúng phù hợp với chứng chỉ máy chủ lưu trữ của máy chủ WCF.

Khi tôi cố gắng kết nối máy khách Java của mình với dịch vụ Java được lưu trữ trên Glassfish, tôi nhận được - tất nhiên - các lỗi chứng chỉ.

Vậy tôi nên thực hiện các bước nào để làm việc này? Tôi giả định rằng:

A) Tôi cần phải thay thế chuỗi chứng chỉ X509 trong WSDL bằng nội dung của chứng chỉ Glassfish 's1as' được tạo khi tôi cài đặt Glassfish.

B) Đặt tham số SSL của máy chủ Glassfish cho máy chủ Cấu hình mạng để sử dụng các cửa hàng chứng chỉ cacerts.jks và keystore.jks mặc định được cung cấp với cài đặt Glassfish. Mặc dù tôi không sử dụng SSL ở đây, tôi giả sử máy chủ cần biết vị trí và kho khóa của nó ở đâu để thực hiện bảo mật chứng chỉ lẫn nhau trên HTTP.

C) Thêm chứng chỉ máy chủ 's1as' vào truststore cho máy khách Java.

D) Thêm chứng chỉ tôi đã sử dụng trước đó cho máy khách kết nối WCF ban đầu vào kho khóa cho máy chủ Glassfish. (Tôi không chắc chắn về điều này?)

Có điều gì tôi thiếu ở đây không? Bất kỳ trợ giúp sẽ được nhiều đánh giá cao.

+0

Bạn có sử dụng bảo mật SSL hoặc Lớp tin nhắn (WS-security) không? Tại sao bạn mô phỏng dịch vụ và không sử dụng dịch vụ WCF thực tế? – Tomer

Trả lời

1

Dường như bạn đang sử dụng bảo mật lớp thư chứ không phải SSL. Vì vậy, các lớp truyền thông không được mã hóa, chỉ là các thông điệp.

Việc này được thực hiện trong Glassfish bằng các tính năng của WSIT. Tôi khuyên bạn nên xem ví dụ về Bảo mật chứng chỉ lẫn nhau trong Hướng dẫn WSIT: http://docs.oracle.com/cd/E19316-01/820-1072/ahiem/index.html.

Về cơ bản, WSIT sử dụng các mã khóa trong khi cài đặt/domains/domain1/config và bạn cần chỉ định chúng bằng tên bí danh trong bộ mô tả WSIT của bạn.

Greets, Geert.

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