クライアント証明書を使用しようとしたときのsslv3アラートハンドシェイクの失敗の解決

カレム

承認のために証明書が必要なサービスに接続しようとしています。プロセスは、サービスにCSRファイルを送信することです。サービスはCSRに署名し、接続に使用する証明書を送信します。

  1. 次のコマンドラインでCSRを生成しました。

    openssl req -new -nodes -newkey rsa:2048 -keyout cert.key -out cert.csr
    
  2. cert.csrの内容を取得して送信しました。彼らはクライアント証明書を生成し、私はPEMファイルを取り戻しました。

  3. ここで、curl()用にSSLCERTの証明書ファイルを使用して接続し、cert.keyからの秘密鍵をCURLOPT_SSLKEYとして提供しようとしています-(手順1で取得しました)。

  4. 失敗する: 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

dave_thompson_085

明確な答えではありませんが、コメントに収まらないほどです。

私は、彼らがあなたに間違った発行者(彼らのサーバーそれに対してより具体的なアラートコードを使用する可能性があります)または間違った件名を持っている証明書を与えたと仮定します私たちは、証明書は、あなたのPrivateKeyと一致して知っている-の両方があるためcurlopenssl client不一致文句なしでそれらをペアリング。ただし、実際には、目的のCAと一致するかどうかはわかりません。curlはopensslとopensslを使用しているため、SSLクライアントは構成済みのクライアント証明書がcertreq.CAと一致することを強制しません。

やるopenssl x509 <clientcert.pem -noout -subject -issuer働くテストP12からの証明書に同じ。実行openssl s_client(または実行したものを確認)して、以下を確認しますAcceptable client certificate CA namesそこにある名前またはそれらの1つは、証明書の発行者と(正確に!)一致する必要があります。そうでない場合は、それが問題である可能性が高く、CSRを正しい場所に正しい方法で提出したことを彼らに確認する必要があります。おそらく、彼らは異なる地域、ビジネスライン、テストと製品、アクティブと保留などで異なる体制を持っています。

証明書の発行者がdesiredCAと一致する場合は、そのサブジェクトを機能している(test-P12)ものと比較します。それらは同様の形式ですか?動作中のコンポーネントに、あなたのコンポーネントに存在しないコンポーネントはありますか?許可されている場合は、test-P12とまったく同じ、またはできるだけ近いサブジェクト名で新しいCSRを生成して送信し、それによってより適切に機能する証明書が生成されるかどうかを確認してください。これを行うために新しいキーを生成する必要はありませんが、必要に応じて、どの証明書がどのキーと一致するかを追跡して、それらが混同されないようにします。)それでも証明書を確認するのに役立たない場合openssl x509 <cert -noout -textKeyUsage、ExtendedKeyUsage、ポリシー、制約、さらには非標準など、サブジェクトの承認に合理的に関連する可能性のある違いがある拡張機能

他のすべてが失敗した場合は、サーバーオペレーターに問題についてログが何を言っているかを尋ねるか、アクセスできる場合は自分でログを確認してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

証明書SSLv3アラートハンドシェイクの失敗を伴うURLLib

分類Dev

Python:サイトをスクレイピングするときにsslv3アラートハンドシェイクの失敗

分類Dev

エラーSSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗を解決する方法

分類Dev

アスタリスクsslv3アラートハンドシェイクの失敗

分類Dev

「sslv3アラートハンドシェイクの失敗:SSLアラート番号40」でSSLハンドシェイクが失敗する

分類Dev

「sslv3アラートハンドシェイクの失敗:SSLアラート番号40」でSSLハンドシェイクが失敗する

分類Dev

Curlは「SSLルーチン:ssl3_read_bytes:sslv3アラートハンドシェイクの失敗」を提供します

分類Dev

curl sslv3アラートハンドシェイクの失敗を修正するにはどうすればよいですか?

分類Dev

SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗

分類Dev

DocuSignサンドボックス接続でsslv3アラートハンドシェイクの失敗が発生しています

分類Dev

Boost Beastハンドシェイク:sslv3アラートハンドシェイク失敗エラー

分類Dev

Mosquitto TLS / SSL SSL3_READ_BYTES:sslハンドシェイクの失敗、エラー:成功およびsslv3アラート

分類Dev

NGINXキャッシングプロキシがSSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗で失敗する

分類Dev

SSLルーチンで失敗するPayPalIPN確認応答:SSL3_READ_BYTES:sslv3アラートハンドシェイクの失敗

分類Dev

Facebook SDK for PHPエラー-CurlException:35:エラー:14094410:SSLルーチン:SSL3_READ_BYTES:sslv3アラートハンドシェイクの失敗

分類Dev

