Dovecot이 클라이언트 인증서를 거부합니다.

Dovecot이 클라이언트 인증서를 거부합니다.

클라이언트 인증서 인증을 사용하도록 dovecot을 구성했습니다. CA 인증서를 생성하고 이를 통해 클라이언트 및 서버 인증서에 서명하기 위해 CA.pl(openssl 래퍼)을 사용했습니다. (인증서 체인이 없으며 클라이언트에서 CA 인증서를 신뢰합니다.) 클라이언트 인증을 위해 인증서를 dovecot의 CA 인증서로 설정했습니다. Dovecot은 IceDove에서 인증서를 올바르게 요청하지만 "확인"을 클릭하면 "클라이언트가 유효한 SSL 인증서를 제공하지 않았습니다"라는 오류와 함께 실패합니다.

openssl을 사용하여 IMAP 연결을 수동으로 테스트하면 이 오류가 발생할 수도 있습니다.

비둘기 로프트 구성:https://gist.github.com/Xcess/71f7eeeda0a270b252f1de5d7308c0e2

CN=user1로 인증서를 시도했고[이메일 보호됨]. 모두 실패했습니다. 또한 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/[이메일 보호됨]
주체 공개 키 정보:
공개 키 알고리즘: 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 웹 서버 인증
clientAuth(1.3.6.1.5.5.7.3.2) -- TLS 웹 클라이언트 인증

nsCertTypeRFC 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

관련 정보