これは私の初めてのJava Key Storeでの作業ですが、少し難しかったです。私はServerA
をServerB
に送るログを持っています。私はログをトラフィッキングする安全ではないhttp
通信を確立することができます。しかし、JKS
を組み込んで、https
を使用して安全な通信を確立すると、何も受信されないようです。ServerB
JKS
を使用して2台のサーバーを安全に通信するにはどうすればよいですか? ServerA
でキーストアを作成サーバ間通信用のJava Key StoreとHTTPSが動作しない
:以下
は、私は現在、このアップのすべてを設定しています方法です
ServerA
で
が生成自己署名キーストアに証明書を
keytool -genkey \
-alias jkstest \
-keyalg RSA \
-validity 365 \
-keystore /apps/logstash/jkstest.jks
-keysize 2048
ServerA
エキス証明書で
keytool -export \
-rfc -alias jkstest \
-keystore /apps/logstash/jkstest.jks \
-file /apps/logstash/jkstest.crt
-storepass somepass
私は
ServerA
から
ServerB
にログを送信する
logstashを使用しています
ServerB
scp /apps/logstash/jkstest.jks [email protected]:/apps/logstash/jkstest.jks
へServerA
コピーキーストアから
。これは、ダウンロードしてインストールするためのかなり単純なアプリケーションです。重要な/ imporant部分はJKSが使用されている構成である:ログの送信と受信を開始する
ServerA
config.conf
input {
file {
path => "/var/log/apache2/error.log"
start_position => beginning
}
}
output {
stdout { codec => rubydebug { metadata => true } }
http {
http_method => "post"
codec => "json_lines"
url => "https://serverb.com:5000/"
ssl_certificate_validation => true
cacert => "/apps/logstash/jkstest.crt"
}
}
ServerB
config.conf
input {
http {
port => 5000
codec => json
ssl => true
keystore => "/apps/logstash/jkstest.jks"
keystore_password => "hardt0gu355"
}
}
output {
stdout { codec => rubydebug { metadata => true } }
}
:
ServerA
start logstash
bin/logstash agent -f config.conf -l logstash.log
ServerB
あなたが生成された証明書を持つconfigure a truststore証明書を信頼されなければならないとして、サーバーA上の開始
bin/logstash agent -f config.conf -l logstash.log
'ssl_certificate_validation => false'は自己署名証明書なので完全に検証することはできません。 – Redlab
私はこれらのうちの1つを行って以来、長い時間が経ちましたが、自己署名証明書を使用しているため、証明書チェーンを「信頼できる証明書チェーン」としてインポートすることはできず、あらかじめパッケージ化された信頼できる証明機関。だから、他のサーバーが信頼するためには、おそらく両方の側で信頼できる証明書として手動でインポートする必要がありますか? – djangofan
@djangofan私はそれに似たようなことをしても、他のサーバーでは何も受信されないかどうかはわかりません。あなたがそれをやったやり方がまだ機能しているかどうかをあなたが最後にテストできますか? – MaryCoding