SSL_connect zwróciło = 1 errno = 0 stan = SSLv3 odczytać certyfikat serwera B: weryfikacja certyfikatu nie powiodła się

281

Używam Authlogic-Connect do logowania osób trzecich. Po uruchomieniu odpowiednich migracji logowanie na Twitterze / Google / yahoo wydaje się działać dobrze, ale logowanie do Facebooka powoduje wyjątek:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

Dziennik deweloperski pokazuje

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'

Proszę zasugeruj..

Vikash
źródło
2
Czy to pomaga: stackoverflow.com/q/3977303/382818
Zabba
Oto najlepsze rozwiązanie, jakie udało mi się znaleźć do tej pory stackoverflow.com/a/16983443/11792
Pavel Nikolov

Odpowiedzi:

138

Wystąpił podobny problem podczas próby użycia generatora JQuery dla Rails 3

Rozwiązałem to w ten sposób:

  1. Uzyskaj pakiet CURL Certificate Authority (CA). Możesz to zrobić za pomocą:

    • sudo port install curl-ca-bundle [jeśli używasz MacPorts]
    • lub po prostu pociągnij go bezpośrednio w dół wget http://curl.haxx.se/ca/cacert.pem
  2. Wykonać kod Ruby próbuje zweryfikować certyfikat SSL: SSL_CERT_FILE=/opt/local/etc/certs/cacert.pem rails generate jquery:install. W twoim przypadku, chcesz ustawić to jako zmienną środowiskową gdzieś, gdzie serwer ją odbiera, lub dodać coś takiego jak ENV['SSL_CERT_FILE'] = /path/to/your/new/cacert.pemw pliku environment.rb.

Można też po prostu zainstalować pliki Ca (nie próbowałem tego) do systemu operacyjnego - nie są długie instrukcje tutaj - to powinno działać w podobny sposób, ale nie próbowałem tego osobiście.

Zasadniczo problem polega na tym, że niektóre usługi internetowe odpowiadają certyfikatem podpisanym wobec urzędu certyfikacji, którego OpenSSL nie może zweryfikować.

Erik G.
źródło
1
Działa to również dla mnie, gdy próbowałem połączyć się z moim kontem Gmail za pomocą Ruby Net :: IMAP ze skryptu ruby.
Jignesh Gohel
4
Tak, działa dobrze na Ruby-1.9.3. Dodałem go do mojej konfiguracji bash. export SSL_CERT_FILE=/usr/local/etc/openssl/certs/cert.pem
andersjanmyr,
5
Nie miałem / usr / local / etc / openssl, więc pobiegłem sudo curl http://curl.haxx.se/ca/cacert.pem >> /usr/local/etc/cacert.pemza nim export SSL_CERT_FILE=/usr/local/etc/cacert.pem
Lilith River
4
Rozwijając się na komputerze Mac, właśnie dodałem SSL_CERT_FILE=/usr/local/etc/openssl/cert.pemdo .envpliku mojej aplikacji i voila - wszyscy są szczęśliwi.
Dave Sag
8
Doceniam ironię używania wget do pobierania certyfikatów curl.
Trey,
135

Jeśli używasz RVM na OS X, prawdopodobnie musisz uruchomić to:

rvm osx-ssl-certs update all

Więcej informacji tutaj: http://rvm.io/support/fixing-broken-ssl-certificates

A oto pełne wyjaśnienie: https://github.com/wayneeseguin/rvm/blob/master/help/osx-ssl-certs.md


Aktualizacja

W Ruby 2.2 może być konieczna ponowna instalacja Ruby ze źródła, aby to naprawić. Oto jak (zastąp 2.2.3swoją wersją Ruby):

rvm reinstall 2.2.3 --disable-binary

Podziękowania dla https://stackoverflow.com/a/32363597/4353 i Iana Connora .

htanata
źródło
2
Oto o wiele bardziej wyczerpujący opis z alternatywami: railsapps.github.io/openssl-certificate-verify-failed.html
Peter P.
BŁĄD: aktualizacja rvm została usunięta. Zamiast tego zobacz interfejs API CLI „rvm get” i rvm „rubygems”
yang
@ user432506 Jak doszło do tego błędu? Używam najnowszej stabilnej RVM i nadal działa.
htanata
4
To by działało przez chwilę, a potem zawiodło dla mnie. To, co zadziałało, działało, rvm reinstall 2.2.0 --disable-binaryale musisz zainstalować pakiet i zacząć od nowa.
Ian Connor,
2
To był ogromny ratownik i powinna być przyjętą odpowiedzią.
Siraris,
129

