2012-02-21 11 views
10

Próbuję skonstruować usługę WWW Glassfish hostowaną, która podszywa się pod usługę hostowaną przez WCF (do testowania rozwoju). Mam WSDL z usługi hostowanej WCF i mogę utworzyć usługę Java i klienta Java z WSDL hostowane WCF bez żadnych problemów. WSDL używa protokołu Mutual Certificate Security do wymiany danych.Problemy z podszywaniem się pod bezpieczny serwer WWW WCF za pomocą Glassfish/Metro

Plik WSDL ma osadzony certyfikat X509, który jest zgodny z certyfikatem hosta serwera WCF.

Kiedy próbuję podłączyć mojego klienta Java do usługi Java obsługiwanej przez Glassfish, otrzymuję - oczywiście - błędy certyfikatu.

Co mogę zrobić, aby to zadziałało? Zakładam, że:

A) Muszę zastąpić ciąg certyfikatu X509 w WSDL zawartością samopodpisanego certyfikatu Glassfish 's1as' utworzonego podczas instalacji Glassfish.

B) Ustaw parametry SSL serwera Glassfish dla serwera Konfiguracja sieciowa, aby używać domyślnych magazynów certyfikatów cacerts.jks i keystore.jks dostarczonych wraz z instalacją Glassfish. Mimo że nie używam tutaj protokołu SSL, zakładam, że serwer musi wiedzieć, gdzie jego magazyn zaufanych certyfikatów i magazyn kluczy ma wykonywać zabezpieczenia wzajemnego certyfikatu przez HTTP.

C) Dodaj certyfikat serwera "s1as" do magazynu zaufanych certyfikatów dla klienta Java.

D) Dodaj certyfikat, którego wcześniej używałam dla oryginalnego klienta podłączającego WCF do magazynu kluczy dla serwera Glassfish. (Nie jestem pewien na tym?)

Czy jest tu coś, czego mi brakuje? Każda pomoc będzie mile widziana.

+0

Czy używasz zabezpieczeń SSL lub Message layer (zabezpieczenia WS)? Dlaczego symulujesz usługę i nie używasz rzeczywistej usługi WCF? – Tomer

Odpowiedz

1

Najwyraźniej używasz zabezpieczeń warstwy wiadomości, a nie SSL. Tak więc warstwa komunikacji nie jest szyfrowana, tylko same wiadomości.

Odbywa się to w Glassfish za pomocą funkcji WSIT. Proponuję przejrzeć przykład Wzajemnego bezpieczeństwa certyfikatu w samouczku WSIT: http://docs.oracle.com/cd/E19316-01/820-1072/ahiem/index.html.

Zasadniczo, WSIT używa magazynów kluczy w jako -install/domains/domain1/config, i musisz określić je według nazwy aliasu w deskryptorze WSIT.

Pozdrawiam, Geert.