Help us understand the problem. What is going on with this article?

RubyでTwitterを SSLではじかれる件(Windows)

More than 5 years have passed since last update.

RubyでTwitterを利用するも早速挫折

まずコードを


require "twitter"


client = Twitter::REST::Client.new do |config|
  config.consumer_key        = "略"
  config.consumer_secret     = "略"
  config.access_token        = "略"
  config.access_token_secret = "略"
end

client.home_timeline.each do |tw|
   puts tw.text
end

ここまではなんとかなったものの

SSLっぽいエラーが吐かれてしまった。


以下のとおりである
キャプチャ.JPG

このように一杯書いてある(小並感)

どうもSSLv3を使っていることに問題があるそうだ。

※追記(wktk氏に感謝)

上位規格の TLS 1.2 から 1.1, 1.0, SSL 3.0 までフォールバックするように
なってるから v3 自体は直接関係ない

証明書の仕組みの話で、信頼するルート証明書のリスト (pem ファイル) が手元に存在せず、サーバーが提示する証明書が正当か検証できないためエラーになっていた

参考URL
Transport Layer Security @Wikipedia

SSLエラーを何とかしたい


とりあえずhome_timelineの上の行に

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

を入れると取得できた。これでは危険なのでSSL認証の問題を探ることに。
ここなどを参考にした。

Windowsでgem installするとSSLエラーが出る場合の解決策

RubyでTwitterにポスト(未完)

rubyでSSL利用時に証明書エラーが発生する場合の対応

どうも

ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"

を入れて出てきたパスに
http://curl.haxx.se/ca/cacert.pem
を保存すればよいとわかった。

SSLエラー対処を実際にやってみる


実際にやってみた

ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"

キャプチャ.JPG

すると上図のような見たこともないディレクトリが出てきた。
早速ディレクトリを作成し、PEMファイルを入れてみた。

キャプチャ.JPG

さてSSLの問題も解決したから、早速ファイルを書き換えて実行

やっぱりだめでした

キャプチャ.JPG

あっさり解決


以下のようにコマンドライン上で打ち込んだ。

ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"

C:/Users/Luis/Code/luislavena/knap-build/var/knapsack/software/x64-windows/openssl/1.0.0o/ssl/cert.pem

お気づきになられたであろうか。上記のエクスプローラー図では
cacert.pem
となっている

これを
cert.pem
に名前を変えてあっさり解決

アホなミスもクリティカルエラーになるので注意すると堅く誓う

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした