Рейтинг:1

обновление OpenSSL | ошибка проверки сертификата

флаг kr

Я работаю на машине CentOS7 и пытаюсь обновить версию openssl моей машины 1.0.2k -> 1.1.0l. Похоже, что процесс рукопожатия с моим сервером (который не изменился) не работает после обновления, и я пытаюсь выяснить причину.

Выполнение следующей команды с обеими версиями openssl:

openssl s_client -showcerts -connect сервер:порт

В результате произошел сбой с более новым (если я предоставлю проверку -CAfile, работает с обоими). Отличие результата:

Старый 1.0.2k (рукопожатие успешно):

Временный ключ сервера: ECDH, P-256, 256 бит Новый, TLSv1/SSLv3, шифр ECDHE-RSA-AES128-GCM-SHA256. Новый 1.1.0л (проваливается рукопожатие):

Временный ключ сервера: X25519, 253 бита Новый, TLSv1.2, шифр ECDHE-RSA-AES128-GCM-SHA256. Код возврата проверки: 20 (не удалось получить сертификат локального эмитента) Я был бы признателен за помощь в понимании разницы и почему они разные.

к вашему сведению, я начал аналогичную угрозу здесь: https://stackoverflow.com/questions/68763253/openssl-upgrade-fail-validating-certificate?noredirect=1#comment121583146_68763253 без особой удачи.

Спасибо :)

флаг us
Как вы проводили процесс обновления?
Guy Tabak avatar
флаг kr
Я скомпилировал openssl из исходного кода, но не смог заставить yum установить эту конкретную версию. Одно ключевое отличие я вижу в исполнении работы и не работы: Путь поиска рабочего сертификата версии openssl — /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem. Неверный путь поиска сертификата версии openssl — /var/ssl/cert.pem. Оба имеют одинаковую среду SSL_CERT_DIR: /etc/pki/tls/certs. Поэтому мне интересно, почему новая версия openssl смотрит на /var/ssl?
флаг us
`SSL_CERT_DIR` кажется чем-то отличным от корневого пути CA, если посмотреть на различия в путях, которые вы показываете.
Guy Tabak avatar
флаг kr
Что ты имеешь в виду? SSL_CERT_DIR «Указывает расположение доверенных центров сертификации (ЦС), найденных в формате OpenSSL. Это переменная среды OpenSSL».
Рейтинг:1
флаг us

в Centos 7 вы также можете решить эту проблему с помощью следующих команд:

#Подготовка к компиляции
установка yum https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
yum groupinstall -y "Средства разработки" "Библиотеки разработки"

#Собрать из исходников
компакт-диск /USR/SRC
# --no-check-certificate из-за этой проблемы ваша система не будет проверять сертификат letsencrypt на openssl.org, пока не завершите обновление
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar -zxf openssl-1.1.1l.tar.gz
компакт-диск openssl-1.1.1l
./конфиг
делать
сделать установку

yum установить ca-сертификаты -y 
Рейтинг:0
флаг kr

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

После начала работы с версией openssl> 1.0.2k на Centos7, кажется, что в пути разрешения root есть поведенческие изменения.

Openssl проходит через предопределенный список местоположений хранилища сертификатов, однако, как только он встречает файл cert.pem в /val/ssl, он проверяет его и терпит неудачу, если не может проверить ваш пульт.

Мой «хороший» сертификат находился в /etc/ssl, и, поскольку это была машина клиента, я не мог попросить его удалить файл /var/ssl.

Мое решение состояло в том, чтобы программно выбрать правильный cert.pem в случае сбоя openssl (без изменения версии openssl машины, что было запрещено).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.