У меня есть сертификат p7b, и я импортирую его в IIS и экспортирую в 3 файла .cer, как показано ниже.
затем я использую следующие команды, чтобы успешно вставить все 3 сертификата в свое хранилище ключей.
keytool -import -alias root -keystore test.keystore -trustcacert -file root.cer
затем я запускаю свою wildfly и выдает ошибку «хранилище ключей не содержит ключей», но когда я перечисляю хранилище ключей, внутри него находятся все 3 ключа. Я не уверен, почему это не работает, и надеюсь, что кто-то сможет просветить меня по этому поводу.
Хранилище ключей Java может содержать (как минимум) два разных типа записей:
запись trustCertEntry, содержащая сертификат
privateKeyEntry, содержащий цепочку секретных ключей И сертификатов
Вы создали первый вид, импортировав одиночные сертификаты; посмотрите на дисплей из keytool -list
и эти записи будут помечены trustedCertEntry
. Серверу SSL / TLS требуется личный ключ И цепочка сертификатов в privateKeyEntry
.
Я не знаю ISS, но если вы имеете в виду, что вы сгенерировали ключ и CSR в IIS, IIS обычно использует хранилище ключей Windows для некоторой системной учетной записи; Не помню, какой, но где-то в конфиге должно быть очевидно. Вам нужно запустить MMC + CertMgr для этой учетной записи, найти правильную запись (с желтым ключом в левой части значка сертификата) и экспортировать ее с помощью «Да, экспортировать закрытый ключ» в формате «PKCS # 12 (PFX ) '' включить ... путь 'к файлу. Во многих случаях Java / JCE может использовать файл PKCS12 непосредственно в качестве хранилища ключей (вместо JKS), но если вам нужно или вы предпочитаете конвертировать в JKS, используйте keytool -importkeystore
(не -importcert
).
См. Также near-dupe Ошибка конфигурации JBoss Https с сертификатом CER / P7b