尝试在Rsyslog服务器上设置TLS,s_client连接但没有证书,挂起

时间:2018-03-14 23:20:35

标签: ssl openssl tls1.2 rsyslog

我正在尝试使用各种教程在rsyslog服务器上设置TLS,包括rsyslog的官方文档:http://www.rsyslog.com/doc/v8-stable/tutorials/tls.html

我正在运行rsyslog-8.33.1以及相同版本的rsyslog-gnutls。 OS是ec2上的amazon linux v2017.09。

由于我使用的特定系统日志客户端无法使用自签名证书,因此我正在使用我们域名的CA进行签名。我已经设置了密钥,证书并抓住了CA链(因为有根证书的中间证书)并设置rsyslog.conf就像很多教程告诉我的那样:

# RsyslogGnuTLS
$DefaultNetstreamDriver gtls

$DefaultNetstreamDriverCAFile /etc/pki/tls/CA-chain.crt
$DefaultNetstreamDriverCertFile /etc/pki/tls/<hostname>.crt
$DefaultNetstreamDriverKeyFile /etc/pki/tls/<hostname>.key
$ActionSendStreamDriverMode 1 # TLS mode only
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer *
$InputTCPServerRun 6514

让rsyslog开始没有抱怨(经过一些kerjigering)。

这是一个ec2主机,端口6514向全世界开放。现在,我正在使用openssl s_client进行测试,我无法从机器上获取证书。

[me@my_host ~]$ openssl s_client -connect ec2-<ip>.us-west-2.compute.amazonaws.com:6514
CONNECTED(00000003)

(hangs)

...并且它永远空白地挂起,直到我杀死了rsyslog服务器,此时它错误地显示“没有可用的对等证书”。

我知道rsyslog服务器有效。当双方都关闭TLS时,它从syslog客户端获取6514的日志。

我已经在rsyslog.conf中尝试了几乎所有变量的组合,而且我的智慧结束了。我也尝试使用机器附带的/ etc / pki / tls / certs中的cert / key / CA软件包,没有骰子。

1 个答案:

答案 0 :(得分:0)

想出来,我使用了错误的变量 - 客户端变量而不是服务器端变量,它们在结尾看起来很相似。我应该一直在使用

$InputTCPServerStreamDriverAuthMode x509/name
$InputTCPServerStreamDriverPermittedPeer *
$InputTCPServerStreamDriverMode 1

在服务器上而不是

$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer *
$ActionSendStreamDriverMode 1. 

只需要用新鲜的眼睛看它。