Я пытаюсь очень безуспешно использовать TunnelBlick
(клиент OS / X OpenVPN 2.2.1, который известен как хороший) для подключения с использованием сертификатов. Вот (очищенное) сообщение об ошибке, которое я получаю:
2012-01-11 11:18:26 TLS: исходный пакет от **. **. **. **: 1194, sid = 17a4a801 5012e004 2012-01-11 11:18:26 ОШИБКА ПРОВЕРКИ: глубина = 1, ошибка = самозаверяющий сертификат в цепочке сертификатов: / C = US / ST = ** / L = ** / O = ** / CN = ** / EMAILADDRESS = ** 2012-01-11 11:18:26 TLS_ERROR: BIO прочитал ошибку tls_read_plaintext: ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата 2012-01-11 11:18:26 Ошибка TLS: объект TLS -> ошибка чтения входящего открытого текста 2012-01-11 11:18:26 Ошибка TLS: сбой квитирования TLS 2012-01-11 11:18:26 TCP / UDP: Закрытие сокета
Теперь вот руб. Я создал КСО себя , чтобы запросить этот сертификат, используя ca.crt файл предоставленную мне другую сторону (на самом деле, они сделали это дважды , просто чтобы убедиться).
Соответствующие записи в конфигурации клиента:
ca ca.crt
cert my.crt
key my.key
и, кроме того ... я могу проверить ключи следующим образом:
openssl проверяет -CAfile ca.crt my.crt
my.crt: ОК
Хорошо, теперь я полностью озадачен и озадачен. На данный момент я знаю, что CSR и ключ были созданы с использованием правильного CSR. Фактически, вот та самая команда, которая сделала это:
openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key
Я также знал, чтобы сделать это:
openssl x509 -subject -issuer -noout -in ca.crt
...
(Мигает!)
Я только что нашел это?
Вывод этой команды выглядит следующим образом: (отредактировано несколько)
subject = / C = US / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = ** эмитент = (то же самое)
тогда как в сообщении об ошибке от OpenVPN ST = не совсем то же самое:
ОШИБКА ПРОВЕРКИ: глубина = 1, ошибка = самозаверяющий сертификат в цепочке сертификатов: / C = США / ST = Вирджиния / L = ** / O = ** / CN = ** / emailAddress = **
«VA» не совсем совпадает с «Вирджиния».
openssl s_client -connect host:port -showcerts
и сравните отпечаток полученного сертификата сopenssl x509 -noout -text -in ca.crt
.Ответы:
Просто чтобы полностью завершить эту тему: проблема действительно была. Полученный мной «ca.crt» («Вирджиния») на самом деле не был тем, который использовал мой коллега («VA»), и никто из нас не заметил в то время.
Итак ... в основном (и чисто с точки зрения непрофессионала) VPN пытался пройтись по цепочке полномочий, ища причину, которую он ожидал найти, но так и не сделал (потому что ее там не было).
И это одно из тех замечательных сообщений, которыми так хорошо известны криптосистемы: совершенно точные, и в то же время совершенно загадочные для непосвященных. (И, честно говоря, криптосистемы не любят разглашать информацию о чем-либо, поскольку предполагают, что человек, с которым они разговаривают, - это, несомненно, злая Ева , а не милая Алиса или Боб.)
источник