3

SSLを介してクライアントからサーバーにデータを送信するために、 TIdTCPClient と TidTCPServer を使用しています。サーバーとクライアントに次のコードを設定します

*ストロングテキスト*サーバーサイド

   IdServerIOHandlerSSLOpenSSL1.SSLOptions.Mode = sslmServer
   IdServerIOHandlerSSLOpenSSL1.SSLOptions.Method = sslvTLSv1

*強いテキスト*Clint Side

   IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode = sslmUnassigned
   IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method = sslvTLSv1

エラーはエラーです: *1408F10B:SSL ルーチン:SSL3_GET_RECORD:サーバー側の間違ったバージョン番号*

Delphi IDE からサーバー アプリケーションを実行すると、エラー メッセージが表示されます。[続行] ボタンをクリックすると、接続が確立されます。

サーバーとクライアントで両方が同じ DLL バージョンを使用している

    libeay32.dll - 0.9.8.18
     ssleay32.dll - 0.9.8.18

Delphi バージョン 2010 を使用しています。Indy バージョンは 10.5.5 です。

Sameシステムでは上記エラーは発生しません。クライアントシステムで発生します。上記の dll は Exe フォルダーに配置されます。

上記のコードまたは間違って構成されたもので何が間違っていますか..?

事前に感謝

4

1 に答える 1

3

そのエラーが発生した後、接続を確立する方法はありません。SSLハンドシェイクエラーです。OpenSSLは、エラーを報告した後、接続を閉じていたはずです。

少し古いバージョンのIndyを使用しています。現在のバージョンは10.5.9です。

于 2012-10-15T20:49:27.483 に答える