2017-02-20 1 views
0

Ich versuche eine 2-Wege-SSL-Verbindung zwischen einem Nginx-Server und einem Client (Browser/Postman) herzustellen. Ich frage mich, ob es möglich sein sollte, nginx den Schlüssel des Browsers/Postmans zu vertrauen, Nginx-Anfragen unterstellt und Client-Zertifikate überprüft. speziell , wasKann 2-Wege SSL gegen Browser (als Clients) getestet werden?

in diesem Abschnitt von nginx gesetzt werden sollte
server { 
    listen 443; 
    ssl on; 
    ssl_certificate /etc/nginx/ssl/newcert.crt; 
    ssl_certificate_key /etc/nginx/ssl/newkey.pem; 


    ssl_session_timeout 15m; 
    ssl_protocols SSLv3 TLSv1; 
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; 
    ssl_prefer_server_ciphers on; 

    ssl_verify_client on; 
    ssl_verify_depth 2; 

    # what should be the content of that file?? 
    >>>>>> ssl_client_certificate /etc/nginx/ssl/trust/client.crt; 


} 

Ich konnte keine Informationen über diese finden ...

Dank.

Antwort

0

Die ssl_client_certificate Richtlinie verweist auf eine Datei verwendet, um das Certificate Authority enthält der Kunden Zertifikatsanforderung zu unterzeichnen. Details finden Sie unter this document.

Wenn Sie eine selbst signiertes Zertifikat Behörde für Ihre Client-Zertifikate verwenden, würde das Verfahren so etwas wie diese:

  1. ein selbst signiertes Zertifikat erstellen als Zertifizierungsstelle zu verwenden. Ein vereinfachtes Schema zum Verwalten dieses Schritts finden Sie unter OpenSSL CA(1).
  2. Generieren Sie eine Zertifikatsanforderung für den Client. Zum Beispiel:

    openssl req -newkey rsa:2048 -nodes -keyout user.key -out user.req 
    
  3. die CA aus Schritt 1 Mit der Anfrage von Schritt 2 zu erzeugen, ein Zertifikat für den Client zu unterschreiben. Siehe oben OpenSSL CA (1).

  4. Konvertieren Sie das Zertifikat aus Schritt 3 in eine PKCS # 12-formatierte Datei, damit es vom Client importiert werden kann. Zum Beispiel:

    cat user.key user.crt | openssl pkcs12 -export -out user.p12 
    
+0

mein Klient ist Chrome. Ich nahm an, dass es eigene Client-Zertifikate hatte. Ich habe es geschafft, mein Server-selbstsigniertes Zertifikat auf Chrome zu installieren, aber das war nur 1 Weg ssl. Vielleicht habe ich etwas in Ihrer Antwort verpasst - Kann ich ein Client-Zertifikat für Chrome generieren? Wie stelle ich sicher, dass dieses Zertifikat bei der Authentifizierung verwendet wird? Mein Nginx wird ihm sagen, es irgendwie zu benutzen? – user1092867

Verwandte Themen