2016-04-08 12 views
2

Ich versuche, TLS auf jeder Schicht eines Proxy-Pfades einzuführen. Was ich sehe ist, dass Nginx einem Upstream erlaubt, ein selbstsigniertes Zertifikat zu haben. Gibt es eine Möglichkeit, die Behörden zu sperren, die akzeptiert werden, wenn sie Datenverkehr an einen Upstream übergeben?Nginx erzwingen, um Upstream-Zertifikate zu verifizieren

nginx01 hat ein vertrauenswürdiges Zertifikat und der Endbenutzer verbindet sich ohne Probleme. nginx02 hat ein selbstsigniertes Zertifikat, und wenn ich proxy_pass an https://nginx02 ich sehe keine Beschwerden im Endbenutzer-Browser oder in nginx01 Protokolle. Ich würde eine Ablehnung erwarten. Wenn ich Nginx02 von Nginx01 wie erwartet curlotte bekomme ich die ssl Ablehnung.

Gibt es eine Möglichkeit, nginx01 zu zwingen, nginx02 certs zu validieren?

CentOS 7 läuft nginx 1.6.3-8.

/etc/hosts 
10.21.10.99 upstream.example.com 

curl https://upstream.example.com 
# ssl rejection 

curl https://upstream.example.com --cacert ./upstream.example.com.crt 
# works fine (200) 

# nginx configuration 
server { 
    listen 443; 
    ssl on; 
    ssl_certificate /etc/nginx/security/full_chain.crt; 
    ssl_certificate_key /etc/nginx/security/ingress.example.com.key; 
    server_name ingress.example.com; 
    location/{ 
    proxy_pass https://upstream.example.com; 
    } 
} 

Antwort

3

Verwenden

proxy_ssl_verify on; 
proxy_ssl_trusted_certificate /path/to/your_selfsigned_ca_cert.pem 

Weitere Informationen können Sie Proxy-Dokumentation verweisen auf nginx here

Verwandte Themen