【发布时间】:2016-01-19 19:55:34
【问题描述】:
我的设置如下:根 CA-> 中间 CA -> 客户端证书和服务器证书。
在客户端,我有一个目录,其中包含 client.crt、client.key 和指向 chain.crt 的符号哈希链接。 chain.crt 包含中间证书,后跟根证书(串联)。
在服务器端,我有一个目录,其中包含 server.crt、server.key 和指向 chain.crt 的符号哈希链接。 chain.crt 和上面描述的一样。
当我运行 openssl 验证 -CApath certs.d client.crt。它返回和 OK 状态。当我在 server.crt 上运行它时也会发生同样的事情。
当我尝试将日志从客户端发送到服务器时,我在客户端收到错误消息,指出无法验证根证书,因为它是自签名的。
客户端上的配置是:
destination d_server {
syslog( "some ip" port(some port) transport("tls")
tls( peer-verify(required-trusted)
cipher-suite(some cipher)
ca-dir(".../certs.d/")
key-file(".../certs.d/client.key")
cert-file(".../certs.d/client.crt") ) );
};
有谁知道我该如何解决这个问题?
【问题讨论】:
-
您好,您使用的是哪个版本的 syslog-ng?我记得只有 3.5 左右才支持链式证书。
-
我使用的是 syslog-ng 版本 3.5.4.1。
-
在生成哈希并创建符号链接时,是否添加了“.0”后缀?像这样 - 84d92a45.0.
-
是的,我做到了。我认为问题与包含超过 1 个证书的文件有关,但只有 1 个链接?如果文件中有多个证书,我希望哈希函数产生超过 1 个。
-
我在我们的文档中写了一篇关于这个的文章 - assembla.com/spaces/LogZillaWiki/wiki/Setting_Up_TLS_Tunnels。也许其中有一个步骤可能会有所帮助。