nginx http to https Proxy mit selbstsigniertem Zertifikat

17

Ich habe einen Nginx-Proxy, um http-Anforderungen mit einem angegebenen Port an eine andere https-URL umzuleiten.

Hier ist meine bisherige Konfiguration:

server {
   listen 59848;
   location / {
      resolver 8.8.8.8;
      proxy_pass https://example.com$uri$is_args$args;
   }
}

Beachten Sie, dass "example.com" nur für dieses Beispiel verwendet wird. Später werde ich die Anforderung einschränken, nur von localhost gesendet zu werden.

Dies funktioniert einwandfrei, solange der Server hinter der URL "proxy_pass" ein gültiges SSL-Zertifikat verwendet, das von einer bekannten CA Authority signiert wurde (welches Stammzertifikat irgendwie von nginx verwendet wird).

Ich habe jedoch das Problem, dass ich auf der Nginx-Seite ein benutzerdefiniertes selbstsigniertes SSL-Client-Zertifikat verwenden muss. Weiß jemand, wie man dieses selbstsignierte Zertifikat auf nginx installiert?

Jakob
quelle
Hast du diese Arbeit gemacht? Ich habe Ihre und eine ähnliche Konfiguration ausprobiert, aber der Client kann keine Verbindung herstellen, da der Server den angegebenen Port überhaupt nicht überwacht. Nur diese serverRichtlinie funktioniert nicht. Aber nginx startet und hört andere in config angegebene Ports ab.
4xy

Antworten:

15

nginx erlaubt standardmäßig die Verwendung von selbstsignierten Zertifikaten:

Syntax:     proxy_ssl_verify on | off;
Default:    proxy_ssl_verify off;
Context:    stream, server
Enables or disables verification of the proxied server certificate. 

Entfernen Sie die proxy_ssl_verifyDirektive oder setzen Sie sie auf off.
Lesen Sie hier mehr darüber:
https://www.nginx.com/resources/admin-guide/nginx-tcp-ssl-upstreams/
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_verify

unbenannt
quelle