Я очень-безуспешно пытаюсь использовать 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, который ожидал найти, но этого не произошло (потому что его там не было).
И это один из тех чудесно сообщения, которыми так хорошо известны криптосистемы: они абсолютно точны, но при этом совершенно загадочны для непосвященных. (И, честно говоря, криптосистемы не любят разглашать информацию ни о чем, поскольку они предполагают, что человек, с которым они разговаривают, несомненно, злой Еваа не милая Алиса или Боб.)