RubyでTLSv.1.2またはTLSv1.1を使用することは可能ですか?
OpenSSL 1.0.1c(利用可能な最新のもの)を使用してRubyのFrankensteinバージョンをコンパイルしましたが、唯一の違いは、SSLv2がオプションになったことです。OpenSSL::SSL::SSLContext::METHODS
そのリストにTLSv1.2を追加することは可能ですか?
はい、最近TLS1.1および1.2のサポートを追加しました。ssl_version
設定するのと同じくらい簡単SSLContext
です:
ctx = OpenSSL::SSL::SSLContext.new
ctx.ssl_version = :TLSv1_2
:SSLv23
相互運用性を最大化するために、より一般的なものを引き続き使用できます。ピアでサポートされている最新のプロトコルが接続に使用されるという効果があります。ピアがTLS1.2を理解している場合は、それが使用されます。ただし、上記のサンプルとは対照的に、ピアが1.2を話さない場合、実装はピアが理解できる最良/最新バージョンにサイレントにフォールバックします-上記の例では、接続がピアによって拒否される場合1.2を認識しませんでした。
詳細については、この件に関するOpenSSL独自のドキュメントも参照してください。TLSv1_methodについての説明をTLSv1_1_methodおよびTLSv1_2_method(Rubyではそれぞれとして表されます)に転送でき:TLSv1
ます。:TLSv1_1
:TLSv1_2
基盤となるOpenSSLがTLS1.2をサポートしている場合(> = 1.0.1はサポートしています)、問題ありません。ただし、これには現在トランクからのRubyビルドが必要です。しかし、その間に否定的なフィードバックが得られない場合は、次の1.9.3リリースにバックポートされる可能性があります。