Під час розробки клієнта веб-сервісу Java я зіткнувся з проблемою. Для аутентифікації веб-сервісу використовується клієнтський сертифікат, ім’я користувача та пароль. Сертифікат клієнта, який я отримав від компанії за веб-сервісом, має .cer
формат. Коли я перевіряю файл за допомогою текстового редактора, він містить такий вміст:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
Я можу імпортувати цей файл як сертифікат в Internet Explorer (не вводячи пароль!) Та використовувати його для автентифікації з веб-службою.
Мені вдалося імпортувати цей сертифікат у сховище клавіш, спочатку знімаючи перший та останній рядок, перетворюючи на нові рядки Unix та виконуючи декодування base64. Отриманий файл можна імпортувати в сховище ключів (за допомогою keytool
команди). Коли я перелічую записи в сховищі ключів, цей запис має тип trustedCertEntry
. Через цей тип запису (?) Я не можу використовувати цей сертифікат для автентифікації з веб-службою. Я починаю вважати, що наданий сертифікат - це державний сертифікат, який використовується для автентифікації ...
Я знайшов вирішення, щоб імпортувати сертифікат в IE та експортувати його як .pfx
файл. Цей файл може бути завантажений як сховище ключів і може використовуватися для аутентифікації за допомогою веб-сервісу. Однак я не можу очікувати, що мої клієнти будуть виконувати ці дії щоразу, коли отримують новий сертифікат. Тому я хотів би завантажити .cer
файл безпосередньо на Java. Будь-які думки?
Додаткова інформація: компанія, що стоїть за веб-сервісом, сказала мені, що сертифікат (із використанням IE та веб-сайту) потрібно запитувати від ПК та користувача, який імпортує сертифікат пізніше.