ssl - log4j2-config.xml 中的 Log4j2 TCP-SSL Appender 配置
问题描述
我打算用 TCP-SSL Appender 配置 Log4j2 Socket Appender。
这是我在 Log4j2 网站上看到的配置。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Socket name="socket" host="localhost" port="9500">
<JsonLayout properties="true"/>
<SSL>
<KeyStore location="log4j2-keystore.jks" password="guessme!"/>
<TrustStore location="truststore.jks" password="guessme!"/>
</SSL>
</Socket>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="socket"/>
</Root>
</Loggers>
</Configuration>
在这个配置中,Keystore
和TrustStore
文件包含什么?我没有这些文件。
我想将我的日志发送到 Splunk TCP 端口。
我是否需要truststore.jks
从我的 Splunk 服务器创建 SSL 证书,以便我的服务器信任 Splunk?
什么是log4j2-keystore.jks
,在哪里可以下载?我需要一个KeyStore
文件吗?里面应该放什么?Splunk 是否需要相应的公钥或可信证书?
解决方案
keystore
如果您拥有并想要使用它们,则包含您的个人密钥和公共密钥。它可以完全排除在外。
包含服务器的truststore
证书。您可以像这样下载并打包为 jks:
$ echo -n | openssl s_client -connect log-server.tld:5010 -servername log-server.tld \
| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee "server.crt"
$ keytool -import -alias log-server-certificate-alias -keystore log-server-cert.jks -file server.crt
后者提示您输入将在日志配置中使用的密码。
我在 logstash 遇到了类似的问题,并在此处发布了我的发现的简短摘要:https ://rekowski.info/home/technical/java/log4j2-socket-appender-logstash-kibana-ssl-tls.md
推荐阅读
- python - 通过将两个给定范围内的两个随机整数相乘来实现 n 的概率
- html - 需要帮助创建搜索视图以及如何在我创建的 DB 的 HTML 页面中应用 - Django
- java - 为什么编译后我的奇数和偶数变量没有增加?输出是偶数和奇数是 0
- python - 如何使用 python 对从 txt 文件中读取的两列进行排序?
- flutter - 如何使用 Http post 实现 Flutter 登录认证和注册
- go - 使用 json.decoder 读取请求正文而不耗尽它
- awk - 按照模式提取字符串(grep)
- c# - 如何最小起订量为空或空异常
- c# - 在 WinUI3 中使用 ContentPresenter 创建自定义按钮
- reactjs - React StoryBook - 动态组件不起作用