起動時にSSL例外が発生する、または接続できない

起動時に例外が発生した場合、またはDSEデータベースへの接続が確立できない場合のクライアント間暗号化およびノード間暗号化のためのSSL接続のトラブルシューティング。

起動時に例外が発生した場合、またはデータベースへの接続が確立できない場合にSSL接続をトラブルシューティングするには、次の手順を実行します。

cassandra-env.sh

cassandra-env.shファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra-env.sh
tarボール・インストール installation_location/resources/cassandra/conf/cassandra-env.sh

手順

  • デバッグを有効にするには、次のオプションをcassandra-env.shに追加します。
    -Djavax.net.debug=ssl

    起動および接続に関する詳細なメッセージ(SSLハンドシェイク・エラーを含む)がSTDOUTに出力されます。メッセージの詳細については、「SSL/TLS接続のデバッグ」を参照してください。

  • /var/log/cassandra/system.log内のSSL暗号化メッセージを確認してください。
    • SSLが正しく起動する場合:
      • クライアントからサーバーへの接続の場合:
        INFO  [main] 2017-06-15 21:50:41,928  Server.java:145 - Enabling encrypted CQL connections between client and server
      • ノード間メッセージングの場合:
        INFO  [main] 2017-06-15 21:50:23,037  MessagingService.java:702 - Starting Encrypted Messaging Service on SSL port 7001
    • SSLが起動しない場合:
      • トラストストアまたはキーストア・ファイルが見つからない場合:
        Caused by: org.apache.cassandra.exceptions.ConfigurationException: Failed to initialize SSL
        
        ...
        
        Caused by: java.io.FileNotFoundException: resources/dse/conf/.truststore (No such file or directory)
        注: 例は、ノード間暗号化のデフォルト設定が変更されなかった場合を示しています。
      • トラストストアまたはキーストアのパスワードが無効な場合:
        Caused by: java.io.IOException: Error creating the initializing the SSL Context
        
        	at org.apache.cassandra.security.SSLFactory.createSSLContext(SSLFactory.java:201)
        
        	at com.datastax.bdp.node.transport.SSLOptions.getDefault(SSLOptions.java:82)
        
        ....
        
        Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
        注: 例は、ノード間暗号化のキーストアのパスワードが正しくない場合を示しています。