私のレガシー Ruby アプリケーションの 1 つは、まだ Ruby 1.8.7 を使用しています。サードパーティの Web サービスで多くの HTTP リクエストを作成し、そのうちのいくつかは SSL 経由です。
これらのサードパーティ サービスは、POODLE の脆弱性が原因で SSLv3 のサポートを終了しており、クライアントにパッチを適用して接続を継続したいと考えています。
Ruby の標準ライブラリNet::HTTP
には、使用する SSL バージョンを変更する方法がないようです。
Ruby のopenssl
( ssl-internal.rb ) には、バージョンを変更する方法があります。残念ながら、これはNet::HTTP
( https.rb ) によって公開されていません。
私たち (Ruby 1.8.7 のユーザー) はめちゃくちゃですか?
編集:実際、TLSv1
サーバーがサポートしていない場合、クライアントはに切り替えているようSSLv3
です。Nginx の背後に、SSLv3 をサポートしていない SSL 対応の Web サイトがあり、1.8.7 クライアントが TLSv1 に切り替わり、リクエストが機能することを確認しました。自分で確認したい場合は、こちらをご覧ください: https://serverfault.com/questions/620123/how-can-i-let-nginx-log-the-used-ssl-tls-protocol-and-ciphersuite