Ich habe auf meiner CentOS 7-Box ein Problem mit allem, was SSL erfordert, einschließlich curl, wget oder Aktualisierung über YUM.
Die Ausgabe ist immer die gleiche:
[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
Alle Zertifikate scheinen „als nicht vertrauenswürdig markiert“ zu sein (ich habe dies mit einem Dutzend verschiedener URLs versucht). Ich habe versucht, CA-Zertifikate wie folgt neu zu installieren:
yum --disablerepo="epel" reinstall ca-certificates
aber das hat nicht geholfen. Irgendwelche Ideen?
Antwort1
Ich würde Ihre NSS-Installation überprüfen. Es ist möglich, dass sie veraltet oder irgendwie beschädigt ist.
Überprüfen Sie die Version, die Sie ausführen. Die neueste Version unter CentOS 7 sollte sein:
nss-config version
3.21.0
Überprüfen Sie dann, ob NSS-Pakete geändert/beschädigt wurden:
rpm -Vv nss-*
Abhängig von Ihren Ergebnissen kann ein NSS-Update oder eine Neuinstallation erforderlich sein.
Sie können halbwegs sicher feststellen, ob ein Problem mit NSS vorliegt, indem Sie die Berechtigungen für dieses Verzeichnis (als Root) vorübergehend ändern:
chmod 400 /etc/pki/nssdb/*
Geben Sie dann den Curl-Befehl als normaler Benutzer ein. Wenn er funktioniert, wird ungefähr Folgendes ausgegeben:
* 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>
Dies deutet darauf hin, dass nur die CA-Zertifikate und nicht die auf NSSDB basierende Authentifizierung verwendet wurden.
Wenn dies kein NSS-bezogenes Problem ist, finden Sie hier eineRHEL-Handbuchdas gilt auch für CentOS, das Schritt für Schritt durchführt, um sicherzustellen, dass Sie eine saubere CA-Zertifikatskonfiguration haben. Ich glaube nicht, dass sich dieser Link hinter ihrer Paywall befindet; sagen Sie mir Bescheid, wenn Sie ihn brauchen und nicht darauf zugreifen können.
Antwort2
Unter welcher Umgebung führen Sie CentOS7 aus?
Es gibt einen schlimmen Fehler im Zusammenhang mitCentos 6.8Update / NSS 3.21.0-8.el6 auf Systemen mit (Zen)-Virtualisierung und/oder CPU-AES-Unterstützung. Ich habe das Problem nach dem CentOS 6.8- und NSS-Update sowohl auf Rackspace- als auch auf AWS t1.micro-Instanzen festgestellt.
Ich glaube, Sie haben ein damit zusammenhängendes Problem mit einem Centos7-NSS-Update.
https://www.centos.org/forums/viewtopic.php?t=58002
https://bugs.centos.org/view.php?id=10930#c26705
Wie überprüfe ich, ob AES-NI von meiner CPU unterstützt wird? https://unix.stackexchange.com/questions/14077/wie-überprüfe-ich-dass-aes-ni-von-meiner-cpu-unterstützt-wird
Am 6.8, Einigen Menschen ist es gelungen,Downgrade von NSS durch Festlegen der Umgebungsvariable: „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
Auch hier gilt der obige Code für 6.8, NICHT für CentOS 7
Ich habe nss-3.21.0-0.3 gefunden.el6_7.x86_64 veraltet und nicht verfügbar. Ich habe den gesamten Server aus einem Image-Backup vor dem 6.8-Update neu geladen und die YUM-Version gesperrt nss nss-sysinit nss-tools nss-util, bevor ich erneut aktualisiert habe.
HINWEIS: Ich würde die obigen Informationen als „Kommentar“ und nicht als „Antwort“ hinzufügen, aber mein niedriger Rep-Score hindert mich daran, einen Kommentar abzugeben, ich kann nur „antworten“.
Ich hoffe das hilft.
Antwort3
Ich hatte ein ähnliches Problem. Zugegeben, es ist höchstwahrscheinlich mein eigener Fehler.
Es war notwendig, zu installieren*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