Как импортировать сертификат .cer в хранилище ключей Java?

Во время разработки клиента веб-службы Java я столкнулся с проблемой. Для аутентификации веб-службы используется сертификат клиента, имя пользователя и пароль. Сертификат клиента, который я получил от компании, стоящей за веб-сервисом, имеет формат .cer . Когда я проверяю файл с помощью текстового редактора, он имеет следующее содержимое:

-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----

Я могу импортировать этот файл как сертификат в Internet Explorer (без необходимости вводить пароль!) И использовать его для аутентификации с помощью веб-службы.

Мне удалось импортировать этот сертификат в хранилище ключей, сначала удалив первую и последнюю строку, преобразовав в символы новой строки unix и выполнив base64-decode. Полученный файл можно импортировать в хранилище ключей (с помощью команды keytool ). Когда я перечисляю записи в хранилище ключей, эта запись имеет тип trustCertEntry . Из-за этого типа записи (?) Я не могу использовать этот сертификат для аутентификации с помощью веб-службы. Я начинаю думать, что предоставленный сертификат является публичным сертификатом, который используется для аутентификации ...

Обходной путь, который я нашел, - это импортировать сертификат в IE и экспортировать его как .pfx ] файл. Этот файл может быть загружен как хранилище ключей и может использоваться для аутентификации с помощью веб-службы. Однако я не могу ожидать, что мои клиенты будут выполнять эти шаги каждый раз, когда они получат новый сертификат. Поэтому я хотел бы загрузить файл .cer прямо в Java. Есть какие-нибудь мысли?

Дополнительная информация: компания, стоящая за веб-сервисом, сказала мне, что сертификат должен быть запрошен (с использованием IE и веб-сайта) с ПК и пользователя, который импортирует сертификат позже.

207
задан Stevoisiak supports Monica 6 October 2017 в 18:15
поделиться