Добавление –no-check-certificate в репозитории yum

Вопрос или проблема

Я добавил virtio-win.repo в соответствии с этим руководством. Содержимое /etc/yum.repo.d/virtio-win.repo сейчас следующее

[virtio-win-stable]
name=virtio-win сборки, примерно соответствующие тем, что были включены в последнюю RHEL
baseurl=http://fedorapeople.org/groups/virt/virtio-win/repo/stable
enabled=1
skip_if_unavailable=1
gpgcheck=0

[virtio-win-latest]
[virtio-win-source]

Последние два [] имеют аналогичные параметры, как первый (которые меня не беспокоят). Теперь, когда я запускаю yum makecache, я получаю эту ошибку

http://fedorapeople.org/groups/virt/virtio-win/repo/stable/repodata/repomd.xml: [Errno 14] проблема создания ssl соединения

Я пытался запустить wget http://fedorapeople.org/groups/virt/virtio-win/repo/stable/repodata/repomd.xml вручную, но он рекомендует мне добавить --no-check-certificate к wget, что решит проблему.

Я хочу знать, как я могу добавить эту опцию в /etc/yum.repo.d/virtio-win.repo?

Для одного репозитория вы можете добавить следующее в конфигурацию репозитория:

sslverify=0

Для всех репозиториев вы можете добавить следующее в “/etc/yum.conf”:

sslverify=false

На CentOS 7.5 это сработало:

yum-config-manager --save --setopt=<REPONAME>.sslverify=false

Проверка ssl сделана не просто так. Отключать проверку ssl сертификатов действительно опасно. Я предпочитаю такой подход:
Окружение одного из моих клиентов неправильно настроено, где ssl сертификат прокси-сервера подписывает каждый ssl сертификат каждого сайта. Чтобы проверить, это ли проблема, я запускаю

curl https://www.google.com

Это не удается, поэтому я получаю сертификат одной командой, используя openssl-client

openssl s_client -showcerts -servername www.google.com -connect www.google.com:443 > cacert.pem

Большой файл содержит сертификат сервера посередине, скопируйте его и сохраните в новый файл, назовем его mycert.pem. Сертификат начинается с Begin Certificate и заканчивается End of Certificate

Давайте протестируем это, чтобы подтвердить

curl https://www.google.com --cacert mycert.pem

Если это сработает, проблема решена. Всё, что нам нужно сделать, это добавить его в репозиторий, который curl использует как доверенный репозиторий. Чтобы получить расположение сертификатов, сделайте следующее

strace curl https://www.google.com |& grep open

Много выходных данных, но почти в самом конце я вижу:
open(“/etc/ssl/certs/578d5c04.0”, O_RDONLY) = 4

Это то место, где хранятся мои сертификаты. Затем просто добавьте файл, полученный ранее.

echo "#Добавлено мной, сертификат клиента" >> /etc/pki/tls/certs/ca-bundle.crt
cat mycert.pem >> /etc/pki/tls/certs/ca-bundle.crt

Затем снова протестируйте с помощью curl, теперь без сертификата в качестве опции

curl https://www.google.com

Он должен получить сертификат.

На Centos 6 нужно обновить nss

yum update nss

Ошибка “… [Errno 14] проблема создания ssl соединения” больше не возникает

Это сработало для меня:

yum --setopt=sslverify=false install ca-certificates

Ответ или решение

Ответ на вопрос о добавлении параметра –no-check-certificate к репозиториям yum

Если вы столкнулись с ошибкой, связанной с соединением SSL при работе с репозиториями yum, и требуется отключить проверку сертификатов, вы можете сделать это несколькими способами. Тем не менее, важно отметить, что отключение проверки SSL может создать риски безопасности. Рассмотрим несколько подходов к решению вашей проблемы.

1. Отключение проверки сертификатов для конкретного репозитория

Чтобы отключить проверку SSL только для вашего конкретного репозитория, вы можете отредактировать файл конфигурации репозитория. В вашем случае это файл /etc/yum.repo.d/virtio-win.repo. Добавьте строку sslverify=0 в раздел вашего репозитория:

[virtio-win-stable]
name=virtio-win builds roughly matching what was shipped in latest RHEL
baseurl=http://fedorapeople.org/groups/virt/virtio-win/repo/stable
enabled=1
skip_if_unavailable=1
gpgcheck=0
sslverify=0  # Отключение проверки SSL для этого репозитория

[virtio-win-latest]
sslverify=0  # Добавьте этот параметр, если он также необходим для других репозиториев

[virtio-win-source]
sslverify=0  # Аналогично, добавьте здесь

2. Отключение проверки сертификатов для всех репозиториев

Если вы хотите отключить проверку SSL для всех репозиториев, вы можете изменить файл конфигурации yum /etc/yum.conf. Найдите или добавьте строку sslverify=false:

[main]
sslverify=false  # Отключение проверки SSL для всех репозиториев

3. Использование yum-config-manager

На CentOS 7.5 и выше вы можете использовать yum-config-manager, чтобы установить параметр для конкретного репозитория:

yum-config-manager --save --setopt=virtio-win-stable.sslverify=false

4. Решение проблемы с сертификатами

Если вы хотите разрешить проблему иначе, без отключения проверки сертификатов, вы можете проверить и установить правильные сертификаты. Например, выполните следующую команду для проверки соединения:

curl https://www.google.com

Если эта команда не проходит, возможно, проблема в сертификате. Вы можете получить сертификат с помощью OpenSSL:

openssl s_client -showcerts -servername www.google.com -connect www.google.com:443 > cacert.pem

Извлеките серверный сертификат и сохраните его в новый файл mycert.pem. Затем добавьте его в ваш файл сертификатов:

echo "#Added by me , the client's certificate" >> /etc/pki/tls/certs/ca-bundle.crt
cat mycert.pem >> /etc/pki/tls/certs/ca-bundle.crt

После этого попробуйте снова выполнить команду curl без указания сертификата.

5. Обновление пакета nss

Для CentOS 6 и старше, обновление пакета nss может помочь решить проблему:

yum update nss

Заключение

Хотя отключение проверки SSL может помочь временно обойти возникшие проблемы, рекомендуется установить и использовать правильные сертификаты, если это возможно. Наилучший подход — всегда стараться минимизировать риски, связанные с безопасностью, путем обеспечения корректной работы SSL-соединений.

Оцените материал
Добавить комментарий

Капча загружается...