Paypalはサンドボックスサーバーに接続できません。エラー14077410を返します(sslv3アラートハンドシェイクの失敗)

分類Dev

カールエラー:エラー:14077410:SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗111

分類Dev

MAMP SSLエラー:「エラー:14077410:SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗」

分類Dev

PHP cURLエラー:エラー:14077410:SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗

分類Dev

双方向SSLハンドシェイク(クライアントとサーバーの証明書)を使用してNettyを設定する

分類Dev

PHP util-api-test-tool APIスローエラー:sslv3アラートハンドシェイクの失敗

分類Dev

クライアント証明書を使用したTLSがハンドシェイクに失敗しました

分類Dev

SSLクライアント証明書okhttp3を添付します。ハンドシェイクに失敗しました

分類Dev

JavaScriptクライアントを使用して不和で1つのコマンドを送信しようとしたときの不和APIエラー[解決済み]

分類Dev

証明書を使用した Kubernetes API(NodeJS) クライアントの認証に失敗しました

分類Dev

ハンドシェイクで「クライアントリクエスト」が送信されない場合、Chromeはどのようにしてクライアント証明書を提供することを認識しますか?

分類Dev

SSLError:sslv3アラートハンドシェイクエラー

分類Dev

TLSサーバーがクライアントから証明書を受信せず、ハンドシェイクの終了に失敗する

分類Dev

XamarinAndroidを使用したクライアント証明書とのSSL通信

Related 関連記事

  1. 1

    証明書SSLv3アラートハンドシェイクの失敗を伴うURLLib

  2. 2

    Python:サイトをスクレイピングするときにsslv3アラートハンドシェイクの失敗

  3. 3

    エラーSSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗を解決する方法

  4. 4

    アスタリスクsslv3アラートハンドシェイクの失敗

  5. 5

    「sslv3アラートハンドシェイクの失敗:SSLアラート番号40」でSSLハンドシェイクが失敗する

  6. 6

    「sslv3アラートハンドシェイクの失敗:SSLアラート番号40」でSSLハンドシェイクが失敗する

  7. 7

    Curlは「SSLルーチン:ssl3_read_bytes:sslv3アラートハンドシェイクの失敗」を提供します

  8. 8

    curl sslv3アラートハンドシェイクの失敗を修正するにはどうすればよいですか?

  9. 9

    SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗

  10. 10

    DocuSignサンドボックス接続でsslv3アラートハンドシェイクの失敗が発生しています

  11. 11

    Boost Beastハンドシェイク:sslv3アラートハンドシェイク失敗エラー

  12. 12

    Mosquitto TLS / SSL SSL3_READ_BYTES:sslハンドシェイクの失敗、エラー:成功およびsslv3アラート

  13. 13

    NGINXキャッシングプロキシがSSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗で失敗する

  14. 14

    SSLルーチンで失敗するPayPalIPN確認応答:SSL3_READ_BYTES:sslv3アラートハンドシェイクの失敗

  15. 15

    Facebook SDK for PHPエラー-CurlException:35:エラー:14094410:SSLルーチン:SSL3_READ_BYTES:sslv3アラートハンドシェイクの失敗

  16. 16

    Paypalはサンドボックスサーバーに接続できません。エラー14077410を返します(sslv3アラートハンドシェイクの失敗)

  17. 17

    カールエラー:エラー:14077410:SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗111

  18. 18

    MAMP SSLエラー:「エラー:14077410:SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗」

  19. 19

    PHP cURLエラー:エラー:14077410:SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクの失敗

  20. 20

    双方向SSLハンドシェイク(クライアントとサーバーの証明書)を使用してNettyを設定する

  21. 21

    PHP util-api-test-tool APIスローエラー:sslv3アラートハンドシェイクの失敗

  22. 22

    クライアント証明書を使用したTLSがハンドシェイクに失敗しました

  23. 23

    SSLクライアント証明書okhttp3を添付します。ハンドシェイクに失敗しました

  24. 24

    JavaScriptクライアントを使用して不和で1つのコマンドを送信しようとしたときの不和APIエラー[解決済み]

  25. 25

    証明書を使用した Kubernetes API(NodeJS) クライアントの認証に失敗しました

  26. 26

    ハンドシェイクで「クライアントリクエスト」が送信されない場合、Chromeはどのようにしてクライアント証明書を提供することを認識しますか?

  27. 27

    SSLError:sslv3アラートハンドシェイクエラー

  28. 28

    TLSサーバーがクライアントから証明書を受信せず、ハンドシェイクの終了に失敗する

  29. 29

    XamarinAndroidを使用したクライアント証明書とのSSL通信

ホットタグ

アーカイブ