Промежуточный сертификат не в хранилище ключей, хотя я его добавил
Мне было поручено настроить ssl на сервере, этот сервер использует wildfly, поэтому я должен создать хранилище ключей, которое содержит все полученные сертификаты, сертификат сервера, промежуточный файл и файл ключей.
Сначала я связал серверный сертификат с промежуточным сертификатом, а затем использовал openssl для создания файла pkc12. Затем я использовал keytool для создания хранилища ключей из этого файла pkc12.
Проблема в том, что когда я открываю файл хранилища ключей или файл pkc12, я обнаруживаю, что он не содержит промежуточный сертификат, он имеет только сертификат сервера. Я сделал эту процедуру раньше, и это сработало
Кто-нибудь знает, в чем может быть проблема?
Дополнительная информация: промежуточный сертификат является немного старым (с 2010 года) и использует sha1 и истекает через 9 месяцев, что странно, в отличие от моего сертификата сервера, который является новым и использует sha256.
1 ответ
Видимо, вашей проблемой может быть неправильный промежуточный сертификат.
Чтобы убедиться, что у вас есть правильный промежуточный сертификат.
Выполните следующую команду для сертификата сервера:
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 store.
Создать пакет сертификатов:
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.
...