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