LINUX.ORG.RU

Борьба с самоподписанными сертификатами

 


2

1

Добрый день. Есть проблема с вышеописанным сабжем. Есть некий http сервис с самподписанным сертификатом.

Через python пытаюсь подключиться к нему и получаю CERTIFICATE_VERIFY_FAILED

Если сделать verify = False то ругается уже сам сервис на то что мы пытаемся сделать небезопасную операцию

Я так понимаю мне как-то надо добавить этот сертификат к корневым? Честно говоря уже запутался в этих .crt, .key и .pem.

Выгрузил через Chrome .pem файл и добавил сертификат к запросу session.cert=«cert.pem» Получил новую ошибку Caused by SSLError(SSLError(9, ‘[SSL] PEM lib (_ssl.c:4043)’)))

Что делать??

PS Ubuntu 19.04

Перемещено leave из linux-org-ru



Последнее исправление: Andreezy (всего исправлений: 1)

Через python пытаюсь подключиться к нему и получаю CERTIFICATE_VERIFY_FAILED

Как именно через python?

Я так понимаю мне как-то надо добавить этот сертификат к корневым? Честно говоря уже запутался в этих .crt, .key и .pem.

Надо добавить сертификат УЦ к корневым(доверенным), остальное сверяется уже по нему.

Я бы мог подсказать как это сделать в командной строке через openssl, но не очень понимаю, что именно нужно сделать.

Открыть соединение можно и через openssl, а делать команды, передавать данные и всё остальное — через сокеты.

Что делать??

Попытаться через openssl напрямую, думается. Уже потом пробовать остальное.

SM5T001
()
Последнее исправление: SM5T001 (всего исправлений: 1)
Ответ на: комментарий от SM5T001

Надо добавить сертификат УЦ к корневым(доверенным), остальное сверяется уже по нему.

Вот как это делается? Сейчас в браузере сообщение что сертификат недействителен, но ведь он есть, значит соединение все равно шифруется?

Andreezy
() автор топика

В Fedora это делается следующим образом:

QUICK HELP: To add a certificate in the simple PEM or DER file formats to the
            list of CAs trusted on the system:

            Copy it to the
                    /etc/pki/ca-trust/source/anchors/
            subdirectory, and run the
                    update-ca-trust
            command.

            If your certificate is in the extended BEGIN TRUSTED file format,
            then place it into the main source/ directory instead.
ValdikSS ★★★★★
()

Если сделать verify = False то ругается уже сам сервис на то что мы пытаемся сделать небезопасную операцию

Сомневаюсь, что вы правильно интерпретируете возможную ошибку.

Выгрузил через Chrome .pem файл и добавил сертификат к запросу session.cert=«cert.pem»

Полагаю, что экспортировать нужно не сертификат, а root CA, и, возможно, должен он быть в формате PEM, а не DER.

ValdikSS ★★★★★
()
Ответ на: комментарий от Andreezy

Какой дистрибутив? В Gentoo сертификаты лежат в /usr/share/ca-certificates/mozilla/

Опять же, рекомендую сначала убедиться, что сертификаты вообще правильно настроены, через openssl client.

Сейчас в браузере сообщение что сертификат недействителен, но ведь он есть, значит соединение все равно шифруется?

А что пишет браузер? Можно игнорировать неправильный сертификат, соединение остаётся https? Если да — значит шифруется. В Firefox легко проверяется, по Chromium не подскажу.

SM5T001
()
Последнее исправление: SM5T001 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.