Oto, jak możesz to naprawić w systemie Windows: https://gist.github.com/867550 (stworzony przez Fletcher Nichol)

Fragment:

The Manual Way (Nudny)

Pobierz cacert.pemplik z http://curl.haxx.se/ca/cacert.pem . Zapisz ten plik w C:\RailsInstaller\cacert.pem.

Teraz powiadom Ruby o pakiecie urzędu certyfikacji, ustawiając SSL_CERT_FILE. Aby ustawić to w bieżącej sesji wiersza polecenia, wpisz:

set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

Aby ustawić to na stałe, dodaj to w panelu sterowania .

ryanjones
źródło
6
Dziękuję Ci. Jest to wyjątkowo przydatne, a także bardzo proste.
John
Powyższe rozwiązanie mi nie pomogło. Jest to lepszy przewodnik dla systemu Windows: stackoverflow.com/questions/5720484/…
Sprachprofi
@Sprachprofi Rozwiązanie, z którym masz połączenie, będzie działało tylko dla 1 projektu szynowego na raz (ponieważ wskazujesz bezpośrednio na ten certyfikat). Istota, z którą się połączyłem (utworzona przez Fletchera Nichola), pozwoli jej objąć każdy projekt / klejnot, który szuka certyfikatu.
ryanjones
31

Ruby nie może znaleźć żadnych certyfikatów głównych, którym można zaufać.

Spójrz na ten post na blogu, aby znaleźć rozwiązanie: „ Ruby 1.9 i błąd SSL ”.

Rozwiązaniem jest zainstalowanie curl-ca-bundleportu zawierającego te same certyfikaty główne, których używa Firefox:

sudo port install curl-ca-bundle

i powiedz httpsobiektowi, aby go używał:

https.ca_file = '/opt/local/share/curl/curl-ca-bundle.crt'

Pamiętaj, że jeśli chcesz, aby kod działał na Ubuntu, musisz ca_pathzamiast tego ustawić atrybut z domyślną lokalizacją certyfikatów /etc/ssl/certs.

martoche
źródło
8
Wydaje się, że dzieje się tak również w systemie Windows, w którym to przypadku zalecane tam rozwiązanie nie będzie działać.
Bob Aman
24

Przyczyną tego błędu w OSX jest ruby ​​zainstalowany w rvm.

Jeśli napotkasz ten problem w OSX, możesz znaleźć naprawdę szerokie wyjaśnienie tego w tym poście na blogu:

http://toadle.me/2015/04/16/fixing-failing-ssl-verification-with-rvm.html

Krótka wersja jest taka, że ​​w przypadku niektórych wersji Ruby RVM pobiera wstępnie skompilowane pliki binarne, które szukają certyfikatów w niewłaściwej lokalizacji. Wymuszając na RVM pobranie źródła i kompilację na własnym komputerze, upewniasz się, że konfiguracja lokalizacji certyfikatu jest poprawna.

Polecenie to:

rvm install 2.2.0 --disable-binary

jeśli masz już wersję, o której mowa, możesz ją ponownie zainstalować za pomocą:

rvm reinstall 2.2.0 --disable-binary

(oczywiście, w razie potrzeby zamień swoją wersję ruby).

paulmorar
źródło
To zadziałało dla mnie. Post na blogu, na który wskazujesz, jest również przydatny, dzięki!
Cristian
2
To działało dla mnie na El Capitan. I imploded rvm (rvm implode). Zainstalowałem ponownie z, \curl -sSL https://get.rvm.io | bash -s stable --autolibs=homebrewa potem rvm install <ruby-version> --disable-binary W pewnym momencie zrobiłem to również, rvm get headponieważ są to niektóre krwawiące problemy.
rylanb
Tylko to rozwiązanie działało dla mnie, ponieważ pierwotnie miałem Ruby 2.0.0 na El Capitan iz jakiegoś powodu starsza wersja nie działała nawet poprawnie SSL_CERT_FILE. Po rvm install 2.2.0 --disable-binaryrozwiązaniu problemu.
laimison
20

Problem polega na tym, że Ruby nie może znaleźć certyfikatu głównego, któremu można zaufać. Od wersji 1.9 ruby ​​to sprawdza. Musisz upewnić się, że masz certyfikat curl w systemie w postaci pliku pem. Musisz także upewnić się, że certyfikat znajduje się w miejscu, w którym Ruby się spodziewa. Możesz uzyskać ten certyfikat na ...

