Два хранилища сертификатов, два сертификата, один хост

У меня есть приложение (Cognos), которое доставляет веб-страницы через два механизма: через IIS и через приложение Java. Нам нужно включить SSL для обоих из них. IIS был сделан. Сейчас мы работаем над Java-апплетом.

Сертификат IIS был создан путем создания запроса сертификата в IIS и отправки его в ЦС. Они вернули сертификат, который мы установили в IIS, и это нормально - мы можем получить доступ к этим страницам в браузере, используя HTTPS.

Я попытался импортировать этот же сертификат в хранилище сертификатов приложений Java. Однако я получил ошибки приложения.

Это было сделано с помощью специального инструмента командной строки приложения.

Но в основном похоже, что он пытается заменить существующий неподписанный сертификат с шифрованием псевдонима подписанным сертификатом.

Вот страница, которая показывает процесс, используя предоставленный инструмент GUI

http://www-01.ibm.com/support/docview.wss?uid=swg22004239

Моя проблема в том, что сертификат уже был возвращен из ЦС, и я не генерировал запрос в этом инструменте.

У меня есть действующий сертификат, но я не могу следовать этим инструкциям, потому что они предполагают, что запрос был сгенерирован из этого хранилища ключей.

Проходя этот процесс, кажется, что нам нужно сгенерировать CSR из хранилища сертификатов Cognos, отправить его в CA и получить другой сертификат для того же хоста, но с другой исходной CSR.

Это означало бы, что у нас есть два сертификата для одного хоста, что не имеет смысла для меня.

Прежде всего:

  1. Можно ли иметь два или более активных сертификата для одного хоста?
  2. Если у меня есть сертификат, сгенерированный из CSR из хранилища ключей A, есть ли способ импортировать и использовать его в хранилище ключей B на том же сервере? Нужно ли что-нибудь из первоначального запроса, чтобы сделать это?

РЕДАКТИРОВАТЬ:

Продолжая исследовать это, я понимаю, что при создании запроса он сохраняет закрытый ключ в хранилище ключей. Поэтому я думаю, что проблема не в том, что у меня есть два хранилища ключей, проблема в том, что я не знаю, как повторно использовать закрытый ключ из исходного хранилища ключей во втором хранилище ключей.

3 ответа

CA может утвердить запрос на множественный доступ клиентов или один сертификат для каждого домена на одном хосте (демонстрирует, как назначить каждый из них с использованием виртуальных хостов)

Чтобы ответить на второй вопрос, посмотрите этот ответ на другой похожий вопрос о том, как экспортировать и импортировать сертификаты.

Вам нужно будет экспортировать ключ и сертификат из IIS. Вы должны быть в состоянии экспортировать это в файл PKCS7. использование keytool чтобы импортировать это в ваше хранилище ключей Java. (Также вы можете использовать файл PKCS7, если хотите.)

Если IIS доставляет апплет, вам не нужен сертификат сервера для апплета. Если вы используете другой сервер для доставки апплета, вам нужно будет импортировать ключ на этот сервер.

Я ожидаю, что ваша проблема с подписью апплета. Ваш ключ не может быть помечен как пригодный для подписи кода. Используйте инструмент как keytool или браузер для отображения флагов на сертификате. Можно иметь сертификат, который будет полезен как для подписи сервера, так и для кода.

РЕДАКТИРОВАТЬ: кажется, у вас есть сертификат, который подходит для подписывания кода. (Вы должны подписать свой апплет.) И он также, кажется, действителен для шифрования (HTTTPS). Если вы хотите использовать его для HTTPS, у него должно быть дополнительное имя субъекта для каждого домена, с которым вы хотите его использовать. Это позволит проверить, что сертификат предназначен для домена.

Обычно вы не будете использовать апплет в качестве сервера. Он может открывать соединения с сервером, с которого он был загружен, для поиска дополнительных классов. Это также может быть открытие дополнительных подключений к другим серверам. Современные браузеры захотят, чтобы вы указали доступ, который необходим апплету, чтобы пользователь мог проверить, следует ли ему предоставлять или нет.

keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12 
-destkeystore clientcert.jks -deststoretype JKS

Это должно импортировать ваш pfx в хранилище ключей. Это было то, что я использовал в прошлый раз, когда мне пришлось импортировать pfx

Другие вопросы по тегам