fragen stichworte

nginx: SSL-Überprüfung fehlgeschlagen + falsche Weiterleitung

Dies ist meine aktuelle Nginx-Konfiguration:

$ cat/etc/nginx/sites-enabled/bitbucket

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name git.itextsupport.com bitbucket.itextsupport.com gitlab.itextsupport.com;

        return 302 https://git.itextsupport.com$request_uri;
}

server {
        listen 443 ssl default_server;

        server_name git.itextsupport.com;
        server_tokens off;
        add_header Strict-Transport-Security "max-age=31536000";

        access_log /var/log/nginx/bitbucket_access.log;
        error_log  /var/log/nginx/bitbucket_error.log;

        ssl on;
        ssl_certificate/etc/ssl/private/ssl-itextsupport.pem;
        ssl_certificate_key/etc/ssl/private/ssl-itextsupport.key;

        location/{
                proxy_pass http://localhost:7990/;
                proxy_set_header        Host $host;
                proxy_set_header        X-Forwarded-Host $host;
                proxy_set_header        X-Forwarded-Server $host;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_redirect          off;
        }
}

http Weiterleitung zu git ist in einer Konsole in Ordnung:

$ curl -I http://git.itextsupport.com                                                                                                                                                                                                    10:09  amedee@iTextQA
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Tue, 15 Nov 2016 13:15:50 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: https://git.itextsupport.com/

In Chrome wird jedoch auf https://gitlab.itextsupport.com/ umgeleitet. Der Browser-Cache ist bereits gelöscht und deaktiviert, während DevTools geöffnet ist. Vorschläge für NUKE für den Chrome-Weiterleitungscache sind willkommen, aber das ist nicht meine Frage.

Die obige Weiterleitung ist auch für http://bitbucket.itextsupport.com und http://gitlab.itextsupport.com in Ordnung. Auch in Chrome funktioniert das nicht, aber das ist nicht meine Frage.


Nächster Schritt: Testen der https Weiterleitung.

$ curl -I https://bitbucket.itextsupport.com                                                                                                                                                                                                 curl: (60) server certificate verification failed. CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile: none
More details here: https://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Ich füge -k wie vorgeschlagen hinzu:

$ curl -I https://bitbucket.itextsupport.com -k                                                                                                                                                                                              HTTP/1.1 302 Found
Server: nginx
Date: Tue, 15 Nov 2016 13:31:56 GMT
Connection: keep-alive
X-AREQUESTID: @PT467Wx871x701860x0
X-ASEN: SEN-L8781032
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Cache-Control: no-store
Location: https://gitlab.itextsupport.com/dashboard
Content-Language: en-US
Strict-Transport-Security: max-age=31536000

Meine zwei Fragen:

  1. Warum schlägt die SSL-Überprüfung fehl? Ich habe /etc/ssl/private/ssl-itextsupport.{pem,key} überprüft, es handelt sich um genau die Dateien, die von unserem Hosting-Unternehmen bereitgestellt werden und auf anderen Servern verwendet werden, auf denen https funktioniert. Es schlägt auf der Konsole und im Browser fehl.
  2. Warum werden https anstelle der git -Domäne an die gitlab -Domäne weitergeleitet? Ich habe den gesamten Server gefunden und kann keine relevante Nginx-Konfiguration finden, die möglicherweise dafür verantwortlich ist.

antworten

Ihre Webanwendung hat die zweite Weiterleitung gesendet. Überprüfen Sie ihre Konfiguration, um sicherzustellen, dass sie weiß, welche Domain sie bedienen soll.

Curl mag das SSL-Zertifikat nicht, weil Sie das Zwischenzertifikat nicht installiert haben.