http://curl.haxx.se/ca/cacert.pem

Jeśli jesteś użytkownikiem RVM i OSX, lokalizacja pliku certyfikatu będzie się różnić w zależności od używanej wersji ruby. Wyraźne ustawienie ścieżki za pomocą: ca_path jest ZŁYM pomysłem, ponieważ twój kod nie będzie przenośny, gdy przejdzie do produkcji. Tam chcesz dostarczyć Rubinowi certyfikat w domyślnej lokalizacji (i załóż, że twoi deweloperzy wiedzą, co robią). Możesz użyć narzędzia dtruss, aby dowiedzieć się, gdzie system szuka pliku certyfikatu.

W moim przypadku system szukał pliku cert w

/Users/stewart.matheson/.rvm/usr/ssl/cert.pem

jednak system MACOSX oczekuje certyfikatu

/System/Library/OpenSSL/cert.pem

Skopiowałem pobrany certyfikat na tę ścieżkę i zadziałało. HTH

Stewart
źródło
2
Dla mnie na Ubuntu 12.04, ścieżka certyfikatu, która działa, to~/.rvm/usr/ssl/cert.pem
Nazar Hussain
Jak korzystasz z dtruss, aby dowiedzieć się, gdzie system szuka certyfikatu?
pingu
@pingu nie pamięta dokładnej komendy, w zasadzie uruchamiasz drussa i każesz mu uruchomić dowolny proces ruby, który chcesz, aby „sprawdził”. Jego dane wyjściowe są bardzo szczegółowe, ale w zasadzie będzie można zobaczyć każde wywołanie systemowe ruby. Jednym z wywołań będzie wywołanie odczytu pliku, które będzie wskazywało na plik, który nie istnieje. Przenieś certyfikat tutaj lub utwórz link, a powinieneś być gotowy.
Stewart,
Ruby nie powinien szukać cacert.pemsystemu OS X. OS X nie używa cacert.pem. Certyfikaty systemowe i certyfikaty użytkownika są przechowywane w KeyChain. Ruby powinien integrować się z KeyChain na OS X.
jww
Jak najlepiej to zrobić? Czy możesz opublikować przykład?
Stewart,
19

Nowy certyfikowany klejnot został zaprojektowany, aby to naprawić:

https://github.com/stevegraham/certified

Kevin
źródło
Działa z Ruby 2.0.0p481 (2014-05-08) [i386-mingw32]
Evmorov
1
Nie działa dla mnie z Rails 4.1.9, ruby-2.1.5. Dodałem go do Gemfile, bundlewyraźnie dodałem require "certified"tylko dla pewności i nic się nie zmienia. czego mi brakuje?
Izaak Betesh
Ruby nie powinien szukać cacert.pemsystemu OS X. OS X nie używa cacert.pem. Certyfikaty systemowe i certyfikaty użytkownika są przechowywane w KeyChain. Ruby powinien integrować się z KeyChain na OS X. OpenSSL nigdy nie rozpowszechniał cacert.pem. Nie jest dla mnie jasne, dlaczego jakiekolwiek oprogramowanie odłożyłoby się w tym kierunku do OpenSSL.
jww
18

Wystarczy dodać „certyfikowany” klejnot do pliku gem i uruchomić instalację pakietu.

  1. klejnot „ certyfikowany
  2. instalacja pakietu
Nitish Kumar
źródło
Potwierdzenie, że pomogło to El Capitan. Dzięki!
mcmlxxxiii
Działa idealnie z Railsami i Debianem :) wielkie wielkie dzięki!
Szymon Rut
17

W systemie Mac OS X Lion z najnowszym Macport:

sudo port install curl-ca-bundle  
export SSL_CERT_FILE=/opt/local/share/curl/curl-ca-bundle.crt  

Następnie ponownie uruchom nieudane zadanie.

Uwaga: wydaje się, że lokalizacja pliku cert zmieniła się od czasu, gdy Eric G odpowiedział 12 maja.

Mikrofon
źródło
Po wszystkich poszukiwaniach i wielu próbach to była jedyna rzecz, która rozwiązała problem. Dzięki!
shawnwall
1
fajnie, to naprawiło. Ale tak długo, jak openssl jest zainstalowany z homebrew, musisz dodać plik export SSL_CERT_FILE=/usr/local/etc/openssl/cacert.pem.profile lub .bashrc
23tux
14

