web-dev-qa-db-ja.com

クライアントとサーバーで同じトラストストアとキーストアを使用できますか?

TL; DR:SSL/TLS接続の両側で同じ公開鍵と秘密鍵を使用することは可能ですか?双方から信頼されていますか?

役立つ場合の詳細情報:

JavaアプリケーションがKafka 2.1に接続するようにセットアップする方法をテストしようとしています。 KafkaクラスターとJavaアプリケーションに同じキーストアとトラストストアを使用しています。つまり、接続の両側で同じ公開鍵と秘密鍵を使用しています。これは良い習慣ではないことを理解しています。構成方法を理解したことを確認したいだけです。

設定できます

listeners=PLAINTEXT://localhost:9092,SSL://localhost:9093
# This is the config style for 2.3
# listeners=HTTP://localhost:9092,HTTPS://localhost:9093
ssl.keystore.location=/path/to/kafka.keystore.jks
ssl.keystore.password=test

ssl.truststore.location: /path/to/kafka.truststore.jks
ssl.truststore.password: test

ssl.key.password=test

tLS/SSL認証を有効にするためのKafkaの一連のプロパティトラストストアとキーストアを正しく作成したと確信しています。トラストストアには、Java側とkafka側が使用している1つの公開鍵が含まれています。 Java側でも同じように、大まかに GitHubの例に従って を実行しました。

接続を確立できません。その理由を排除しようとしています。これは、接続の両側が同じ公開鍵と秘密鍵を持っているためでしょうか?

2
jeremysprofile

TLS自体には制限がなく、接続の両側で同じキーペアを使用できません。秘密鍵は秘密にしておく必要があるため(クライアントとサーバー間で共有されている場合は実際にはありません)、それでも機能するはずです。

4
Steffen Ullrich

接続の両側で同じ秘密鍵を持つことは、simetric keyを持つことと同じであり、鍵の配布チャネルとストレージが安全である限り問題ありません。

KafkaおよびJavaアプリに共有キーストアを使用している場合でも、異なるキーを使用することをお勧めします。これにより、将来的に簡単に分離できます。必要であれば。

0
Lucas