java - 将 Java syslog 客户端配置为信任自签名证书

标签 java ssl syslog cloudbees

我正在使用 CloudBees Java syslog client 进行评估读取日志文件并将其内容发送到我已经构建的系统日志接收器。
我的理解是它的TcpSyslogMessageSender可用于使用 SSL 证书通过 TLS 发送消息。但是我在任何地方都看不到任何“信任”配置,这让我想知道这个库是否完全支持自签名(非 CA 签名)证书?
如果我在另一端的 syslog 接收器向该客户端提供自签名证书,我该如何配置 TcpSyslogMessageSender相信它?

最佳答案

创建 SSLcontext 并在 TcpSyslogMessageSender 中设置
为了构建 ssl 上下文,我使用了 org.apache.httpcomponents:httpcore,因为使用 java 工具构建 ssl 上下文更加困难
例子

public class SyslogTestCloudBees {
        public static void main(String[] args) throws IOException, CertificateException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
            //Initialization 
            TcpSyslogMessageSender messageSender = new TcpSyslogMessageSender();
            messageSender.setDefaultMessageHostname("myhostname"); 
            messageSender.setDefaultAppName("myapp");
            messageSender.setDefaultFacility(Facility.USER);
            messageSender.setDefaultSeverity(Severity.INFORMATIONAL);
            messageSender.setSyslogServerHostname("127.0.0.1");
            messageSender.setSyslogServerPort(1234);
           
            //SSL part
            SSLContext sslContext = SSLContextBuilder.create()
                    .loadTrustMaterial(new File("path/to/truststore"), 
                                                "truststorepassword".toCharArray())
                    .build();

            messageSender.setSSLContext(sslContext);
            messageSender.setSsl(true);

             // send a Syslog message
            messageSender.sendMessage("This is a test message");
        }
}

关于java - 将 Java syslog 客户端配置为信任自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66173369/

相关文章:

java - 字数统计给出的计数与原始计数不同

node.js - 在 localhost 上设置 (https) SSL 以进行 meteor 开发

node.js - nodejs tls 模块,用于无需浏览器的服务器-客户端通信

Django 在 HTTPS 上显示 500 内部服务器错误

linux - 为什么 syslog-ng 无法使用 SELinux TYPE syslogd_exec_t 启动?

java - 如何覆盖默认的 JobLauncher? Spring批注

java - 客户端未连接到服务器

node.js - 需要对带有 Node.js 的 SysLog 的建议

syslog - 如何将 rsyslog 消息重定向到其他路径而不是/var/log

java - JavaFX 中的 DataFormat 已存在错误 (IllegalArgumentException)