CentOS 7 — не принимает SSL-сертификаты

CentOS 7 — не принимает SSL-сертификаты

У меня возникла проблема на моем компьютере с CentOS 7 при выполнении любых действий, требующих SSL, включая curl, wget или обновление через YUM.

Результат всегда один и тот же:

[root@localhost ~]# curl -I -v https://google.com
* About to connect() to google.com port 443 (#0)
*   Trying 74.125.138.100...
* Connected to google.com (74.125.138.100) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* Server certificate:
*       subject: CN=*.google.com,O=Google Inc,L=Mountain View,ST=California,C=US
*       start date: Jun 16 08:37:32 2016 GMT
*       expire date: Sep 08 08:29:00 2016 GMT
*       common name: *.google.com
*       issuer: CN=192.168.2.44,C=US
* NSS error -8172 (SEC_ERROR_UNTRUSTED_ISSUER)
* Peer's certificate issuer has been marked as not trusted by the user.
* Closing connection 0
curl: (60) Peer's certificate issuer has been marked as not trusted by the user.
More details here: http://curl.haxx.se/docs/sslcerts.html

Все сертификаты, похоже, "отмечены как ненадежные" (я пробовал это с десятком разных URL). Я пробовал переустановить сертификаты CA, делая это:

yum --disablerepo="epel" reinstall ca-certificates

но это не помогло. Есть идеи?

решение1

Я бы проверил вашу установку nss. Возможно, она устарела или повреждена каким-то образом.

Проверьте версию, которую вы используете; последняя версия на CentOS 7 должна быть:

nss-config version
3.21.0

Затем проверьте, были ли изменены/повреждены какие-либо пакеты nss:

rpm -Vv nss-*

В зависимости от результатов может потребоваться обновление или переустановка nss.

Вы можете приблизительно определить, связана ли проблема с nss, временно изменив права доступа к этому каталогу (как пользователь root):

chmod 400 /etc/pki/nssdb/*

Затем выполните команду curl как обычный пользователь — если она сработает, то выведет что-то вроде этого:

* Connected to google.com (172.217.4.206) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* Unable to initialize NSS database
* Initializing NSS with certpath: none
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server certificate:
<clipped>

Это означает, что он использовал только сертификаты CA, а не аутентификацию на основе nssdb.

Если это не проблема, связанная с nss, вотРуководство по RHELэто применимо и к CentOS, который проходит через обеспечение чистой конфигурации сертификата CA. Я не верю, что эта ссылка находится за их платным доступом; дайте мне знать, если она вам нужна и вы не можете получить к ней доступ.

решение2

В какой среде вы используете CentOS7?

Есть неприятная ошибка, связанная сCentos 6.8обновление / NSS 3.21.0-8.el6 на системах с виртуализацией (Zen) и/или поддержкой CPU AES. Я столкнулся с этой проблемой после обновления CentOS 6.8 и NSS на экземплярах Rackspace и AWS t1.micro.

Я полагаю, что у вас возникла проблема, связанная с обновлением Centos7 NSS.

https://www.centos.org/forums/viewtopic.php?t=58002

https://bugs.centos.org/view.php?id=10930#c26705

Как проверить, поддерживается ли AES-NI моим процессором? https://unix.stackexchange.com/questions/14077/how-to-check-that-aes-ni-is-supported-by-my-cpu

На 6.8, Некоторые люди преуспели впонижение версии NSS путем установки переменной среды: "NSS_DISABLE_HW_GCM=1"

# NSS_DISABLE_HW_AES=1
# yum downgrade nss nss-util nss-tools nss-sysinit
# yum install yum-plugin-versionlock
# yum versionlock add! nss-3.21.0-0.3.el6_7.x86_64 nss-sysinit-3.21.0-0.3.el6_7.x86_64 nss-tools-3.21.0-0.3.el6_7.x86_64 nss-util-3.21.0-0.3.el6_7.x86_64

Опять же, приведенный выше код предназначен для 6.8, а не для CentOS 7.

Я нашел nss-3.21.0-0.3.el6_7.x86_64 устарел и недоступен. Я перезагрузил весь сервер из резервной копии образа до обновления 6.8 и заблокировал версию YUM nss nss-sysinit nss-tools nss-util перед повторным обновлением.

ПРИМЕЧАНИЕ: Я бы добавил вышеуказанную информацию как «комментарий», а НЕ как «ответ», но мой низкий рейтинг репутации не позволяет мне комментировать, я могу только «ответить».

Надеюсь, это поможет.

решение3

У меня была похожая проблема. Конечно, это скорее всего мой собственный косяк.

Необходимо было установить*nss-*

[not showing this]# nss-config version

bash: nss-config: command not found

yum install -y nss-*

Installed:
  nss-devel.x86_64 0:3.36.0-7.el7_5
  nss-pam-ldapd.x86_64 0:0.8.13-16.el7
  nss-pkcs11-devel.x86_64 0:3.36.0-7.el7_5
  nss-softokn-devel.x86_64 0:3.36.0-5.el7_5
  nss-softokn-freebl-devel.x86_64 0:3.36.0-5.el7_5
  nss-util-devel.x86_64 0:3.36.0-1.el7_5

Dependency Installed:
  nscd.x86_64 0:2.17-260.el7            nspr-devel.x86_64 0:4.19.0-1.el7_5

nss-config version

Usage: nss-config [OPTIONS] [LIBRARIES]

Options:
        [--prefix[=DIR]]
        [--exec-prefix[=DIR]]
        [--includedir[=DIR]]
        [--libdir[=DIR]]
        [--version]
        [--libs]
        [--cflags]

Dynamic Libraries:
        nss
        nssutil
        ssl
        smime

[not showing this still]# nss-config --version
3.36.0

Связанный контент