2017-09-22 15 views
0

TLS経由でRethinkDBクラスタを設定しようとしています。私は多くの例とブログを見ていますが、どれも生産環境については説明していません。すべてが自己署名証明書を使用し、ローカルホストまたは公衆インターネットに公開されているホストに展開します。RethinkDBクラスタ接続中のOpenSSLエラー336105606の意味TLSハンドシェイク

しかし、私はOpenStackで動作するプライベートネットワークを使いたいと思います。したがって、すべてのホスト(OpenStack上のインスタンスと呼ばれる)にはプライベートIPがあります。この設定をテストするために、2つのインスタンス(Ubuntu 16.04 LTSを実行)を作成し、両方にRethinkDBをインストールしました。

this RethinkDBページによると、各サーバーにキー、署名付き証明書、および証明書ファイルを提供する必要があります。各証明書はCN(Common Name)を指定する必要があり、その証明書はホスト名またはホストのIPのいずれかでなければなりません。 IPアドレスはプライベートです。つまり、(192.168.0。*)

これを実行するには、hereという指示を使用して自分のCAを作成しました。ホストAの鍵ファイルとホストBの鍵ファイルを作成し、自分で署名しました中間CAを作成しました。すべての証明書をチェックし、すべてが戻ってきました。同じCAによって適切に署名されています。

は、だから今は、ホストAのIPへのCNが設定されたホストAの秘密鍵+公開証明書を持って、同じことが、私は上のキー、証明書や中間CA証明書をインストールしたホストB.

のために行きますRethinkDB confファイルに2つのサーバーを指定しました。また、クラスタポートを対応するIPにバインドします。 rethinkdbユーザーは、すべての鍵ファイルと証明書ファイルにアクセスできます。

ホストで重要な行confファイル

initial-password=MY_PASSWORD 
bind-cluster=192.168.0.3 
cluster-tls-key=/etc/ssl/private/rethinkdbA.key.pem 
cluster-tls-cert=/etc/ssl/certs/rethinkdbA.cert.pem  
cluster-tls-ca=/etc/ssl/certs/rethink-ca.pem 

ホストBのconfファイル内の重要な行

initial-password=auto 
bind-cluster=192.168.0.4 
cluster-tls-key=/etc/ssl/private/rethinkdbB.key.pem 
cluster-tls-cert=/etc/ssl/certs/rethinkdbB.cert.pem  
cluster-tls-ca=/etc/ssl/certs/rethink-ca.pem 
join=192.168.0.3:29015 

それから私は、ホストA上のRethinkDBを開始私は私を与えるログファイルを確認最後に

2017-09-22T15:29:35.854921950 0.265890s notice: Server ready, "hosta_jll" 7ae511e3-2295-4882-a23b-99de9751708e 

次に、私はホストBでRethinkDBを開始します。終了:

2017-09-22T13:12:39.647368542 0.135787s notice: Listening for intracluster connections on port 29015 
2017-09-22T13:12:39.647465611 0.135884s info: Attempting connection to 1 peer... 

そして、ホストA上のログファイルがいっぱいになると:

2017-09-22T13:12:40.647465611 46.922271s error: Cluster server connection TLS handshake failed: certificate verify failed (OpenSSL error 336105606) 

だから私は、これはOpenSSLのエラー336105606で何かを探し始めたが、何も見つかりませんでした!上で述べたように、実稼働環境でこれを行う方法を示すサンプル/ブログ/ハウツー/ヘルプページは見つかりませんでした。自己署名入り証明書を持つローカルネットワークと開発環境のみ。

conf-fileからcluster-tls- *行を削除すると、サーバはクラスタを形成します。しかし、TLSでは運がない。

私の質問は次のとおりです:エラーコードは何を意味していますか?私は間違って何をしていますか?そして、たとえプライベートなOpenStackネットワークで暗号化を使用する必要があるのでしょうか?hereこれは良い習慣だと言われていますか?

数日後に....お手伝いします!

多くのおかげで、前に、マーク

答えて

0

こんにちはマーク私は同じ問題があります。あなたの証明書にX509v3 Extended Key Usageを確認してください。 このようなsmthがある場合:

X509v3 Extended Key Usage: 
       TLS Web Server Authentication 

その問題。 有効な出力は次のようになります。

X509v3 Extended Key Usage: 
       TLS Web Server Authentication, TLS Web Client Authentication 

openssl s_client -connect rethink-server1:31015 -key ./certs/r2-key.pem -cert ./certs/r2-cert.pem -CAfile ./certs/ca.pem -servername rethink-server2 | openssl x509 -text -noout 
を確認する方法
関連する問題