CentOS 7: no aceptará ningún certificado SSL

CentOS 7: no aceptará ningún certificado SSL

Tengo un problema en mi máquina CentOS 7 al hacer cualquier cosa que requiera SSL, incluido curl, wget o actualizar a través de YUM.

La salida es siempre la misma:

[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

Todos los certificados parecen estar "marcados como no confiables" (lo he probado con una docena de URL diferentes). Intenté reinstalar los certificados de CA haciendo esto:

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

pero eso no ayudó. ¿Algunas ideas?

Respuesta1

Revisaría su instalación nss. Es posible que esté desactualizado o dañado de alguna manera.

Verifique la versión que está ejecutando; lo último en centos 7 debería ser:

nss-config version
3.21.0

Luego verifique si algún paquete nss ha sido modificado/dañado:

rpm -Vv nss-*

Dependiendo de los resultados, es posible que sea necesaria una actualización o reinstalación de nss.

Puedes ver de forma semidefinitiva si se trata de un problema con nss cambiando temporalmente los permisos en ese directorio (como raíz):

chmod 400 /etc/pki/nssdb/*

Luego ejecute el comando curl como usuario normal; si funciona, generará algo como esto:

* 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>

Lo que indica que solo utilizó los certificados de CA y no la autenticación basada en nssdb.

Si este no es un problema relacionado con nss, aquí hay unaguía RHELeso también se aplica a CentOS y le guía para garantizar que tenga una configuración de certificado de CA limpia. No creo que ese enlace esté detrás de su muro de pago; Déjame saber si lo necesitas y no puedes acceder a él.

Respuesta2

¿En qué entorno está ejecutando CentOS7?

Hay un error desagradable relacionado conCentos 6.8actualización / NSS 3.21.0-8.el6 en sistemas con virtualización (Zen) y/o compatibilidad con CPU AES. Experimenté el problema después de la actualización de CentOS 6.8 y NSS en las instancias Rackspace y AWS t1.micro.

Creo que tiene un problema relacionado con una actualización de Centos7 NSS.

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

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

¿Cómo comprobar que mi CPU admite AES-NI? https://unix.stackexchange.com/questions/14077/how-to-check-that-aes-ni-is-supported-by-my-cpu

En 6.8, Algunas personas han logradodegradar NSS configurando la variable de entorno: "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

Nuevamente, el código anterior es para 6.8, NO para CentOS 7.

Encontré nss-3.21.0-0.3.el6_7.x86_64 depreciado y no disponible. Recargué todo el servidor desde una copia de seguridad de la imagen antes de la actualización 6.8 y la versión YUM bloqueó nss nss-sysinit nss-tools nss-util antes de actualizar nuevamente.

NOTA: Agregaría la información anterior como un "comentario", NO como una "respuesta", pero mi baja puntuación de repetición me impide comentar, solo puedo "responder".

Espero que esto ayude.

Respuesta3

Tuve un problema similar. De acuerdo, lo más probable es que sea mi propio error.

Era necesario instalar*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

información relacionada