Устранение ошибки рукопожатия sslv3 при попытке использовать сертификат клиента
Я пытаюсь подключиться к сервису, который требует сертификат для авторизации. Процесс в том, что я отправляю сервису файл CSR. Служба подписывает CSR и отправляет мне сертификат, который я использую для подключения.
Я сгенерировал CSR с помощью следующей командной строки:
openssl req -new -nodes -newkey rsa:2048 -keyout cert.key -out cert.csr
Я взял содержимое cert.csr и отправил им. Они генерируют сертификат клиента, и я получил обратно файл PEM.
Теперь я пытаюсь подключиться, используя их файл сертификата в SSLCERT для curl () и предоставляя закрытый ключ от cert.key как CURLOPT_SSLKEY - (который я получил на шаге 1).
Сбой с:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Что я делаю не так в этом процессе?
Оно работает когда я пытаюсь получить тестовый сертификат, включая закрытый ключ от службы (самозаверяющий сертификат). Но когда я использую сертификат, сгенерированный из моего CSR, а затем использую мой закрытый ключ в качестве ключа, происходит ошибка при сбое рукопожатия.
Так что я знаю, что это не имеет никакого отношения к тому, что openssl / curl не поддерживает v3 / TLS и т. Д., Что другие, когда искали решение, обнаружили, что их проблема была.
Вот что я бегу:
curl -i -v --request POST https://service.com/ --cert clientcert.pem --key private_key.pem --cert-type pem --tlsv1.1 --insecure
* Connected to service.com (1xx.xxx.xxx.xx) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS handshake, CERT verify (15):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS alert, Server hello (2):
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection 0
Запуск следующих версий: curl 7.35.0 (x86_64-pc-linux-gnu) libcurl / 7.35.0 OpenSSL / 1.0.1f zlib / 1.2.8 libidn / 1.28 librtmp / 2.3