Certificate-Authority

將 rsyslog 與 TLS 一起使用而不生成自簽名證書

  • February 9, 2016

幾乎我看到的所有使用 rsyslog 的 TLS 指南都涉及生成自簽名證書並使用它。如果這些盒子已經設置了合法簽名的證書,你如何設置客戶端和伺服器來簡單地使用它?

如果您的證書是“合法的”,那麼設置它沒有太大區別。廣泛信任的證書的特點是其信任錨(也稱為根或 CA 證書)在作業系統或瀏覽器的信任儲存中播種。

假設你有server.example.com.keyserver.example.com.csr。如果信任鏈(例如 ca.crt、intermediate1.crt、intermediate2.crt 或所有證書串聯爲一個 chain.crt),您的 CA 會將您的證書server.example.com.crt和所有導致您的證書的內容髮回給您。有些人讚成client.crtclient.keyclient.crt與伺服器的證書具有相同的信任鏈。

設置自簽名證書的最大區別在於您可能必須在 CA 文件中包含中間證書。如果中間體存在於系統的信任庫中,您所要做的就是將 rsyslog 指向那裡(Ubuntu 上的 /etc/ssl/certs/ca-certificates.crt,YMMV)

文件(此處此處此處)很好地總結瞭如何設置 TLS:

伺服器配置是這樣完成的:

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /path/to/chain.crt
$DefaultNetstreamDriverCertFile /path/to/server.example.com.crt
$DefaultNetstreamDriverKeyFile /path/to/server.example.com.key

$ModLoad imtcp # load TCP listener
$InputTCPServerStreamDriverAuthMode x509/name
$InputTCPServerStreamDriverPermittedPeer *.example.com
$InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode
$InputTCPServerRun 10514 # start up listener at port 10514

客戶端的配置應如下所示:

# certificate files
$DefaultNetstreamDriverCAFile /path/to/chain.crt
$DefaultNetstreamDriverCertFile /path/to/client.crt
$DefaultNetstreamDriverKeyFile /path/to/client.key

# set up the action
$DefaultNetstreamDriver gtls # use gtls netstream driver
$ActionSendStreamDriverMode 1 # require TLS for the connection
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer server.example.com
*.* @@(o)server.example.com:10514 # send (all) messages

引用自:https://serverfault.com/questions/666827