Dovecot 拒絕客戶證書
我已將 dovecot 配置為使用客戶端證書身份驗證。我已經使用 CA.pl(openssl 包裝器)創建 CA 證書並用它簽署客戶端和伺服器證書。(沒有證書鏈,CA 證書在客戶端中受信任)我已將證書設置為 dovecot 中的 CA 證書以進行客戶端身份驗證。Dovecot 正確地向 IceDove 請求證書,但在點擊“確定”後,它失敗並出現錯誤“客戶端沒有提供有效的 SSL 證書”。
使用 openssl 手動測試 IMAP 連接也會導致此錯誤。
鴿舍配置:https ://gist.github.com/Xcess/71f7eeeda0a270b252f1de5d7308c0e2
我嘗試了 CN=user1 和 CN=user1@domain.com 的證書。都失敗了。在 dovecot conf 中也將 common-name 設置為使用者名…沒有區別。
我不知道該怎麼做,因為這在手冊中都有說明,而且看起來非常簡單明了。但它失敗了。
謝謝
更新 1:命令輸出
openssl x509 -in certificate.crt -text -noout
:證書:數據:版本:3 (0x2) 序列號:8e:3d:9b:7c:13:35:88:b7
簽名算法:sha256WithRSAEncryption
頒發者:C=IR,ST=Isf,O=Apps4you,CN=lnxsrv2
有效性
不早於:2017 年 3 月 1 日 10:45:32 GMT
不晚於:2018 年 3 月 1 日 10:45:32 GMT
主題:C=AU,ST=Some-State,O=Internet Widgits Pty Ltd,CN=user1/emailAddress=user1 @apps4you.com
主題公鑰資訊:
公鑰算法:rsaEncryption
公鑰:(2048 位)
模數:
— 指數:65537 (0x10001)
X509v3 擴展:
X509v3 基本約束:CA:FALSE
Netscape 註釋:OpenSSL 生成的證書
X509v3 主題密鑰標識符:—
—–輸出省略—–
更新 2:這個稍作修改的配置文件也不起作用: https ://gist.github.com/Xcess/599beaec17a4a524a2acbde1b7f5c70f
更新 3:
詳細 SSL 日誌文件:
https ://gist.github.com/Xcess/f54850ecdaa6bcd044a77d133cb9b9c2
我找到了答案,所以我想我也應該在這裡發布。(正是@behrad-eslamifar做到了:)
即使您已設置 ssl_require_crl = no,您也應該將 CRL 附加到給予 dovecot 的 CA 證書
像這樣:
openssl ca -gencrl -out crlfile cat crlfile >> cacert.pem service dovecot restart
感謝大家的建議。<3
您需要向此證書添加 X.509 擴展以將其用於客戶端身份驗證。
在
openssl.cnf
,在[ usr_cert ]
,每個openssl.conf
例子:[ usr_cert ] nsCertType = client, email
但是,據說 nsCertType 已過時,還需要添加 X.509 擴展。然後添加一個新部分:
[ xpclient_ext] extendedKeyUsage = 1.3.6.1.5.5.7.3.2
要添加擴展,您還需要
-extensions xpclient_ext
在生成證書時將選項傳遞給 openssl。RFC 3280 定義了以下擴展密鑰使用目的:
serverAuth (1.3.6.1.5.5.7.3.1) – TLS Web 伺服器認證
clientAuth (1.3.6.1.5.5.7.3.2) – TLS Web 客戶端認證
請注意,我建議同時添加
nsCertType
和 RFC 3280 擴展。一些軟體,尤其是 PfSense,仍然會檢查nsCertType
.