web-dev-qa-db-ja.com

RubyでTLS v1.2を有効にすることはできますか?もしそうなら、どうですか?

RubyでTLSv.1.2またはTLSv1.1を使用することは可能ですか?

私はRubyのOpenSSL 1.0.1c(最新版が利用可能)を使用して)のフランケンシュタインバージョンをコンパイルしました。唯一の違いは、SSLv2がOpenSSL::SSL::SSLContext::METHODS

そのリストにTLSv1.2を追加することは可能ですか?

21
lcarpenter

はい、TLS 1.1および1.2のサポート 最近 を追加しました。 SSLContextssl_versionを設定するのと同じくらい簡単です:

ctx = OpenSSL::SSL::SSLContext.new
ctx.ssl_version = :TLSv1_2

相互運用性を最大化するために、より一般的な:SSLv23を引き続き使用できます。ピアがサポートする最新のプロトコルが接続に使用されるという効果があります。ピアがTLS 1.2を理解している場合は、それが使用されます。しかし、上記のサンプルとは対照的に、ピアが1.2を話さない場合、実装は静かにピアが行う最高/最新バージョンにフォールバックします理解-上記の例では、1.2を認識しない場合、接続はピアによって拒否されます。

詳細については、件名の OpenSSL自身のドキュメント も参照してください。TLSv1_methodについて述べられている内容をTLSv1_1_methodおよびTLSv1_2_methodに転送できます(Ruby as :TLSv1:TLSv1_1:TLSv1_2)。

基盤となるOpenSSLがTLS 1.2をサポートしている場合(> = 1.0.1はサポートしています)、問題ありません。ただし、これには現在Rubyトランクからビルドする)が必要ですが、その間に否定的なフィードバックが得られない場合は、次の1.9.3リリースにバックポートされる可能性があります。

36
emboss