Saya menggunakan Authlogic-Connect untuk login pihak ketiga. Setelah menjalankan migrasi yang sesuai, login Twitter / Google / yahoo tampaknya berfungsi dengan baik tetapi login facebook memberikan pengecualian:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Log dev menunjukkan
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
app/controllers/users_controller.rb:37:in `update'
Tolong sarankan ..
Jawaban:
Saya mengalami masalah yang sama ketika mencoba menggunakan generator JQuery untuk Rails 3
Saya menyelesaikannya seperti ini:
Dapatkan bundel CURL Certificate Authority (CA). Anda dapat melakukan ini dengan:
sudo port install curl-ca-bundle
[jika Anda menggunakan MacPorts]wget http://curl.haxx.se/ca/cacert.pem
Mengeksekusi kode ruby yang mencoba untuk memverifikasi sertifikasi SSL:
SSL_CERT_FILE=/opt/local/etc/certs/cacert.pem rails generate jquery:install
. Dalam kasus Anda, Anda ingin mengatur ini sebagai variabel lingkungan di suatu tempat server mengambilnya atau menambahkan sesuatu sepertiENV['SSL_CERT_FILE'] = /path/to/your/new/cacert.pem
di file environment.rb Anda.Anda juga dapat menginstal file CA (saya belum mencoba ini) ke OS - ada instruksi yang panjang di sini - ini harus bekerja dengan cara yang sama, tetapi saya belum mencobanya secara pribadi.
Pada dasarnya, masalah yang Anda hadapi adalah beberapa layanan web merespons dengan sertifikat yang ditandatangani terhadap CA yang tidak dapat diverifikasi OpenSSL.
sumber
export SSL_CERT_FILE=/usr/local/etc/openssl/certs/cert.pem
sudo curl http://curl.haxx.se/ca/cacert.pem >> /usr/local/etc/cacert.pem
diikuti olehexport SSL_CERT_FILE=/usr/local/etc/cacert.pem
SSL_CERT_FILE=/usr/local/etc/openssl/cert.pem
ke.env
file aplikasi dan voila - semua senang.Jika Anda menggunakan RVM pada OS X, Anda mungkin perlu menjalankan ini:
Informasi lebih lanjut di sini: http://rvm.io/support/fixing-broken-ssl-certificates
Dan inilah penjelasan lengkapnya: https://github.com/wayneeseguin/rvm/blob/master/help/osx-ssl-certs.md
Memperbarui
Pada Ruby 2.2, Anda mungkin harus menginstal ulang Ruby dari sumber untuk memperbaikinya. Begini caranya (ganti
2.2.3
dengan versi Ruby Anda):Kredit untuk https://stackoverflow.com/a/32363597/4353 dan Ian Connor .
sumber
rvm reinstall 2.2.0 --disable-binary
tetapi kemudian Anda harus menginstal bundel dan mulai segar.Inilah cara Anda memperbaikinya di Windows: https://gist.github.com/867550 (dibuat oleh Fletcher Nichol)
Kutipan:
sumber
Ruby tidak dapat menemukan sertifikat root untuk dipercaya.
Lihatlah posting blog ini untuk solusinya: " Ruby 1.9 dan kesalahan SSL ".
sumber
Alasan Anda mendapatkan kesalahan ini pada OSX adalah ruby yang diinstal rvm.
Jika Anda mengalami masalah ini di OSX Anda dapat menemukan penjelasan yang sangat luas tentang hal itu di posting blog ini:
http://toadle.me/2015/04/16/fixing-failing-ssl-verification-with-rvm.html
Versi singkatnya adalah bahwa, untuk beberapa versi Ruby, RVM mengunduh binari yang telah dikompilasi, yang mencari sertifikat di lokasi yang salah. Dengan memaksa RVM untuk mengunduh sumber dan kompilasi pada mesin Anda sendiri, Anda memastikan bahwa konfigurasi untuk lokasi sertifikat sudah benar.
Perintah untuk melakukan ini adalah:
jika Anda sudah memiliki versi yang dimaksud, Anda dapat menginstalnya kembali dengan:
(jelas, gantikan versi ruby Anda sesuai kebutuhan).
sumber
\curl -sSL https://get.rvm.io | bash -s stable --autolibs=homebrew
kemudianrvm install <ruby-version> --disable-binary
pada satu titik saya juga melakukanrvm get head
karena ini adalah beberapa masalah tepi pendarahan.SSL_CERT_FILE
. Setelah iturvm install 2.2.0 --disable-binary
, masalah diurutkan.Masalahnya adalah bahwa ruby tidak dapat menemukan sertifikat root untuk dipercaya. Pada 1,9 ruby memeriksa ini. Anda harus memastikan bahwa Anda memiliki sertifikat ikal pada sistem Anda dalam bentuk file pem. Anda juga perlu memastikan bahwa sertifikat berada di lokasi yang diharapkan ruby. Anda bisa mendapatkan sertifikat ini di ...
Jika Anda pengguna RVM dan OSX, maka lokasi file sertifikat Anda akan bervariasi berdasarkan pada versi ruby yang Anda gunakan. Menyetel path secara eksplisit dengan: ca_path adalah ide yang BAD karena kode Anda tidak akan portabel ketika sampai ke produksi. Untuk itu Anda ingin memberikan ruby dengan sertifikat di lokasi default (dan anggap teman-teman Anda tahu apa yang mereka lakukan). Anda dapat menggunakan dtruss untuk mencari tahu di mana sistem mencari file sertifikat.
Dalam kasus saya, sistem sedang mencari file cert di
namun sistem MACOSX akan mengharapkan sertifikat masuk
Saya menyalin sertifikat yang diunduh ke jalur ini dan berhasil. HTH
sumber
~/.rvm/usr/ssl/cert.pem
cacert.pem
di OS X. OS X tidak digunakancacert.pem
. Sertifikat sistem dan pengguna disimpan di KeyChain. Ruby harus diintegrasikan dengan KeyChain di OS X.Permata bersertifikat baru dirancang untuk memperbaikinya:
https://github.com/stevegraham/certified
sumber
bundle
,, secara eksplisit ditambahkanrequire "certified"
hanya untuk memastikan, dan tidak ada yang berubah. Apa yang saya lewatkan?cacert.pem
di OS X. OS X tidak digunakancacert.pem
. Sertifikat sistem dan pengguna disimpan di KeyChain. Ruby harus berintegrasi dengan KeyChain di OS X. OpenSSL tidak pernah mendistribusikan acacert.pem
. Tidak jelas bagi saya mengapa perangkat lunak apa pun akan tunduk pada OpenSSL untuk itu.Cukup tambahkan gem 'bersertifikat' di gemfile Anda dan jalankan bundle install.
sumber
Di Mac OS X Lion dengan macport terbaru:
Kemudian, jalankan kembali pekerjaan yang gagal.
Catatan, lokasi file cert tampaknya telah berubah sejak Eric G menjawab pada 12 Mei.
sumber
export SSL_CERT_FILE=/usr/local/etc/openssl/cacert.pem
file .profile atau .bashrc AndaSatu liner memperbaikinya untuk Windows dalam prompt Admin
choco install wget
(pertama lihat chocolatey.org )Atau lakukan saja ini:
Metode Milanio:
sumber
Nah ini berhasil untuk saya
Ada yang salah dengan implementasi openssl dari ubuntu 12.04 saya
sumber
curl -O http://curl.haxx.se/ca/cacert.pem
,mv cacert.pem cert.pem
,mv cert.pem $rvm_path/usr/ssl
Walaupun mengetahui ini bukan solusi yang payah, saya masih membagikan ini karena sepertinya sangat sedikit orang yang menjawab di sini menggunakan Windows , dan saya pikir beberapa pengguna Windows (termasuk saya) akan menghargai pendekatan yang sederhana dan intuitif.
Itu memberitahu di mana openssl Anda mencari file cert. Nama saya bukan Luis, tetapi nama saya dulu
C:/Users/Luis/Code/luislavena/knap-build/var/knapsack/software/x86-windows/openssl/1.0.0l/ssl/cert.pem
. Path mungkin berbeda tergantung pada masing-masing lingkungan sendiri (misalnyaopenknapsack
bukannyaluislavena
).Path tidak berubah bahkan setelah
set SSL_CERT_FILE=C:\foo\bar\baz\cert.pem
melalui konsol, jadi ... Saya membuat direktoriC:\Users\Luis\Code\luislavena\knap-build\var\knapsack\software\x86-windows\openssl\1.0.0l\ssl
di disk lokal saya dan memasukkan file cert ke dalamnya.Seperti apa adanya, ini pasti akan berhasil.
sumber
Saya sudah mencoba menginstal
curl-ca-bundle
denganbrew
, tetapi paket tersebut tidak lagi tersedia:Solusi yang berhasil bagi saya di Mac adalah:
Tambahkan baris ini di
~/.bash_profile
(atau~/.zshrc
untuk zsh) Anda:Kemudian perbarui terminal Anda:
sumber
export SSL_CERT_FILE=/usr/local/etc/openssl/certs/cacert.pem
~/.bash_profile
, ia meninggalkan pengingat tentang apa yang ditambahkan (dan, yang terpenting di mana) ketika pembaruan lebih lanjut diperlukan.Berikut opsi lain untuk keperluan debugging.
Pastikan untuk tidak pernah menggunakan ini di lingkungan produksi apa pun, karena itu akan meniadakan manfaat menggunakan SSL. Ini hanya berlaku untuk melakukan ini di lingkungan pengembangan lokal Anda.
sumber
Saya memiliki masalah yang sama saat mengerjakan proyek Ruby. Saya menggunakan Windows 7 64bit.
Saya menyelesaikan ini dengan:
sumber: https://gist.github.com/fnichol/867550
sumber
Jawaban paling langsung yang berhasil bagi saya adalah ini
Dan voila !!!
sumber
OS X 10.8.x dengan Homebrew:
sumber
Kemudian, seperti yang disarankan oleh posting blog ini,
" Cara Mengobati Jaring :: Perilaku HTTPS Default Berisiko HTTP "
Anda mungkin ingin menginstal
always_verify_ssl_certificates
permata yang memungkinkan Anda menetapkan nilai default untukca_file
.sumber
Ini berhasil untuk saya. Jika Anda menggunakan rvm dan minuman:
sumber
Saya mengalami masalah ini dan saran perbaikan
rvm osx-ssl-certs update all
tidak berhasil meskipun saya pengguna RVM di OSX.Perbaikan yang berhasil bagi saya adalah menginstal ulang versi openssl terbaru:
sumber
Saya memperbaiki masalah ini dengan menjalankan ini di terminal. Langgan lengkap tersedia di sini
sumber
Solusi OSX:
instal versi terbaru rvm stable
gunakan perintah rvm untuk menyelesaikan sertifikat secara otomatis
sumber
Jika Anda menjalankan aplikasi rel secara lokal maka cukup tambahkan baris ini di bagian bawah application.rb.
Setelah ini, Anda dapat menggunakan aplikasi tanpa masalah. Anda mungkin menyebutnya peretasan tetapi tidak disarankan. Gunakan hanya ketika Anda perlu menjalankan secara lokal
sumber
Inilah yang saya lakukan yang membantu jika Anda secara khusus memiliki masalah dengan Leopard.
Sertifikat saya sudah tua dan perlu diperbarui. Saya mengunduh ini:
http://curl.haxx.se/ca/cacert.pem
Kemudian diganti sertifikat saya yang ditemukan di sini di Leopard:
Muat ulang apa pun yang Anda miliki yang mengaksesnya dan Anda harus baik-baik saja!
sumber
Hanya karena instruksi sedikit berbeda untuk apa yang bekerja untuk saya, saya pikir saya menambahkan 2 sen saya:
Saya menggunakan OS X Lion dan menggunakan macports dan rvm
Saya menginstal curl-ca-bundle:
Kemudian saya menyesuaikan konfigurasi omniauth saya menjadi seperti ini:
sumber
ca-bundle.crt
) dan menggunakan Google Internet Authority G2 di:ssl => {:ca_path => "/share/curl/curl-ca-bundle.crt"}
. Itulah satu-satunya yang diperlukan untuk mengesahkan koneksi ke Google.Jika Anda memiliki tautan simbolis di / usr / local / etc / openssl yang menunjuk ke cert.pem coba lakukan ini:
sumber
Yang berhasil bagi saya adalah kombinasi jawaban, yaitu:
sumber
Saya mengalami masalah selama beberapa hari dan sedang meretas. Tautan ini terbukti sangat membantu saya. Ini membantu saya untuk melakukan peningkatan SSL yang sukses di MAC OS X 9.
sumber
Kadang tidak selalu masalah rvm di MAC OSX, jika Anda menghapus .rvm, masalahnya masih (terutama saat Anda membuat cadangan data dari timemachine), Anda dapat mencoba cara ini.
sumber
Menambahkan
gem 'certified', '~> 1.0'
ke sayaGemfile
dan menjalankanbundle
memecahkan masalah ini untuk saya.sumber