У меня есть самоподписанная сертификация, я использую ее локально для своего API. Как вы можете видеть на скриншоте, работает нормально, используя Docker и Apache на стороне сервера.

SSL работает нормально

Проблема в том, что когда я пытался использовать реагирующее приложение, запрос не выполняется, когда я проверяю сертификацию с помощью командной строки openssl, я получаю сообщение об ошибке

Verify return code: 21 (unable to verify the first certificate)

Я нашел несколько возможных решений, но они предлагают использовать полную цепочку, о которой я понятия не имею, о чем они говорят. У меня есть только 2 файла, сертификат и ключ

Было бы замечательно, если бы кто-то мог направить меня в правильном направлении для решения этой надоедливой проблемы.

Заранее спасибо, и дайте мне знать, если я могу предоставить больше идей.

1 ответ1

0

Для проверки сертификата он должен быть полностью связан с якорем доверия. openssl проверяет этот якорь доверия для расширения keyUsage . Если присутствует, он должен содержать как минимум keyCertSign . Оказывается, что если это расширение существует, но не содержит keyCertSign оно вернет ошибку 21.

Кроме того, ваш клиент (openssl s_client) должен знать, какой сертификат использовать в качестве привязки доверия. Вы конфигурируете openssl для использования дополнительной привязки доверия с опцией -CAfile следующим образом:

openssl s_client -CAfile <your cert file> -connect api.dev.thetripguru.com:443

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .