2017-01-17 21 views
1

私はこのポスト以下、Bluemixに証明書を追加しました:https://www.ibm.com/blogs/bluemix/2014/09/ssl-certificates-bluemix-custom-domains/BluemixでのSSLとnginxの構成

を私はドメイン]タブで証明書を見ることができ、そしてそれは私がアップロードした一つです。

私はリバースプロキシとして使用するので、私はnginxを実行しているコンテナを持っています。以前はSSL設定を処理していましたが、今度はBluemixで直接処理されているので、証明書を設定せずにhttps要求を受け入れるだけです。

私たちが行ったことは、http:// httpsにHTTPリクエストを転送していたことです。ポストに書かれているように(node.jsのやり方について説明しています)。私たちはこのような何かを得る:

server { 
    listen  80; 
    server_name *hostname.domain*; 
    return 301 https://$http_host$request_uri; 
} 

をそして443の部分には、我々は唯一のSSL一部せず、聞く:それにアクセスしようとしたとき

server { 
    listen  443; 

    server_name *host.domain*; 

    *other stuff for reverse proxy* 
} 

はしかし、私はクロームで、一般的なエラーが出ます:ERR_SSL_PROTOCOL_ERROR

Firefoxは少しより多くの情報を提供します:

An error occurred during a connection to *host.domain*. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG 

そして、私がしようコマンドラインから証明書をチェックするために、私は何も取得しません。

openssl s_client -connect *host.domain*:443 
CONNECTED(00000003) 
140250419918480:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:782: 
--- 
no peer certificate available 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 7 bytes and written 289 bytes 
--- 
New, (NONE), Cipher is (NONE) 
Secure Renegotiation IS NOT supported 
Compression: NONE 
Expansion: NONE 
SSL-Session: 
    Protocol : TLSv1.2 
    Cipher : 0000 
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg : None 
    PSK identity: None 
    PSK identity hint: None 
    SRP username: None 
    Start Time: 1484673167 
    Timeout : 300 (sec) 
    Verify return code: 0 (ok) 
--- 

ありnginxのログにエラーがいない、と私は言うために管理することができない場合Bluemix側で、またはnginxのの構成の問題、またはnginxのは、それが処理しなければならないこのような構成を可能にする場合証明書の設定なしでhttps要求...

誰かが考えていますか?

多くのありがとうございます。

よろしくお願いいたします。

+0

は、httpの重複のように見えます://stackoverflow.com/q/15394904/1072229それでもうまくいかない場合は、設定の「リバースプロキシ用のその他のもの」セクションを実際に含める必要があります。 –

答えて

0

NGINXにSSLをパススルーする場合は、streamモジュールを使用する必要があります。

0

お返事ありがとうございます。私はあなたのソリューションをチェックすることができませんでしたが、私はIBMの技術専門家と話をしましたが、ここで私が学んだことがあります。

SSLパススルーについては、SSLを処理するために(nginxの背後にある)各コンポーネントを設定する必要があるため、管理が難しいようです。私は専門家ではないので、私はその点について私が答えとして持っていたことを報告しているだけです。

まず、私たちのnginxコンテナのパブリックIPアドレスを削除することで可能になります。 次に、BMロードバランサからnginxコンテナへのルートを作成することで、問題を解決する必要があります。次に、ポート443をポート80のnginxに転送するようにルートが設定されます(コンテナは公開されていないため、80 AND 443を処理する必要はありません)。

ただし、Bluemixではコンテナグループ(現在は?)のみのルートが許可されています。残念ながら、BlueMixでコンテナグループを作成することはできません(現在は?)しているdocker-composeを使用しています。

したがって、最良の解決策は、sginの設定をnginxに戻すことでした。証明書はBlueMixドメインとnginxコンテナの両方にあります。...そして、それがうまく働いているので、私たちはただ、証明書を更新するための手順を改善し、必要、またはそれを行うための新しい方法がありますまで待つつもり

K.