Хранилище ключей Java: Как правильно импортировать сертификаты CA?

Мы обновили сертификат одного из наших серверов (apache httpd). Для интерфейса веб-сервиса (для мобильных клиентов) нам нужен сертификат также на tomcat, что означает: хранится в хранилище ключей Java. У нас уже есть наш сертификат в хранилище ключей Java, но корневые сертификаты все еще отсутствуют.

Если мы перечислим детали старого сертификата хранилища ключей, мы получим:

/> keytool -list -v -keystore 2012.jks -alias ourcertificate
Keystore-Kennwort eingeben:  
Aliasname: ourcertificate
...
...
...
Zertifikatkettenlänge: 3  // certificate length: 3
Zertifikat[1]:            // certificate[1]
...
...
...
Zertifikat[2]:
...
...
...
Zertifikat[3]:
...
...
...

Важно, что все сертификаты CA уже являются частью псевдонима "нашего сертификата" хранилища ключей.

Если мы перечислим детали нового сертификата (нового файла хранилища ключей), мы получим:

/> keytool -list -v -keystore 2015.jks -alias ourcertificate
Keystore-Kennwort eingeben:  
Aliasname: ourcertificate
...
...
...
Zertifikatkettenlänge: 1   // certificate length: 1
Zertifikat[1]:             // certificate[1]
...
...
...

CA сертификаты здесь отсутствуют. Для импорта сертификатов CA мы пытаемся выполнить следующую команду:

/> keytool -import -alias alpha -file gsalphasha2g2r1.der -keystore 2015.jks
Keystore-Kennwort eingeben:  
...
... 
...
Diesem Zertifikat vertrauen? [Nein]:  Ja    // trust this certificate? [No]: Yes
Zertifikat wurde Keystore hinzugefügt       // certificate successfully added to keystroe

Но это добавляет новый доверенный сертификат в хранилище ключей (с новым псевдонимом). Также не помогает добавление корневого сертификата. Если мы перечислим детали сертификата в записи "нашего сертификата", мы все равно получим длину сертификата 1. Кроме того, указание "нашего сертификата" при импорте сертификатов CA не помогает (тогда мы получаем ошибку, что открытые ключи в ответе и хранилище ключей не идентично; "Keytool-Fehler: java.lang.Exception: публичные ключи в Antwort und Keystore стимул nicht überein" на немецком языке)

В чем дело? Как мы можем импортировать сертификаты CA в хранилище ключей Java, чтобы сертификаты CA были связаны с "нашим сертификатом"

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

Я думаю, что я должен также описать, как мы импортируем закрытый ключ и пару сертификатов. Это немного сложно, потому что CSR был сделан с openssl. Нам нужно было импортировать закрытый ключ и сертификат в файл хранилища ключей. Для этого мы использовали следующий файл класса Java: http://www.agentbob.info/agentbob/79-AB.html (класс ImportKey). Мы знаем, что это работает. Но может быть при импорте ключа и сертификата произошла ошибка...

0 ответов

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