Назад | Перейти на главную страницу

OpenVPN: самоподписанный сертификат в цепочке

Я очень-безуспешно пытаюсь использовать TunnelBlick (заведомо исправный клиент OS / X OpenVPN 2.2.1) для подключения с использованием сертификатов. Здесь (продезинфицировано) я получаю сообщение об ошибке:

2012-01-11 11:18:26 TLS: Initial packet from **.**.**.**:1194, sid=17a4a801 5012e004
2012-01-11 11:18:26 VERIFY ERROR: depth=1, error = самоподписанный сертификат в цепочке сертификатов: /C=US/ST=**/L=**/O=**/CN=**/emailAddress=**
2012-01-11 11:18:26 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
2012-01-11 11:18:26 TLS Error: TLS object -> incoming plaintext read error
2012-01-11 11:18:26 TLS Error: TLS handshake failed
2012-01-11 11:18:26 TCP/UDP: Closing socket

Теперь вот загвоздка. Я создал CSR себя чтобы запросить этот сертификат, используя ca.crt файл, предоставленный мне другой стороной (на самом деле, они сделали это дважды, чтобы убедиться).

Соответствующие записи в конфигурации клиента:

ca   ca.crt
cert my.crt
key  my.key

и, кроме того... Я могу проверить ключи таким образом:

openssl verify -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=**
issuer= (тот же самый)

тогда как в сообщении об ошибке от OpenVPN ST = не точно так же:

VERIFY ERROR: depth=1, error=self signed certificate in certificate chain: /C=US/ST=Вирджиния/L=**/O=**/CN=**/emailAddress=**

«VA» не совсем равно «Вирджиния».

Просто чтобы полностью закрыть эту тему: это действительно была проблема. «Ca.crt», который я получил («Вирджиния»), НЕ БЫЛ на самом деле тем, который использовал мой коллега («VA»), и никто из нас в то время не заметил.

Итак ... в основном (и чисто с точки зрения непрофессионала) VPN пытался пройти вверх по цепочке полномочий в поисках ca.crt, который ожидал найти, но этого не произошло (потому что его там не было).

И это один из тех чудесно сообщения, которыми так хорошо известны криптосистемы: они абсолютно точны, но при этом совершенно загадочны для непосвященных. (И, честно говоря, криптосистемы не любят разглашать информацию ни о чем, поскольку они предполагают, что человек, с которым они разговаривают, несомненно, злой Еваа не милая Алиса или Боб.)