現在、クライアントがWindows XP環境でTLSv1.2を使用してホストサーバーに接続する必要があることに取り組んでいます。私は、openssl 静的ライブラリを使用してアプリケーション dll を構築し、同じ openssl dll を使用してクライアント サンプル アプリケーションを呼び出しました。私はビルドにVisual Studio 2012を使用しています。dll は Windows 7 環境では問題なく動作しますが、Windows XP では動作しません。以下は、私が今まで試して調査したことです。
1) Visual Studio のプロジェクト プロパティで、ビルドする環境を選択できます。Windows XP でも同じものを選択しました。 Windows XP ビルドのビジュアル スタジオ プロパティ
2) アプリケーション dll を構築するために TLS v1.2 をサポートする openssl v1.0.2j を使用しています。
3) dll コードで、ctx を tlsv1_2_method() に初期化するための変更を加えました。
4) Visual Studio を使用してビルドされたアプリケーション dll を呼び出すクライアント アプリケーションが、Windows XP で実行されています。ホスト サーバーは通信に TLSv1.2 プロトコルを使用します。私のクライアントアプリケーションはTLSv1.2を使用して通信する必要があり、それが問題だと思います。sslv3 を使用している場合、正常に動作します。
コードで sslv3_method() を使用し、同じ設定でビルドすると、xp のサンプル アプリケーションから dll を呼び出すことができ、問題なく動作します。しかし、tlsv1_2_method() を使用すると、エラーが発生し、my.dll が見つかりません。
サポートされている必要なライブラリをすべて追加し、依存関係ウォーカー ソフトウェアで確認しました。依存する dll が欠落しているわけではありません。
上記の問題をグーグルで検索したところ、Windows XP は TLSv1.1、TLSv1.2 をサポートしていないことがわかりました。しかし、Windows プロトコル通信メカニズムと独自の通信アプリケーションを使用していない場合は、それを実行できることもわかりました。しかし、そうするためのリソースも必要な詳細な知識もありません。
Windows XP用のopensslライブラリを個別に構築する方法または手順はありますか?
これを行う方法があれば、どなたか教えていただけると大変助かります。Windows XP用のopensslライブラリを他の方法で構築する必要があるかどうか、または不足している設定があるかどうか。以下は、この問題に関する情報を得るために私が行ったリンクです。
ssltls-protocols-on-windows のサポート
Windows XP で tlsv1.2 を動作させる方法を教えてください。