ご参考の際は自己責任でお願いします。また、提示した解決法はあくまでも一例なので、必ず解決できるとは限りません。

 

※画像は一部を除きタップ(クリック)で拡大します。

 

Q. 例外クラス
EIdIOHandlerPropInvalid (メッセージ ‘IOHandler value is not valid’)を送出しました。

A. IOHandlerプロパティが空欄の時に出ることがあります。

フォーム上にIdSSLIOHandlerSocketOpenSSLコンポーネントを配置し、それを指定することで回避できる場合があります。

 

 

 

Q. IdSSLIOHandlerSocketOpenSSLコンポーネントでエラーになる

実行例 Methodプロパティが

「sslvSSLv2」の時

例外クラス
EIdOSSLConnectError (メッセージ ‘Error connetcting with SSL.
error:00000006:lib(0):func(0):EVP lib’)を送出しました。

 

「sslvSSLv23」の時

例外クラス
EIdOSSLUnderlyingCryptoError (メッセージ ‘Error connetcting with SSL.
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version’)を送出しました。

 

「sslvSSLv3」の時

例外クラス
EIdOSSLUnderlyingCryptoError (メッセージ ‘Error connetcting with SSL.
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure’)を送出しました。

 

「sslvTLSv1」「sslvTLSv1_1」「sslvTLSv1_2」の時

例外クラス
EIdOSSLUnderlyingCryptoError (メッセージ ‘Error connetcting with SSL.
error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version’)を送出しました。

 

A. Embarcadero のサイトを参考に、開発用プラットフォーム向けの最新の OpenSSL アーカイブをダウンロードし、その中から次の2つのライブラリファイルを「自分のアプリケーションと同じフォルダにコピー」します。

libeay32.dll
ssleay32.dll

コピー後にプログラムの再コンパイルは不要と思われ、「同じフォルダに置くだけ」で動作します(あくまでも当方の見解です)

それでも上記のエラーが出る場合は

接続するサーバー(サイト)によってSSLのプロトコルが異なるため、「Methodプロパティの変更」を検討してみて下さい。

 

私の接続先サイトの場合、

sslvSSLv23

sslvTLSv1_2

の2つのみ正常で、それ以外ではエラーでした。

 

あくまでも一例です。

 

 

他の方の関連記事

DelphiでHttps TSLページを開けない – Indyエラー

 

リンク切れ

DelphiでIndyのGitHubAPIを使用する

https://www.javaer101.com/ja/article/47255513.html

 



ȥåץڡ