- Вопрос или проблема
- yum update nss
- Ответ или решение
- Ответ на вопрос о добавлении параметра –no-check-certificate к репозиториям yum
- 1. Отключение проверки сертификатов для конкретного репозитория
- 2. Отключение проверки сертификатов для всех репозиториев
- 3. Использование yum-config-manager
- 4. Решение проблемы с сертификатами
- 5. Обновление пакета nss
- Заключение
Вопрос или проблема
Я добавил 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-соединений.