client didn't send a cert

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
exxtra_noise
рядовой
Сообщения: 22
Зарегистрирован: 2009-05-15 4:21:11

client didn't send a cert

Непрочитанное сообщение exxtra_noise » 2012-02-27 15:55:19

Доброго времени суток!
Есть почтовый сервер Postfix+Dovecot2+MySQL. Авторизация через Dovecot SASL. Потребовалось прикрутить TLS.
Сертификаты делал так:
самоподписанный сертификат

Код: Выделить всё

openssl req -new -newkey rsa:4096 -nodes -keyout ./ca/ca.key -x509 -days 3650 -subj /C=RU/O=IP/CN=mail.home.local/emailAddress=test@home.local -out ./ca/ca.crt
клиентский сертификат

Код: Выделить всё

openssl req -new -newkey rsa:4096 -nodes -keyout ./clients/client_test.key -subj /C=RU/O=IP/CN=test/emailAddress=test@home.local -out ./clients/client_test.csr;
openssl ca -config ca.config -in ./clients/client_test.csr -out ./clients/client_test.crt -batch;
openssl pkcs12 -export -in ./clients/client_test.crt -inkey ./clients/client_test.key -certfile ./ca/ca.crt -out ./clients/client_test.p12 -passout pass:test
Настройки tls в dovecot и postfix:

Код: Выделить всё

# doveconf -n
ssl_ca = </etc/ssl/cert/ca/ca.crt
ssl_cert = </etc/ssl/cert/ca/ca.crt
ssl_key = </etc/ssl/cert/ca/ca.key
# Request client to send a certificate. If you also want to require it, set
# auth_ssl_require_client_cert=yes in auth section.
ssl_verify_client_cert = yes
auth_ssl_require_client_cert = yes

# postconf -n
smtpd_enforce_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = private/auth
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_CAfile = /etc/ssl/cert/ca/ca.crt
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/cert/ca/ca.crt
smtpd_tls_key_file = /etc/ssl/cert/ca/ca.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_wrappermode = yes
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
Скармливаю client_test.p12 почтовому клиенту (пробовал The BAT и Mozilla Thunderbird), но в ответ получаю:

Код: Выделить всё

# tail /var/log/maillog
Feb 27 21:46:11 mail postfix/smtpd[8779]: connect from 192.168.2.101[192.168.2.101]
Feb 27 21:46:11 mail postfix/smtpd[8779]: setting up TLS connection from 192.168.2.101[192.168.2.101]
Feb 27 21:46:11 mail postfix/smtpd[8779]: Anonymous TLS connection established from 192.168.2.101[192.168.2.101]: TLSv1 with cipher AES256-SHA (256/256 bits)
Feb 27 21:46:11 mail postfix/smtpd[8779]: warning: 192.168.2.101[192.168.2.101]: SASL PLAIN authentication failed: Client didn't present valid SSL certificate
Feb 27 21:46:11 mail postfix/smtpd[8779]: warning: 192.168.2.101[192.168.2.101]: SASL LOGIN authentication failed: Client didn't present valid SSL certificate
Feb 27 21:46:11 mail postfix/smtpd[8779]: NOQUEUE: reject: RCPT from 192.168.2.101[192.168.2.101]: 554 5.7.1 <192.168.2.101[192.168.2.101]>: Client host rejected: Access denied; from=<test@home.local> to=<test@home.local> proto=ESMTP helo=<192.168.2.101>
Feb 27 21:46:11 mail postfix/smtpd[8779]: disconnect from 192.168.2.101[192.168.2.101]
Люди добрые, направьте на путь истинный! :st:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: client didn't send a cert

Непрочитанное сообщение Mikl » 2012-02-28 9:55:03

smtpd_tls_cert_file почитай...

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: client didn't send a cert

Непрочитанное сообщение Mikl » 2012-02-28 12:42:00

не то, а правки нет....

Аватара пользователя
exxtra_noise
рядовой
Сообщения: 22
Зарегистрирован: 2009-05-15 4:21:11

Re: client didn't send a cert

Непрочитанное сообщение exxtra_noise » 2012-02-29 7:00:53

Я сертификаты неправильно сделал или что? Подскажите что не так. :cz2:

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: client didn't send a cert

Непрочитанное сообщение Mikl » 2012-02-29 9:13:47

exxtra_noise писал(а):Я сертификаты неправильно сделал или что? Подскажите что не так. :cz2:
да фиг его знает) я делал сертификаты утилиткой CA.pl из состава openssl.

Аватара пользователя
exxtra_noise
рядовой
Сообщения: 22
Зарегистрирован: 2009-05-15 4:21:11

Re: client didn't send a cert

Непрочитанное сообщение exxtra_noise » 2012-02-29 9:52:21

Не мог бы ты описать весь процесс и где этот скрипт взять можно. У меня на FreeBSD всё. Хотелось бы чтобы аутентификация была по сертификату.

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: client didn't send a cert

Непрочитанное сообщение Mikl » 2012-02-29 10:16:20

на 8.2-RELEASE лежит тут:
/usr/local/openssl/misc
# ls
CA.pl CA.sh c_info c_name
CA.pl-old c_hash c_issuer tsget
#
usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify