web-dev-qa-db-ja.com

TLS1.2でのIndy10IdHTTPの使用

Indy10.5.8.0でDelphiXE2を使用しています

現在、TLS 1.2のみを使用するように、サーバーの1つへの接続を変更する必要があります。現時点では、TLS1.0を使用しています。

IdHTTPのハンドラーとして、IdSSLIOHandlerSocketOpenSSLが使用されています。

メソッドをsslvTLSv1_2に変更しようとしましたが、接続で次のエラーが発生するため機能しません:「SSLとの接続中にエラーが発生しました。エラー:1409442E:SSLルーチン:SSL3_READ_BYTES:tlsv1アラートプロトコルバージョン」

デフォルトの暗号リストを使用していますが、特定の暗号が必要かどうかわかりません(現在、サーバープロバイダーに使用している暗号を確認するように求めています)

これはハンドラーの構成です:

SSLIOHandler Config

以前のようにSSL接続に慣れていませんが、デフォルト設定で動作し、すべて問題ありませんでした。

WireSharkをチェックしようとしましたが、どちらの場合も(メソッドがsslvTLSv1_2またはsslvTLSv1の場合)、tlsバージョン1.0を指す同じエラーが発生します。

メソッドsslvTLSv1:

Method sslvTLSv1

メソッドsslvTLSv1_2:

enter image description here

何かが足りない場合は、正しい方向に向けてください。

提供されたすべての助けを事前に感謝します。

追伸:サーバープロバイダーから応答があり、暗号としてAES_128_GCMを使用していますが、デフォルトの暗号リストに含まれていますか?

WireShark> Client Helloパッケージ:

enter image description hereenter image description here

9
vexen

誰かが同様のエラーを起こした場合に備えて、私の場合、使用されていたのはSSLライブラリ(libeay32、ssleay32)であり、古くなっていました(2010年)。 SSLを更新すると、エラーなしで正しく機能しました。

更新の問題であると指摘してくれてありがとう@ RemyLebeau =)

8
vexen