Je reçois des erreurs de vérification SSL lors de l'exécution d'appels sur un site SSL depuis la console rails (ou dans l'environnement rails en général).La vérification du certificat ssl de Rails a échoué après Rails.application.initialize
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed
J'ai retracé le processus d'initialisation entière application des rails du début à la fin, allant de config.ru
tout au long, ce qui nécessite des fichiers d'environnement, etc.
L'erreur SSL ne commence que se passe après que je lance Rails.application.initialize!
J'ai purgé toutes les gemmes rubis du système et n'ai que celles installées à partir du Gemfile
. Il est donc impossible d'avoir une version de gem différente avant/après le processus d'initialisation. Je sais que le correctif à court terme serait de définir mes appels HTTPS pour ne pas vérifier le certificat obtenu, mais cela n'est pas possible en raison de problèmes de sécurité dans l'environnement de production.
Le problème semble se rapporter à la SNI (Server Name Indication) étant donné que lorsque je lance
openssl s_client -connect sub.domain.com:443 -showcerts -servername sub.domain.com
je reçois le CERT bon, mais quand je lance
openssl s_client -connect sub.domain.com:443 -showcerts
je reçois un cert pour sub2.domain.com
ce qui explique pourquoi la vérification échoue. Comment cela est-il modifié par le processus d'initialisation de Rails et si oui, existe-t-il une option pour indiquer aux rails d'utiliser SNI?
- Rails v4.2.5.2
- rubis 2.3.3p222 (révision 21.11.2016 56859) [x86_64 Linux]
- OS: Fedora 25
- ca-certificates-11/02/2017 -1.1.fc25_2017.2.14-1.0.fc25.noarch.drpm: fait
SSL. Je ressens ta douleur. Avez-vous regardé cet outil: https://github.com/mislav/ssl-tools/blob/8b3dec4/doctor.rb - Je l'ai trouvé très utile (je ne suis en aucun cas lié au développeur). J'ai également trouvé ce poste particulièrement utile: http://stackoverflow.com/questions/36966650/ruby-nethttp-responds-with-opensslsslss-error-certificate-verify-failed/43769753#43769753. Bonne chance!!! – jvillian
Merci, mais malheureusement, cela n'aide pas car le problème ici est le fait que le même appel ('HTTParty.get ('https: // ...')') fonctionne bien si exécuté dans un IRB, mais après une application rails initialise il donne cette erreur SSL. – Killerpixler