Podczas opracowywania klienta Java Webservice napotkałem problem. Uwierzytelnianie dla usługi internetowej polega na użyciu certyfikatu klienta, nazwy użytkownika i hasła. Certyfikat klienta, który otrzymałem od firmy za usługą internetową, ma .cerformat. Kiedy sprawdzam plik za pomocą edytora tekstu, ma on następującą zawartość:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
Mogę zaimportować ten plik jako certyfikat w Internet Explorerze (bez konieczności podawania hasła!) I użyć go do uwierzytelnienia w usłudze internetowej.
Byłem w stanie zaimportować ten certyfikat do magazynu kluczy, najpierw usuwając pierwszą i ostatnią linię, konwertując na nowe znaki unix i uruchamiając dekodowanie base64. Plik wynikowy można zaimportować do magazynu kluczy (za pomocą keytoolpolecenia). Gdy wymieniam wpisy w magazynie kluczy, ten wpis jest tego typu trustedCertEntry. Z powodu tego typu wpisu (?) Nie mogę użyć tego certyfikatu do uwierzytelnienia w usłudze sieciowej. Zaczynam myśleć, że podany certyfikat jest certyfikatem publicznym używanym do uwierzytelniania ...
Rozwiązaniem, które znalazłem, jest zaimportowanie certyfikatu do IE i wyeksportowanie go jako .pfxpliku. Ten plik można załadować jako plik kluczy i można go użyć do uwierzytelnienia w usłudze sieciowej. Nie mogę jednak oczekiwać, że moi klienci wykonają te kroki za każdym razem, gdy otrzymają nowy certyfikat. Chciałbym więc załadować .cerplik bezpośrednio do Java. jakieś pomysły?
Informacje dodatkowe: firma odpowiedzialna za serwis internetowy powiedziała mi, że należy zażądać certyfikatu (przy użyciu IE i strony internetowej) z komputera i użytkownika, który zaimportuje certyfikat później.

