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 .cer
format. 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ą keytool
polecenia). 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 .pfx
pliku. 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ć .cer
plik 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.