Jeden linijka naprawia go dla systemu Windows w monicie administratora

choco install wget(najpierw zobacz chocolatey.org )

wget http://curl.haxx.se/ca/cacert.pem -O C:\cacert.pem && setx /M SSL_CERT_FILE "C:\cacert.pem"

Lub po prostu zrób to:

gem sources -r https://rubygems.org/
gem sources -a http://rubygems.org/

Metoda Milanio:

gem sources -r https://rubygems.org
gem sources -a http://rubygems.org 
gem update --system
gem sources -r http://rubygems.org
gem sources -a https://rubygems.org

gem install [NAME_OF_GEM]
Jonathan
źródło
1
Mała poprawka - wystarczy zaktualizować ruby, a następnie można ponownie dodać źródło https - to zadziałało dla mnie jak urok: źródła klejnotów -r rubygems.org => źródła klejnotów -a rubygems.org => aktualizacja klejnotów - system => źródła klejnotów -r rubygems.org => źródła klejnotów -a rubygems.org => instalacja klejnotów [NAME_OF_GEM]
milanio,
13

Cóż, to zadziałało dla mnie

rvm pkg install openssl
rvm reinstall 1.9.2 --with-openssl-dir=$rvm_path/usr

Coś jest nie tak z implementacją openssl mojego Ubuntu 12.04

ramasamy
źródło
3
To działa, ale miałem do końca z tym: curl -O http://curl.haxx.se/ca/cacert.pem, mv cacert.pem cert.pem,mv cert.pem $rvm_path/usr/ssl
Raf
Pracował dla mnie, Mac OS X Yosemite. Dzięki!
anevaude
12

Wiedząc, że jest to raczej kiepskie rozwiązanie, nadal się tym dzielę, ponieważ wygląda na to, że bardzo niewiele osób odpowiadających tutaj używa systemu Windows i myślę, że niektórzy użytkownicy systemu Windows (włącznie ze mną) doceniliby proste i intuicyjne podejście.

require 'openssl'
puts OpenSSL::X509::DEFAULT_CERT_FILE

To mówi, gdzie twój openssl szuka pliku cert. Nie nazywam się Luis, ale moje było C:/Users/Luis/Code/luislavena/knap-build/var/knapsack/software/x86-windows/openssl/1.0.0l/ssl/cert.pem. Ścieżka może być różna w zależności od każdego środowiska (np. openknapsackZamiast luislavena).

Ścieżka nie zmieniła się nawet po set SSL_CERT_FILE=C:\foo\bar\baz\cert.pemkonsoli, więc ... Utworzyłem katalog C:\Users\Luis\Code\luislavena\knap-build\var\knapsack\software\x86-windows\openssl\1.0.0l\ssl na dysku lokalnym i umieściłem w nim plik cert.

Jakkolwiek kulawe, to na pewno zadziała.

Quv
źródło
2
Znakomity. Hacky, ale to była jedyna rzecz, która rozwiązała mój problem.
Daniel Magliola,
Miły sposób debugowania ... Dla mnie użytkownik był „Justin”. Googling pokazuje, że jest to znany problem z RubyInstaller. Niestety, samodzielne utworzenie tego katalogu (+ pliku pem) nie rozwiązało problemu
Wouter
12

Próbuję zainstalować za curl-ca-bundlepomocą brew, ale pakiet nie jest już dostępny:

$ brew install curl-ca-bundle
Error: No available formula for curl-ca-bundle 
Searching formulae...
Searching taps...

Rozwiązaniem, które zadziałało na Macu było:

 $ cd /usr/local/etc/openssl/certs/
 $ sudo curl -O http://curl.haxx.se/ca/cacert.pem

Dodaj ten wiersz w swoim ~/.bash_profile(lub ~/.zshrcdla zsh):

export SSL_CERT_FILE=/usr/local/etc/openssl/certs/cacert.pem

Następnie zaktualizuj terminal:

$ source ~/.bash_profile
monteirobrena
źródło
1
To działało dla mnie - ale ścieżka jest zła. Powinien być:export SSL_CERT_FILE=/usr/local/etc/openssl/certs/cacert.pem
dnlmzw
2
To dobre rozwiązanie ze względu na swoją prostotę. Odwołując się do dodanego certyfikatu ~/.bash_profile, pozostawia przypomnienie o tym, co zostało dodane (i, co najważniejsze, gdzie), gdy wymagane są dalsze aktualizacje.
auxbuss,
To zadziałało dla mnie. @dnlmzw ścieżka była dla mnie w porządku, ale oczywiście zależy to od konfiguracji. Dzięki!
theartofbeing
nie działało dla mnie, gdy próbowałem dodać prywatny adres URL serwera gem, który używa samopodpisanego certyfikatu do moich źródeł gem. OSX 10.11.6 + rbenv
sixty4bit
12

