Certificate-Authority
將 rsyslog 與 TLS 一起使用而不生成自簽名證書
幾乎我看到的所有使用 rsyslog 的 TLS 指南都涉及生成自簽名證書並使用它。如果這些盒子已經設置了合法簽名的證書,你如何設置客戶端和伺服器來簡單地使用它?
如果您的證書是“合法的”,那麼設置它沒有太大區別。廣泛信任的證書的特點是其信任錨(也稱為根或 CA 證書)在作業系統或瀏覽器的信任儲存中播種。
假設你有
server.example.com.key
和server.example.com.csr
。如果信任鏈(例如 ca.crt、intermediate1.crt、intermediate2.crt 或所有證書串聯爲一個 chain.crt),您的 CA 會將您的證書server.example.com.crt
和所有導致您的證書的內容髮回給您。有些人讚成client.crt
和client.key
。client.crt
與伺服器的證書具有相同的信任鏈。設置自簽名證書的最大區別在於您可能必須在 CA 文件中包含中間證書。如果中間體存在於系統的信任庫中,您所要做的就是將 rsyslog 指向那裡(Ubuntu 上的 /etc/ssl/certs/ca-certificates.crt,YMMV)
伺服器配置是這樣完成的:
# 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