Debian

除非 ssl_verify_client_cert 設置為 yes,否則 Dovecot 不會發送 CA 文件

  • October 25, 2021

我有一個配置了使用者密碼登錄的 Postfix / Dovecot / MySQL 電子郵件伺服器。除了 Dovecot 沒有將鏈 CA 文件發送到客戶端之外,一切正常。我有

ssl_cert = </etc/apache2/ssl/apache.crt
ssl_key = </etc/apache2/ssl/apache.key
ssl_ca = </etc/apache2/ssl/apache.pem

在我的 /etc/dovecot/conf.d/10-ssl.conf 中。但是,不會發送 CA 文件。

openssl s_client -connect server.com:143 -starttls imap
CONNECTED(00000003)
depth=0 CN = server.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = server.com
verify error:num=21:unable to verify the first certificate
verify return:1
...

如果我添加ssl_verify_client_cert = yes,一切正常。

openssl s_client -connect server.com:143 -starttls imap
CONNECTED(00000003)
depth=2 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Root Certificate Authority - G2
verify return:1
depth=1 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", OU = http://certs.starfieldtech.com/repository/, CN = Starfield Secure Certificate Authority - G2
verify return:1
depth=0 CN = server.com
verify return:1

我沒有使用客戶端證書授權。我是否誤解了 Dovecot 配置或者這是預期的行為?我應該這樣離開嗎?

解決了我自己的問題。您需要將證書與鏈文件合併。

cat apache.crt apache.pem > dovecot.crt

然後你就擁有

ssl_cert = </etc/apache2/ssl/dovecot.crt
ssl_key = </etc/apache2/ssl/apache.key

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