web-dev-qa-db-ja.com

証明書ファイルを指定せずにSSLバックエンドにプロキシするにはどうすればよいですか?

JKSを使用して署名するPlay2.1.xアプリケーションがあります。 domain.com:9443で稼働しており、利用可能です。同じマシン上にさらに多くのアプリがあるため、nginxでプロキシする必要があります(したがってポート443)だけで実行することはできませんproxy_passhttpsを使用すると、プロキシすることができるようになることを期待して、nginx構成を追加しましたクライアントへ

upstream backend-secure {
    server 0.0.0.0:9443;
}

server {
        listen 443 ssl;
        server_name domain.com;

        proxy_redirect          off;
        proxy_set_header        Host            $Host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;


        location / {
                proxy_pass  https://backend-secure;
        }

}

残念ながら、ブラウザでhttps://domain.comを開こうとすると、次のようにnginx/error.logにしかログインできません。

sSLハンドシェイク中にSSLポートでリッスンしているサーバーで「ssl_certificate」が定義されていません。クライアント:123.123.123.123、サーバー:0.0.0.0:443

それを機能させる方法はありますか、それともオプションはnginx SSL + httpバックエンドを使用する一般的な方法を使用することですか?

編集:それはEV、重要な場合はマルチドメイン証明書です。

12
biesior

プロキシの唯一のオプションは、nginx内に証明書を置くことです。別のオプションは、単にTCP ngnixの外部に接続を転送することですが、X-Real-IP、X-Forwarded-Forなどは取得されません。

2
Steffen Ullrich