2016-04-18 12 views
2

私は新しいSSL証明書を使用する簡単なNGINXプロキシ設定(下記)を持っています(初めてこれを試しています)。Docker + NGINX + SSL

標準の「nginx」イメージを拡張してDocker経由で展開しました。私は合理的に自分のInstantSSL証明書ファイルが有効だと確信していますが、サーバーが有効なSSL接続を返していません。

私は次のようなエラーになっている:私は

$ ./cipherscan -v https://MY_DOMAIN.com 
handshake failed, no ciphersuite was returned 

そして最後に、https://www.ssllabs.com/ssltest/analyze.htmlリターンが

を "いいえセキュアなプロトコルがサポートされていない":私はあまりにも他のツールを試してみた

$ openssl s_client -connect MY_DOMAIN.com:443 
CONNECTED(00000003) 
22489:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake 

ssl_protocolsのさまざまな組み合わせを試しましたssl_ciphers se nginxのドキュメントは、デフォルトがうまくいくはずだと言います。

NGINXはポート80で正常に動作します(つまり、私の標準仮想ホスト設定では80でリッスンします)ので、一般的なサーバー設定はOKと思われます。

他にも何かお試しいただけますか?

server { 
    listen 443 ssl; 

    server_name MY_DOMAIN.com; 

    ssl on; 
    ssl_certificate  /etc/ssl/ssl-bundle.crt; 
    ssl_certificate_key /etc/ssl/MY_DOMAIN.key; 

    ssl_prefer_server_ciphers on; 

    ssl_stapling on; 
    ssl_stapling_verify on; 

    location/{ 
     proxy_pass http://frontend; 

     proxy_redirect http:// https://; 

     proxy_http_version 1.1; 
     proxy_set_header Host $host; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     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 $scheme; 
     proxy_cache_bypass $http_upgrade; 
    } 
    } 

答えて

0

ユーザーエラー:

私は私のDockerfileにさらさ443を持っていたではなく、私のドッカークラウドstackfileで(そのホストされたコンテナのポートがブロックされました)。

これは、ローカルでnginxをテストすることでわかりました(/ etc/hostsエントリを私のprodサーバを "fake"に追加してください)、正しく動作しました(ドッカーの外で)。