クライアント証明書認証を使用するようにdovecotを設定しました。 CA証明書を生成し、それを介してクライアント証明書とサーバー証明書に署名するためにCA.pl(opensslラッパー)を使用しました。 (証明書チェーンがなく、クライアントからCA証明書を信頼します。)クライアント認証のために、証明書をdovecotのCA証明書に設定しました。 DovecotはIceDoveから証明書を正しく要求しますが、「OK」をクリックすると「クライアントが有効なSSL証明書を提供していません」というエラーで失敗します。
opensslを使用してIMAP接続を手動でテストすると、このエラーが発生する可能性があります。
ピジョンロフトの設定:https://gist.github.com/Xcess/71f7eeeda0a270b252f1de5d7308c0e2
CN = user1で証明書を試しました。[Eメール保護]。すべて失敗しました。また、dovecot confで一般名をユーザー名に設定しても違いはありません。
マニュアルにすべて記載されており、非常にシンプルで簡単に見えるので、どうすればいいかわかりません。しかし、それは失敗しました。
ありがとう
アップデート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 =ユーザー1/[Eメール保護]
サブジェクト公開鍵情報:公開鍵アルゴリズム:
rsaEncryption
公開鍵:(2048ビット)
モジュラス:
---指数:65537(0x10001)
X509v3拡張:
X509v3基本制約:CA:FALSE
Netscape説明:OpenSSL生成
証明書識別子:---
- ----出力を省略-----
アップデート2:少し変更されたこの設定ファイルは、次のいずれでも機能しません。 https://gist.github.com/Xcess/599beaec17a4a524a2acbde1b7f5c70f
アップデート3:
詳細なSSLログファイル:
https://gist.github.com/Xcess/f54850ecdaa6bcd044a77d133cb9b9c2
答え1
クライアント認証に使用するには、この証明書に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
。
答え2
答えを見つけたので、ここにも投稿する必要があると思いました。 (正確には@behrad-eslamifarそれをしました:)
鳩に提供されているCA証明書にCRLを追加する必要があります。ssl_require_crl=noに設定した場合でも
このように:
openssl ca -gencrl -out crlfile
cat crlfile >> cacert.pem
service dovecot restart
皆様のご提案ありがとうございます。 <3