Ankündigung

Einklappen
Keine Ankündigung bisher.

Reverse Proxy mit nginx und Client Zertifikat

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Reverse Proxy mit nginx und Client Zertifikat

    Ich bin gerade dabei, meinen Raspberry Pi für's SmartHome vorzubereiten und möchte den Zugriff auf den Raspi mit Reverse Proxy und Client-Zertifikaten absichern.
    Hierbei habe ich mich an diese Anleitung (ich vermute von psilo) gehalten. Hier wird alles haarklein erklärt, aber leider klappt es bei mir trotzdem nicht mit den Zertifikat.
    • Raspberry mit Raspbian GNU/Linux 9.6 (stretch)
    • nginx 1.14.1 (Vorher 1.10)
    • OpenSSL 1.1.1a
    • Fritzbox per IP4 über myfritz.net-DNS-Name von außen erreichbar
    • Let’s Encrypt Server-Zertifikate geholt und nginx entsprechend konfiguriert
    • node.js hello-World-App auf Port 3000 laufend
    Bis hierhin funktioniert es einwandfrei und ich kann den Raspi über https://xxx.myfritz.net ansprechend. Ich sehe wie gewünscht "Hello World!" im Browser.
    Wenn ich im nächste Schrittchen in der Datei /etc/nginx/sites-available/xxx.myfritz.net.conf diese Prüfung aktiviere, kommt wie erwartet 403 Forbidden. Habe ja auch noch kein Client-Zertifikat.
    Code:
            # Clientzertifikat gültig?
            if ($ssl_client_verify != SUCCESS) {
                return 403;
            }
    Folge ich nun in der oben erwähnten Anleitung den Schritten unter "Client Zertifikate erstellen (optional)" und "Client Zertifikate in NGINX nutzen (optional)" scheint soweit erstmal alles zu funktionieren. Also rüber mit der .p12-Datei auf meine Clients (ubuntu oder Mac, firefox oder Chrome).

    Aufruf meiner url und es erscheint z.B. im Firefox auf ubuntu wie erwartet:
    400 Bad Request
    No required SSL certificate was sent


    Wenn ich nun die .p12-Datei im Firefox importiere, Firefox neu starte und die Site aufrufe, erscheint ein "User Identification Request", den ich bestätige.
    Screenshot.jpgScreenshot1.jpg
    Nun erscheint leider die Meldung:
    400 Bad Request
    The SSL certificate error


    Habe leider keine Idee, wonach ich suchen muss, um das Problem zu beheben. Vielleicht kann jemand mit Ideen helfen...

    Hier mal die Ausgabe von
    Code:
    openssl pkcs12 -info -in client.p12
    - weiß nicht, ob das evtl. hilft:
    Code:
    Enter Import Password:
    MAC: sha1, Iteration 2048
    MAC length: 20, salt length: 8
    PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
    Certificate bag
    Bag Attributes
        localKeyID: xx xx xx xx xx 0C 95 3F 24 82 28 05 E3 9B 16 AB 69 CE 9F CC
    subject=C = DE, ST = Nordrhein-Westfalen, L = x, O = Hajo SmartHome, OU = Client, CN = xxx.myfritz.net, emailAddress = hajoxxx
    
    issuer=C = DE, ST = Nordrhein-Westfalen, L = x, O = Hajo SmartHome, OU = Raspi, CN = xxx.myfritz.net, emailAddress = hajoxxx
    
    -----BEGIN CERTIFICATE-----
    MIIEWTCCAkECFH+rIuxh+j+OAmkKknUeW5Bi/NxaMA0GCSqGSIb3DQEBCwUAMIGr
    [...]
    i/OSd+OUHxtAHe3PCA==
    -----END CERTIFICATE-----
    PKCS7 Data
    Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
    Bag Attributes
        localKeyID: 7xx xx xx xx xx 0C 95 3F 24 82 28 05 E3 9B 16 AB 69 CE 9F CC
    Key Attributes: <No Attributes>
    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    -----BEGIN ENCRYPTED PRIVATE KEY-----
    MIIC1DBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQI2RdYCsK1lqQCAggA
    [...]
    /mGA29nVlvA=
    -----END ENCRYPTED PRIVATE KEY-----
    pi@raspberrypi:~ $

    #2
    was sagen denn die nginx error und access logs? auf nem mac wird meine lösung zudem eh nicht so ohne weiteres gehen. da braucht man die extension der anleitung im entsprechenden thread (das mit dem LUA script etc)

    Kommentar


      #3
      Guten Morgen,
      im error log werden zu diesen Aufrufen keine Einträge gemacht.
      Die im access-Log sind für mich leider nicht hilfreich:
      Code:
      3.15.12.17 - - [10/Dec/2018:08:16:30 +0100] "GET / HTTP/1.1" 400 224 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
      3.15.12.17 - - [10/Dec/2018:08:16:30 +0100] "GET /favicon.ico HTTP/1.1" 400 224 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"

      Kommentar


        #4
        hilft google hier vielleicht? https://stackoverflow.com/questions/...e-inconvenienc

        Kommentar


          #5
          Zitat von psilo Beitrag anzeigen
          Bestimmt. Aber der berichtet ja "nur" vom gleichen Verhalten und hat auch noch keine Lösung gefunden.

          Die letzte Vermutung bei den Kommentaren
          ssl_client_certificate client.crt must target a Certificate Authority not a Certificate
          müsste ich noch mal probieren, obwohl in (Deiner?) der verlinkten Anleitung ja auf auf ein Certificate verwiesen wird und ich darüber hinaus aktuell nicht weiß, wie man auf eine Certificate Authority verweist.

          "My organization name,common name,email are different for ca.crt and client.crt values"
          Hier frage ich mich auch, ob die dort eingegebenen Namen außer Information bei der Behandlung der Zertifikate eine Bedeutung haben. Bei mir sind diese Werte - bis auf Organizational Unit (OU) - gleich.
          Zuletzt geändert von hajo62; 10.12.2018, 09:58.

          Kommentar


            #6
            Probieren.. Ich habe erst vor kurzem nach einem SD-Karten-Datenverlust alles neu nach meiner Anleitung aufgesetzt und unter Windows (chrome + FF) + Android geht alles einwandfrei.

            Kommentar


              #7
              Habe es inzwischen auch mal mit Windows 7 und Firefox probiert. Leider selbes Verhalten.

              Muss also daran liegen, dass ich irgendwas falsch mache. Vielleicht könnte mir jemand, der's an's Fliegen bekommen hat, mal sein Config-Dateien zukommen lassen? Das wäre toll.

              Kommentar


                #8
                Bei meinem Raspi Image läuft auch der Reverse Proxy: https://sourceforge.net/projects/sma...iles/Release2/
                Die Vorgehensweise ist hier "beschrieben": https://github.com/smarthomeNG/ansib...n/04_nginx.yml
                Relevante configs findest du hier unter nginx* https://github.com/smarthomeNG/ansib...spbian/configs
                Und hier habe ich ein Skript zum Einrichten der Zertifikate, etc: https://github.com/smarthomeNG/ansib...setup_exim4.sh

                Vielleicht hilft da ja was?

                Kommentar

                Lädt...
                X