TLS Mutual Auth: нулевая цепочка сертификатов (клиент C -> сервер Java), если кафе не указывает на тот же файл, что и сертификат - PullRequest
1 голос
/ 14 марта 2019

У меня проблема с сервером, отклоняющим сертификат клиента в рукопожатии, если я выполняю вызов openssl только с сертификатом (с цепочкой) и закрытым ключом.

Эта проблема исчезнет, ​​если я также установлю кафеукажите и укажите его в том же файле, что и сертификат.

Кажется, что openssl не может создать цепочку без входных данных кафе, даже если информация уже есть во входных данных сертификата.Интересно, у вас, ребята, был опыт с этим?Я просто нахожу это немного странным.

Подводя итог, это работает:

sudo openssl s_client -connect <ip>:<port> -cert cert_with_chain.pem -key privkey.pem -CAfile cert_with_chain.pem

Это не работает (Отклонение сервера с "нулевой цепочкой сертификатов"):

sudo openssl s_client -connect <ip>:<port> -cert cert_with_chain.pem -key privkey.pem

Открытая версия SSL:

OpenSSL 1.0.2k-fips  26 Jan 2017

1 Ответ

2 голосов
/ 14 марта 2019

Проблема не в том, что "openssl не может построить цепочку без кафе" , а в том, что изначально это не было целью.Предполагаемое поведение хорошо задокументировано в man s_client :

-cert certname
Сертификат для использования, если он запрашивается сервером.

-Cafile file
Файл, содержащий доверенные сертификаты для использования при аутентификации сервера и для использования при попытке создать цепочку сертификатов клиента .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...