Oto kolejna opcja do celów debugowania.

Pamiętaj, aby nigdy nie używać tego w żadnym środowisku produkcyjnym, ponieważ spowoduje to negację korzyści wynikających z używania SSL. Jest to zawsze uzasadnione tylko w lokalnym środowisku programistycznym.

require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
Scott
źródło
26
Przesłuchane: Tak, to działa, ale bariera w instalacji prawidłowego pakietu CA i faktycznego rozwiązania problemu jest tak niska, że ​​takie rozwiązanie - które prawie całkowicie unieważnia bezpieczeństwo SSL - nie jest rozwiązaniem, które należy wdrożyć, chyba że znajdują się w środowisku, w którym urząd certyfikacji jest całkowicie niedostępny (i nawet wtedy należy utworzyć lokalny urząd certyfikacji, który będzie dostępny dla obu punktów końcowych).
yaauie,
10
Nie usunął prawie całkowicie ochrony SSL, całkowicie ją usuwa. Nigdy tego nie rób.
drbrain
15
Do debugowania wystarczy
rickyduck
1
Powoduje to wyświetlenie ostrzeżenia w 1.9
Ivan
2
Jest to złe rozwiązanie do pracy produkcyjnej przez Internet, ale zdecydowanie nie jest prawdą, że „równie dobrze możesz nie używać SSL”. Ruch zaszyfrowany za pomocą drutu jest lepszy niż ruch w czystym miejscu. Tak, masz możliwość ataków typu man-in-the-middle, ale są one co najmniej o jeden stopień trudniejsze do zniesienia, niż po prostu podsłuchiwanie przepływającego tekstu jawnego.
Mark Reed,
10

Miałem ten sam problem podczas pracy nad projektem Ruby. Używam Windows 7 64bit.

Rozwiązałem to przez:

  1. Pobieranie pliku cacert.pem z http://curl.haxx.se/ca/cacert.pem .
  2. Zapisałem ten plik w Zapisałem C: /RubyCertificates/cacert.pem
  3. Następnie ustaw moją zmienną środowiskową „SSL_CERT_FILE” na „C: \ RubyCertificates \ cacert.pem”

źródło: https://gist.github.com/fnichol/867550

Henz
źródło
Ponieważ jest to Windows, odwrotne ukośniki powinny być używane w wartości zmiennej środowiskowej.
Christian Baumann,
jest to jedyne rozwiązanie, które działało na mnie, aby naprawić „pakiet” po naprawieniu błędu ssl rubygems
DonBecker
7

Najprostsza odpowiedź, która działała dla mnie, była następująca

sudo apt-get install openssl ca-certificates

I voila !!!

Pratik Bothra
źródło
1
Żałuję, że nie mogłem zagłosować więcej niż jeden raz, ponieważ zaoszczędziłeś mi tyle czasu!
Stephen
1
@ Stephen - Chciałbym, żebyś też :-). Zaoszczędziło mi to dużo czasu, więc pomyślałem, że opublikuję to tutaj i może pomóc komuś innemu.
Pratik Bothra,
7

OS X 10.8.x z Homebrew:

brew install curl-ca-bundle
brew list curl-ca-bundle
cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem
Synteza
źródło
1
Działa dla mnie również w wersji 10.9.
Sami Samhuri,
1
Ok dla mnie, OS X 10.9.1. Niesamowite!
rogeriopradoj
Coś jest poważnie zepsute, gdy musisz znaleźć przypadkowe rozwiązania, aby rozwiązać te głupie problemy. Wszystkie te odpowiedzi robią coś zupełnie innego iw pewnym momencie wydawały się pomagać ludziom. WTF?
sergserg
13
Pakiet curl-ca został odnowiony z browaru
Fa11enAngel
4

To zadziałało dla mnie. Jeśli używasz RVM i Brew:

rvm remove 1.9.3
brew install openssl
rvm install 1.9.3 --with-openssl-dir=`brew --prefix openssl`
Rahul
źródło
4

