Мне было поручено настроить ssl на сервере, этот сервер использует wildfly, поэтому мне нужно создать хранилище ключей, содержащее все полученные мной сертификаты, сертификат сервера, промежуточный и ключевой файл.
Сначала я связал сертификат сервера и промежуточный сертификат, а затем использовал openssl для создания файла pkc12. Затем я использовал keytool для создания хранилища ключей из этого файла pkc12.
Проблема в том, что когда я открываю файл хранилища ключей или файл pkc12, я обнаруживаю, что он не содержит промежуточного сертификата, он имеет только сертификат сервера. Я делал эту процедуру раньше, и она сработала
Кто-нибудь знает, в чем может быть проблема?
Дополнительная информация: промежуточный сертификат немного устарел (с 2010 года), использует sha1 и истекает через 9 месяцев, что странно, в отличие от моего нового сертификата сервера, который использует sha256.
По-видимому, ваша проблема может заключаться в неправильном промежуточном сертификате.
Чтобы убедиться, что у вас есть правильный промежуточный сертификат.
Выполните следующую команду для сертификата сервера:
openssl x509 -noout -text -in server.pem | grep 'CA Issuers'
Затем откройте URL-адрес, найденный с помощью grep:
wget http://url/ -O intermediate.der
Преобразуйте скачанный сертификат в формат PEM:
openssl x509 -in intermediate.der -inform DER -outform PEM -out intermediate.pem
Теперь ты точно знаешь, что intermediate.pem
правильный промежуточный сертификат для вашего сертификата сервера.
Предположим, в цепочке есть только один промежуточный сертификат. Если их больше, вам нужно будет повторить приведенные выше команды для intermediate.pem
получить intermediate2.pem
и так далее.
Выполните приведенные ниже команды, чтобы создать хранилище JKS.
Создать комплект сертификатов:
cat server.pem intermediate.pem > bundle.pem
Создайте пакет формата pfx / pkcs12:
openssl pkcs12 -export -out bundle.pfx -inkey server.key -in bundle.pem
Создайте хранилище ключей JKS:
keytool -importkeystore -srckeystore bundle.pfx -srcstoretype pkcs12 -destkeystore store.jks -deststoretype JKS
Проверить хранилище ключей:
keytool -v -list -keystore store.jks
Вы должны увидеть следующее:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: 1
Creation date: May 19, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 2
Certificate[1]:
Owner: CN=example.com
Issuer: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US
...
Certificate[2]:
Owner: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US
Issuer: CN=DST Root CA X3, O=Digital Signature Trust Co.
...