2017-11-06 21 views
1

docker swarmで実行中のNginxでSSLをセットアップしようとしていますが、問題が発生しました。すべてが正しいように見えますが、私が行ったリクエストは、私が502になるまでハングアップします。ポート443を作成ファイルに公開するようにしました。ここで私は取得していますnginxのエラーさ:SSLサポートNockxを使用したDocker Swarm

*7 peer closed connection in SSL handshake while SSL handshaking to upstream, client: 10.255.0.2, server: subdomain.mysite.com, request: "GET /api-v1/user-login HTTP/2.0", upstream: "https://10.0.0.6:5051/api-v1/user-login", host: "subdomain.mysite.com" 

をここでは私のnginxのは、default.confの関連作品です:

ssl_session_cache shared:SSL:10m; 
ssl_session_timeout 10m; 
ssl_protocols  SSLv3 TLSv1; 

upstream siteStage { 
    ip_hash; 
    server siteStage:5051; 
} 

server { 
    listen 443 ssl http2 ; 
    server_name subdomain.mysite.com; 

    ssl on; 
    ssl_certificate /path/provided.crt; 
    ssl_certificate_key /path/client.key; 
    ssl_client_certificate /path/ca.crt; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_verify_client  off; 

    location/{ 
    proxy_ssl_certificate   /etc/ssl/client.pem; 
    proxy_ssl_certificate_key  /etc/ssl/client.key; 
    proxy_ssl_protocols   TLSv1 TLSv1.1 TLSv1.2; 
    proxy_ssl_ciphers    HIGH:!aNULL:!MD5; 
    proxy_ssl_session_reuse on; 
    proxy_pass https://siteStage/; 
    } 
} 

答えて

0

それが私のnginxの設定だったが判明しました。最終的にどのように動作させるかは次のとおりです。

# No upstream 

server { 
    listen 80; 
    listen 443 ssl default_server; 
    server_name subdomain.mysite.com; 

    ssl on; 
    ssl_certificate /path/provided.crt; 
    ssl_certificate_key /path/client.key; 

    if ($scheme = http) { 
    return 301 https://$server_name$request_uri; 
    } 

    location/{ 
    proxy_pass http://siteStage:5051/; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto "https"; 
    } 
} 
+0

解決策はhttpsの代わりにhttpを使用してドッカーサービスに連絡することでしたか? – mjb2kmn

+0

@ mjb2kmnそうですね、プロキシヘッダーを追加し、プロキシ証明書を削除し、nginxチュートリアルで最後に行った2つのクライアント証明書を削除しました。 –

関連する問題