現在、Indy は OpenSSL 1.0.2 バージョンのみをサポートしており、多くのお客様から OpenSSL 1.1 のサポートについてお問い合わせをいただいています。OpenSSL 1.0.2 は標準プロトコルバージョンである TLS 1.2 をサポートしているため現時点では利用可能ですが、OpenSSL チームは今年末で 1.0 API のサポートを終了します。これは、これ以上の更新がリリースされず、このライブラリに対する修正も適用されなくなることを意味し、Indy ライブラリにとっては好ましくない知らせです。
多くの内部作業を経て、OpenSSL 1.1 API をサポートする sgcWebSockets ライブラリの新バージョンをリリースしました。
sgcWebSockets 4.3.2 以降でサポートされます
そのため、現在 2 つのバージョンがあります。
- デフォルト版: 従来のバージョンと同じで、IDE に Indy がインストールされている必要があります。
- Indy 版: OpenSSL API 1.1 をサポートするカスタム Indy バージョンで、Indy のインストールは不要です。Indy ファイルはリネームされているため、自分の Indy ライブラリを保持したまま、当社のカスタム Indy ソースで sgcWebSockets をコンパイルできます。
OpenSSL 1.1 を有効にするには、OpenSSL_Options にアクセスし、使用する API を選択してください: oslAPI_1_0 または oslAPI_1_1。クライアントの例:
oClient := TsgcWebSocketClient.Create(nil); oClient.Host := '127.0.0.1'; oclient.Port := 443; oClient.TLS := True; oClient.TLSOptions.OpenSSL_Options.APIVersion := oslAPI_1_1; oClient.Active := True;
その後、Indy がデフォルトで使用する OpenSSL 1.0.2 の代わりに、独自の OpenSSL 1.1 ライブラリをデプロイできます。オペレーティングシステムによっては、openSSL ライブラリのデプロイが必要な場合と不要な場合があります。
| プラットフォーム | API 1.0 | API 1.1 | 静的/動的リンク |
| Windows (32 ビットおよび 64 ビット) | libeay32.dll and ssleay32.dll | libcrypto-1_1.dll and libssl-1_1.dll | 動的 |
| OSX | libcrypto.dylib, libssl.dylib | libcrypto.1.1.dylib, libssl.1.1.dylib | 動的 |
| iOS デバイス (32 ビットおよび 64 ビット) | libcrypto.a and libssl.a | libcrypto.a and libssl.a | 静的 |
| iOS シミュレーター | libcrypto.dylib, libssl.dylib | libcrypto.1.1.dylib, libssl.1.1.dylib | 動的 |
| Android デバイス | libcrypto.so, libssl.so | libcrypto.so, libssl.so | 動的 |
