Я дуже невдало намагаюся використовувати 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: помилка читання tls_read_plaintext помилка: помилка: 14090086: SSL підпрограми: SSL3_GET_SERVER_CERTIFICATE: сертифікат не підтверджено 2012-01-11 11:18:26 TLS Помилка: TLS object -> помилка читання в прямому тексті 2012-01-11 11:18:26 Помилка TLS: Помилка передачі TLS 2012-01-11 11:18:26 TCP / UDP: Розетка закриття
Тепер ось рубець. Я створив CSR сам, щоб запросити цей сертифікат, використовуючи файл ca.crt, наданий мені іншою стороною (насправді вони зробили це двічі, щоб переконатися).
Відповідні записи в конфігурації клієнта:
ca ca.crt
cert my.crt
key my.key
і, крім того ... я можу перевірити ключі таким чином:
openssl перевірити -CAfile ca.crt my.crt
my.crt: Гаразд
Гаразд, тож тепер я досконало загаданий і спотиканий. На даний момент я знаю, що КСВ та ключ були створені за допомогою належного КСВ. Насправді ось та сама команда, яка це виконала:
openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key
Я також знав це робити:
openssl x509 -subject -issuer -noout -in ca.crt
...
(моргай!)
Я щойно це знайшов ?
Вихід цієї команди виглядає приблизно так: (дещо відредагований)
тема = / C = US / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = ** емітент = (те саме)
тоді як у повідомленні про помилку від OpenVPN ST = точно не збігається:
ВЕРИФІЧНА ПОМИЛКА: глибина = 1, помилка = самопідписаний сертифікат у ланцюжку сертифікатів: / C = US / ST = Virginia / L = ** / O = ** / CN = ** / emailAddress = **
"VA" точно не дорівнює "Virginia".
openssl s_client -connect host:port -showcerts
і порівняйте відбиток мініатюри отриманого сертифіката зopenssl x509 -noout -text -in ca.crt
.