Natknąłem się na ten problem i sugerowana poprawka rvm osx-ssl-certs update allnie zadziałała, mimo że jestem użytkownikiem RVM na OSX.

Dla mnie poprawką było ponowne zainstalowanie najnowszej wersji openssl:

brew update
brew remove openssl
brew install openssl
Dave Brace
źródło
4

Rozwiązałem ten problem, uruchamiając go w terminalu. Pełny opis jest dostępny tutaj

rvm install 2.2.0 --disable-binary
Wraithseeker
źródło
3

Rozwiązanie OSX:

zainstaluj najnowszą stabilną wersję rvm

rvm get stable

użyj komendy rvm, aby automatycznie rozwiązać certyfikaty

rvm osx-ssl-certs update all
Alston
źródło
1
Próbowałem tego i nie działało to dla mnie. Oto moje rozwiązanie: stackoverflow.com/a/16741712/62
Liron Yahdav
Pracowałem dla mnie po zainstalowaniu Ruby 2.0.0 przez RVM.
Chris Peters,
3

Jeśli używasz aplikacji Railsowej lokalnie, po prostu dodaj ten wiersz na dole application.rb.

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

Następnie możesz korzystać z aplikacji bez żadnych problemów. Możesz nazwać to hackem, ale nie jest to zalecane. Używaj tylko wtedy, gdy potrzebujesz uruchomić lokalnie

Tarun Rathi
źródło
2

Oto, co zrobiłem, co pomogło, jeśli masz konkretny problem z Leopardem.

Mój certyfikat był stary i wymagał aktualizacji. Pobrałem to:

http://curl.haxx.se/ca/cacert.pem

Następnie zastąpiłem mój certyfikat, który został tutaj znaleziony na Leopardzie:

/usr/share/curl/curl-ca-bundle.crt

Załaduj ponownie wszystko, co masz do niego dostęp, i powinieneś już iść!

Musicalmindz
źródło
2

Tylko dlatego, że instrukcje były nieco inne dla tego, co działało dla mnie, pomyślałem, że dodam moje 2 centy:

Jestem na OS X Lion i używam Macports i RVM

Zainstalowałem pakiet curl-ca:

sudo port install curl-ca-bundle

Następnie dostosowałem konfigurację omniauth do tego:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, APP_CONFIG['CONSUMER_KEY'], APP_CONFIG['CONSUMER_SECRET'],
           :scope => 'https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.profile',
           :ssl => {:ca_path => "/share/curl/curl-ca-bundle.crt"}
end
Hortitude
źródło
Możesz (i prawdopodobnie powinieneś) zrezygnować z CA CA Zoo ( ca-bundle.crt) i użyć Google Internet Authority G2 w :ssl => {:ca_path => "/share/curl/curl-ca-bundle.crt"}. To jedyny potrzebny do certyfikacji połączeń z Google.
jww
2

Jeśli masz dowiązanie symboliczne w / usr / local / etc / openssl wskazujące na cert.pem, spróbuj to zrobić:

ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE" (should be /usr/local/etc/openssl)
cd /usr/local/etc/openssl
wget http://curl.haxx.se/ca/cacert.pem
ln -s cacert.pem 77ee3751.0 (77ee3751.0 is my symbolic link, should depend on the openssl version)
Duccio Giovannelli
źródło
2

Dla mnie zadziałała kombinacja odpowiedzi, a mianowicie:

# Reinstall OpenSSL
brew update
brew remove openssl
brew install openssl
# Download CURL CA bundle
cd /usr/local/etc/openssl/certs
wget http://curl.haxx.se/ca/cacert.pem
/usr/local/opt/openssl/bin/c_rehash
# Reinstall Ruby from source
rvm reinstall 2.2.3 --disable-binary
suda
źródło
1

Miałem kłopoty przez kilka dni i rąbałem wokół. Ten link okazał się dla mnie niezwykle pomocny. Pomogło mi to w udanej aktualizacji SSL na MAC OS X 9.

Spakowany
źródło
1

Czasami nie zawsze jest to problem rvm w MAC OSX, jeśli usuniesz .rvm, problem nadal (szczególnie podczas tworzenia kopii zapasowej danych z timemachine), możesz spróbować w ten sposób.

1.brew update
2.brew install openssl
Albert.Qing
źródło
1

Dodanie gem 'certified', '~> 1.0'do mnie Gemfilei uruchomienie bundlerozwiązało dla mnie ten problem.

użytkownik2573222
źródło