С тех пор как наш провайдер электронной почты изменил свой SSL-сертификат, клиент POP3 на базе mono отказывается подключаться к своему безопасному POP-серверу для загрузки электронной почты. Другие клиенты не имеют проблемы; например, Thunderbird и Outlook; и большинство сайтов проверки SSL, которые способны проверять нечетные порты, кроме этого . Я работал с обоими провайдерами, пытаясь точно определить проблему, но, наконец, зашел в тупик с обоими, поскольку я недостаточно разбираюсь в SSL-сертификатах, чтобы дать возможность какому-либо провайдеру понять причину ошибки.
В ходе расследования мое внимание было обращено на разницу в выводе следующих двух команд (я удалил сертификаты из вывода для удобства чтения):
echo "" | openssl s_client -showcerts -connect pop.gmail.com:995
CONNECTED (00000003)
глубина = 2 / C = США / O = GeoTrust Inc./CN=GeoTrust Global CAошибка
проверки : num = 20: невозможно получить сертификат локального эмитента
подтвердить возврат: 0
---
Цепочка сертификатов
0 с: / C = США / ST = Калифорния / L = Маунтин-Вью / O = Google Inc / CN = pop.gmail.com
я: / C = США / O = Google Inc / CN = Google Internet Authority G2
----- НАЧАТЬ СЕРТИФИКАТ -----
----- КОНЕЦ СЕРТИФИКАТА -----
1 с: / C = США / O = Google Inc / CN = Google Internet Authority G2
i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
----- НАЧАТЬ СЕРТИФИКАТ -----
----- КОНЕЦ СЕРТИФИКАТА -----
2 с: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
i: / C = US / O = Equifax / OU = Equifax Secure Certificate Authority
----- НАЧАТЬ СЕРТИФИКАТ -----
----- КОНЕЦ СЕРТИФИКАТА -----
---
Сертификат сервера
subject = / C = США / ST = Калифорния / L = Маунтин-Вью / O = Google Inc / CN = pop.gmail.com
эмитент = / C = США / O = Google Inc / CN = Google Internet Authority G2
---
Имена CA сертификатов клиентов не отправлены
---
SSL рукопожатие прочитало 3236 байт и записало 435 байт
---
Новый, TLSv1 / SSLv3, Шифр RC4-SHA
Открытый ключ сервера 2048 бит
Безопасное пересмотр поддерживается
Сжатие: НЕТ
Расширение: НЕТ
SSL-сессии:
Протокол: TLSv1
Шифр: RC4-SHA
ID сеанса: 745F84194498529B91B7D9194363CBBD23425446CF2BFF3BF5557E3C6606CA06
Session-ID-CTX:
Главный ключ: DED1AE0A44609F9D6F54626F4370ED96436A561A59F64D66240A277066322DCD2CCB9A6D198C95F4D2B0C7E6781EECD2
Key-Arg: нет
Время начала: 1397678434
Тайм-аут: 300 (сек)
Проверьте код возврата: 20 (невозможно получить сертификат местного эмитента)
---
+ OK Gpop готов для запросов от 69.3.61.10 c13mb42148040pdj
СДЕЛАНО
echo "" | openssl s_client -showcerts -connect secure.emailsrvr.com:995
CONNECTED (00000003)
глубина = 2 / C = США / O = GeoTrust Inc./CN=GeoTrust Global CAошибка
проверки : num = 19: самоподписанный сертификат в цепочке сертификатов
подтвердить возврат: 0
---
Цепочка сертификатов
0 с: / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = См. Www.rapidssl.com/resources/cps (c) 14 / OU = контроль домена подтвержден - RapidSSL (R) /CN=secure.emailsrv
i: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA
----- НАЧАТЬ СЕРТИФИКАТ -----
----- КОНЕЦ СЕРТИФИКАТА -----
1 с: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA
i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
----- НАЧАТЬ СЕРТИФИКАТ -----
----- КОНЕЦ СЕРТИФИКАТА -----
2 с: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
----- НАЧАТЬ СЕРТИФИКАТ -----
----- КОНЕЦ СЕРТИФИКАТА -----
---
Сертификат сервера
subject = / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = См. www.rapidssl.com/resources/cps (c) 14 / OU = контроль домена подтвержден - RapidSSL (R) /CN=secure.emailsrv.com
эмитент = / C = US / O = GeoTrust, Inc./CN=RapidSSL CA
---
Имена CA сертификатов клиентов не отправлены
---
SSL рукопожатие прочитало 3876 байт и записало 319 байт
---
Новый, TLSv1 / SSLv3, шифр DHE-RSA-AES256-SHA
Открытый ключ сервера 2048 бит
Безопасное пересмотр поддерживается
Сжатие: НЕТ
Расширение: НЕТ
SSL-сессии:
Протокол: TLSv1
Шифр: DHE-RSA-AES256-SHA
Идентификатор сеанса: 3F4EE3992B46727BE2C7C3E76A9A6A8D64D66EE843CB1BB17A76AE2E030C7161
Session-ID-CTX:
Главный ключ: 016209E50432EFE2359DB73AB527AF718152BFE6F88215A9CE40604E8FF2E2A3AC97A175F46DF737596866A8BC8E3F7F
Key-Arg: нет
Время начала: 1397678467
Тайм-аут: 300 (сек)
Проверьте код возврата: 19 (самозаверяющий сертификат в цепочке сертификатов)
---
СДЕЛАНО
Я пытался понять, имеет ли это смысл, потому что когда -CApathопция включена, команды не выдают никаких ошибок:
openssl s_client -CApath /etc/ssl/certs -showcerts -connect secure.emailsrvr.com:995
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = "GeoTrust, Inc.", CN = RapidSSL CA
verify return:1
depth=0 serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ/dD, OU = 4159320284, OU = See www.rapidssl.com/resources/cps (c)14, OU = Domain Control Validated - RapidSSL(R), CN = secure.emailsrvr.com
verify return:1
...
openssl s_client -CApath /etc/ssl/certs -showcerts -connect pop.gmail.com:995
CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = pop.gmail.com
verify return:1
...
Я также могу -CAfileуспешно использовать эту опцию после загрузки сертификата CAfile непосредственно из GeoTrust.
Тем не менее, Fog Creek, похоже, считает, что проблема связана с сертификатом, потому что они безуспешно пытались добавить сертификат в Trustмагазин моно . Я не согласился бы с ними, но (как уже упоминалось выше), хотя большинство контроллеров SSL либо не проверяют порт 995, либо успешно выполняют попытку, я обнаружил, что эта страница выдает ошибку SSL 7.
Правильно ли я интерпретирую вывод, чтобы означать, что в сертификате нет ничего плохого?
openssl s_client, по умолчанию не импортирует корневые сертификаты. Попробуйте вместо этого:, openssl s_client -connect secure.emailsrvr.com:995 -showcerts -CApath /etc/ssl/certsи вы, вероятно, обнаружите, что самоподписанная ошибка исчезает.