私はRubyの学習を始めたばかりの初心者です。 私は自分のコンピュータ上でWebサーバーを起動するRubyファイルを実行する必要があるRubyチャレンジを行っています。まず、私はコマンドを使用して、コマンドラインでこのアプリケーションを実行します。Faraday :: SSLError at/callbackハンドシェイクアラート:unrecognized_name
ルビーapp.rb
その後、私は自分のローカルサーバに自分のブラウザにアクセスするには、このURLを貼り付け:この上に
をローカルWebページ私は認証されるべきインターネット上のWebサーバーに接続するリンクをクリックします。この瞬間までにすべてがうまくいくが、認証中にエラーが出る。承認中にエラーがなければ、アプリケーションはインターネットサーバーからプロファイルデータを取得します。これは私が得るエラーです:
ファラデー:: SSLErrorで/コールバック ハンドシェイクアラート:unrecognized_name。
私はこの問題を2日間解決しようとしています。私がやったこと:
1)私はこのエラーが何とかJavaに接続されていると思います。私は、Java(6,7,8)のすべてのバージョンでこのアプリケーションを実行しようとしました。これは、より高いJavaバージョンに更新したときに同じ問題を抱えていると言いました。残念ながら、Rubyの私のバージョンはJava 6を受け付けません。
2) "handshake alert:unrecognized_name"エラーについては、Stackoverflowの20の類似ポストと同じです。 jsse.enableSNIExtensionプロパティを設定することを推奨します。しかし、私はこれらの回答のどれか、具体的にはこのコードをどこに適用するのか理解できませんでした。それから、私はこのリンクhttps://community.jivesoftware.com/docs/DOC-140837を見つけ、Javaコントロールパネルを開くことを勧めました(私はシステム環境設定のJavaでそれを行いました)。私はJavaのタブをクリックしてViewをクリックし、Runtime Parametersに "-Djsse.enableSNIExtension = false"を追加して適用しました。
3)もう1つの解決策が見つかったDisable SNI Extension for Ruby net/http - Using IP address with SSL/TLS(答えはZebGirで与えられます)。私の.rvmファイル、または私のシステム全体で* http.rbファイルが見つかりませんでした。
私の問題については、可能な解決策を示すヒントまたはリンクをお知らせください。 私のシステムはMac OS X El Capitanです。 RVMバージョン1.27 Javaバージョン1.8。
1):
も参照してください:ような何か。または、私は何か間違っているのでしょうか? 2)あなたが送ったリンクを確認しました。私はこのパスをca_path変数として含めるようにファラデーイニシャライザを変更しようとしましたが、フォルダ/システム/ライブラリ/ OpenSSL/certsは空です。/System/Library/OpenSSLには、/ certs、/ misc、/ private、およびopenssl.cnfファイルの3つのディレクトリと1つのファイルがあります。私はどこに置くべきかわからない:接続=ファラデー:: Connection.new 'https://encrypted.google.com'、:ssl => { :ca_path => "/ usr/lib/ssl/certs" }。私は何を誤解したのですか? – Wordworth