Openssl «Самозаверяющий сертификат в цепочке сертификатов», когда сервер отправляет всю цепочку сертификатов с самозаверяющим сертификатом в клиент

У меня следующая цепочка сертификатов:

Самоподписанный сертификат -> Промежуточный -> Сертификат клиента, Сертификат сервера. У меня есть приложение для ssl-связи, а также проверяю настройки однорангового узла. Я пытаюсь проверить эту цепочку с помощью команды openssl s_client и получаю Verify код возврата: 19 (самоподписанный сертификат в цепочке сертификатов) . Сервер отправляет всю цепочку в рукопожатии.

Я попытался проверить это с помощью Bundle.pem, который содержит самоподписанные и промежуточные сертификаты, а также самоподписанный.pem, но результат тот же.

openssl s_client -msg -connect localhost:1500 -CAfile Self-signed.pem/Bundle.pem -cert Client.crt -key Client.key

] Затем я выпустил еще один промежуточный сертификат, и из него я выпустил новый сертификат сервера

openssl s_client -msg -connect localhost:1500 -CAfile Bundle2.pem -cert Client.crt -key Client.key

Bundle2.pem содержит второй промежуточный сертификат и самозаверяющий сертификат, и он отлично работает. Кроме того, теперь сервер не отправляет всю цепочку сертификатов, это зависит от того, как разработано приложение.

Может ли кто-нибудь объяснить, почему это проблема, почему я не могу выполнить успешную проверку, если сервер и клиент имеют один и тот же промежуточный сертификат?

0
задан 11 April 2020 в 22:58
1 ответ

Решена путем добавления basicConstraints = CA: TRUE в openssl.conf к промежуточному сертификату при выдаче

0
ответ дан 16 April 2020 в 03:17

Теги

Похожие вопросы