it-swarm.com.de

OCSP-Validierung - Lokales Ausstellerzertifikat kann nicht abgerufen werden

Ich bin neu darin, SSL von Grund auf neu einzurichten, und habe meine ersten Schritte ausgeführt. Ich habe ein SSL-Zertifikat von RapidSSL für meine Domain gekauft und dort die Schritte ausgeführt, um das Zertifikat zu installieren. Im Allgemeinen ist das Zertifikat gültig und funktioniert auf meinem Webserver (nginx v1.4.6 - Ubuntu 14.04.1 LTS). Wenn ich jedoch versuche, OCSP OCSP zu aktivieren, wird in meinem nginx error.log der folgende Fehler angezeigt:

OCSP_basic_verify () fehlgeschlagen (SSL: Fehler: 27069065: OCSP-Routinen: OCSP_basic_verify: Zertifikatüberprüfungsfehler: Überprüfungsfehler: Lokales Ausstellerzertifikat kann nicht abgerufen werden) beim Anfordern des Zertifikatstatus, Antwort: gv.symcd.com

Ich habe es auch mit diesem Befehl über die Kommandozeile versucht:

openssl s_client -connect mydomain.tld: 443 2> & 1 </ dev/null

Und habe den "gleichen" Fehler wie in meinem error.log:

[...] SSL-Sitzung: Protokoll: TLSv1.2 Verschlüsselung: ECDHE-RSA-AES256-GCM-SHA384 [...] Startzeit: 1411583991 Zeitüberschreitung: 300 (Sek.) Überprüfen Sie den Rückkehrcode: 20 (nicht lokal verfügbar) Ausstellerzertifikat)

Wenn Sie jedoch das GeoTrust-Stammzertifikat herunterladen und es mit diesem Befehl versuchen:

openssl s_client -connect mydomain.tld: 443 -CAfile GeoTrust_Global_CA.pem 2> & 1 </ dev/null

Überprüfung ist in Ordnung:

[...] SSL-Sitzung: Protokoll: TLSv1.2 Verschlüsselung: ECDHE-RSA-AES256-GCM-SHA384 [...] Startzeit: 1411583262 Zeitüberschreitung: 300 (Sek.) Überprüfen Sie den Rückkehrcode: 0 (ok)

Irgendwie wird das GeoTrust-Stammzertifikat nicht gefunden/ausgeliefert.

Meine Nginx-Site-Konfiguration:

server {
    listen 443;
    server_name mydomain.tld;

    ssl on;
    ssl_certificate /etc/ssl/certs/ssl.crt;
    ssl_certificate_key /etc/ssl/private/ssl.key;


    # Resumption
    ssl_session_cache shared:SSL:20m;

    # Timeout
    ssl_session_timeout 10m;

    # Security options
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;

    # OCSP Stapling
    # It means that you sent status info about your certificate along with the request,
    # instead of making the browser check the certificate with the Certificate Authority.
    # This removes a large portion of the SSL overhead, the CloudFlare post above explains it in more detail.
    ssl_stapling on;
    ssl_stapling_verify on;
    #ssl_trusted_certificate /etc/ssl/certs/ssl.pem;

    #resolver 8.8.8.8 8.8.4.4 valid=300s;
    #resolver_timeout 10s;

    # This forces every request after this one to be over HTTPS
    add_header Strict-Transport-Security "max-age=31536000";[...]};

RapidSSL schrieb in seine Dokumentation, dass ich die folgenden Zertifikate in der folgenden Reihenfolge in die ssl.crt aufnehmen sollte:

  1. myserver.crt
  2. Intermediate CA Bundle (RapidSSL SHA256 CA - G3)
  3. Intermediate CA Bundle (GeoTrust Global CA)

So tat ich...

Im Moment habe ich keine Ahnung, was ich falsch mache ... hoffentlich kann mir hier jemand helfen.

Vielen Dank!

17
kapale

Diese beiden Fehler hatten nichts miteinander zu tun, obwohl die Fehlermeldung dieselbe war.

[...] SSL-Sitzung: Protokoll: TLSv1.2 Verschlüsselung: ECDHE-RSA-AES256-GCM-SHA384 [...] Startzeit: 1411583991 Zeitüberschreitung: 300 (Sek.) Überprüfen Sie den Rückkehrcode: 20 (nicht lokal verfügbar) Ausstellerzertifikat)

Der obige Fehler wurde ausgegeben openssl_client Befehl. Wie von Florian Heigl erklärt, erhalten Sie diesen Fehler, weil der openssl_client das Globalsign Root-Zertifikat in /etc/ssl/certs Benötigt.


OCSP_basic_verify () fehlgeschlagen (SSL: Fehler: 27069065: OCSP-Routinen: OCSP_basic_verify: Zertifikatüberprüfungsfehler: Überprüfungsfehler: Lokales Ausstellerzertifikat kann nicht abgerufen werden) beim Anfordern des Zertifikatstatus, Antwort: gv.symcd.com

Für diesen Fehler wurde er von der Routine nginx ocsp ausgegeben, insbesondere wenn Sie die Zeile ssl_stapling_verify on; In nginx.conf hinzufügen.

Hier ein Auszug aus der Dokumentation von ssl_stapling_verify, Um zu erklären, warum der Fehler ausgelöst wird

Syntax: ssl_stapling_verify on | aus;

Aktiviert oder deaktiviert die Überprüfung von OCSP-Antworten durch den Server.

Damit die Überprüfung funktioniert, sollten das Zertifikat des Ausstellers des Serverzertifikats, das Stammzertifikat und alle Zwischenzertifikate mithilfe der Anweisung ssl_trusted_certificate als vertrauenswürdig konfiguriert werden.

Mit anderen Worten, Sie müssen (2) Intermediate CA Bundle (RapidSSL SHA256 CA - G3) und (3) bereitstellen ) Intermediate CA Bundle (GeoTrust Global CA) an die Anweisung ssl_trusted_certificate.

cat GeoTrustGlobalCA.crt rapidsslG3.crt > ocsp-chain.crt

und fügen Sie ocsp-chain.crt zur Anweisung ssl_trusted_certificate hinzu.

17
masegaloeh

Ich kann nur einen Teil davon beantworten.

openssl s_client -connect mydomain.tld: 443 2> & 1 </ dev/null

würde das Globalsign Root-Zertifikat in/etc/ssl/certs benötigen. Es gibt ein Ca-Zertifikat-Paket. Haben Sie das installiert?

1
Florian Heigl