Про SSL часть 3: как проверить сертификат на почтовом сервере

Таким вопросом озадачился.
Собственно, ответ:

настройки постфикса можно проверить так:
openssl s_client -CApath /etc/ssl/certs/ -connect mail.example.com:25 -starttls smtp
в моем случае сервер слушает только 25 порт, а шифрование работает через startssl.
на что, в случае успеха, должен быть ответ:


root@mail:/etc/postfix#openssl s_client -CApath /etc/ssl/certs/ -connect mail.example.com:25 -starttls smtp
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority
verify return:1
depth=1 C = RU, ST = Moscow, L = Moscow, O = RU-Center (\D0\97\D0\90\D0\9E \D0\A0\D0\B5\D0\B3\D0\B8\D0\BE\D0\BD\D0\B0\D0\BB\D1\8C\D0\BD\D1\8B\D0\B9 \D0\A1\D0\B5\D1\82\D0\B5\D0\B2\D0\BE\D0\B9 \D0\98\D0\BD\D1\84\D0\BE\D1\80\D0\BC\D0\B0\D1\86\D0\B8\D0\BE\D0\BD\D0\BD\D1\8B\D0\B9 \D0\A6\D0\B5\D0\BD\D1\82\D1\80), CN = RU-CENTER High Assurance Services CA 2
verify return:1
depth=0 C = RU, postalCode = 685000, ST = example, L = Magadan, street = "example", O = example, OU = InstantSSL Pro, CN = mail.example.com
verify return:1
---
Certificate chain
0 s:/C=RU/postalCode=685000/ST=example/L=example/street=example/O=example/OU=InstantSSL Pro/CN=mail.example.com
i:/C=RU/ST=Moscow/L=Moscow/O=RU-Center (\xD0\x97\xD0\x90\xD0\x9E \xD0\xA0\xD0\xB5\xD0\xB3\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xB0\xD0\xBB\xD1\x8C\xD0\xBD\xD1\x8B\xD0\xB9 \xD0\xA1\xD0\xB5\xD1\x82\xD0\xB5\xD0\xB2\xD0\xBE\xD0\xB9 \xD0\x98\xD0\xBD\xD1\x84\xD0\xBE\xD1\x80\xD0\xBC\xD0\xB0\xD1\x86\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xBD\xD1\x8B\xD0\xB9 \xD0\xA6\xD0\xB5\xD0\xBD\xD1\x82\xD1\x80)/CN=RU-CENTER High Assurance Services CA 2
1 s:/C=RU/ST=Moscow/L=Moscow/O=RU-Center (\xD0\x97\xD0\x90\xD0\x9E \xD0\xA0\xD0\xB5\xD0\xB3\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xB0\xD0\xBB\xD1\x8C\xD0\xBD\xD1\x8B\xD0\xB9 \xD0\xA1\xD0\xB5\xD1\x82\xD0\xB5\xD0\xB2\xD0\xBE\xD0\xB9 \xD0\x98\xD0\xBD\xD1\x84\xD0\xBE\xD1\x80\xD0\xBC\xD0\xB0\xD1\x86\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xBD\xD1\x8B\xD0\xB9 \xD0\xA6\xD0\xB5\xD0\xBD\xD1\x82\xD1\x80)/CN=RU-CENTER High Assurance Services CA 2
i:/C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
2 s:/C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---

дальше будет еще куча текста, и в конце – ожидание smtp команды.
Внимание следует обратить на соответствие первых строк “depth=” и строк после “Certificate chain”, их количество должно быть одинаковым.
Может случиться, что этих строк вообще не будет, значит сертификат самоподписанный.

похожим образом проверяются imap и pop3s:
openssl s_client -CApath /etc/ssl/certs/ -connect mail.example.com:993
какие порты слушает данный конкретный сервер не трудно посмотреть через:
root@mail:/etc/postfix# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:10023 0.0.0.0:* LISTEN 1053/postgrey.pid -
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 9931/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 9931/dovecot
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 11238/sshd
tcp 0 0 172.16.1.2:25 0.0.0.0:* LISTEN 11100/master
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 9931/dovecot
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 922/zabbix_agentd
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 9931/dovecot

в моем случае, интересующие меня процессы это: dovecot и master.

решение подсмотрел тут: http://diff.org.ua/archives/1491

Добавить комментарий

Войти с помощью: