web-dev-qa-db-ja.com

nginxhttpsプロキシ

私はすでにnginxをプロキシとして使用しています

http://www.mydomain.com ==> http://192.168.0.1

しかし、リダイレクトしようとすると

https://www.mydomain.com ==> https://192.168.0.1

それは動作しません !

私のnginx.conf:

server {
  listen 443;
  server_name www.mydomain.com;

  location / {
    proxy_pass https://192.168.0.1;
  }
}

https://192.168.0.1に行くと、問題なく動作します。 nginxは192.168.0.2(別のマシン)にあります。

私は何を間違えましたか?

2
Guillaume

リダイレクトしていませんよね?ブラウザは引き続きwww.mydomain.comと表示し、nginxサーバーとの接続を開きます。これにより、実際にリクエストを処理しているマシンへの接続が開かれ、そのマシンは応答をnginxに送信し、nginxはそれをクライアントに送り返します。 。

Nginxは実際にクライアントと通信するものであるため、nginxとクライアントの間にSSL接続が必要になります。内部ネットワークのセキュリティについて心配しない限り、ネットワークの内部SSL接続は必ずしも必要ではありません。

Nginxsslモジュールを使用する必要があります。 http://wiki.nginx.org/NginxHttpSslModule

server {
    server_name www.mydomain.com;
    listen 443;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/server.crt;
    ssl_certificate_key /usr/local/nginx/conf/server.key;
    location / {
        proxy_pass https://192.168.0.1;
    }
}

現在の設定は、非SSL接続であるため、おそらく http://mydomain.com:44 で機能します。

2
Dan R