2015-12-10 3 views
1

Я бил головой об этом и нуждался в том, чтобы отталкивать мысли от кого-то другого. Я получаю на местном уровне:Вопросы, вызывающие запросы API для экземпляра дискурса из Heroku и локально с использованием диска discourse_api

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed 

я получаю на Heroku:

openssl::ssl::sslerror: ssl_connect returned=1 errno=0 state=sslv3 read server certificate b: certificate verify failed 

Мой дискурс экземпляр имеет SSL сертификат от DNSimple, так что все работает отлично. На heroku, так как у меня просто есть API-интерфейс rails, я решил не получать SSL-сертификат для этого, так как heroku уже предоставляет вам один и просто использует URL-адрес из вашего экземпляра heroku.

Теперь я могу использовать расширенный клиент для отдыха (расширение Chrome) и не создавать запросы к моему экземпляру дискурса. Вот код, который я использую с камнем discourse_api.

discourse_client = DiscourseApi::Client.new('https://community.desta.co') 
discourse_client.api_key = ENV['COMMUNITY_API_KEY'] 
# path to heroku cert, which I verified exists through `heroku run bash` 
discourse_client.ssl(ca_file: '/usr/lib/ssl/certs/ca-certificates.crt') 
discourse_client.api_username = 'system' 

Возможно, я не понимаю сертификаты? Пожалуйста помоги! Спасибо

ответ

0

Для тех, у кого может быть эта проблема, я смог ее исправить. Я протестировал свой SSL-конфиг на https://www.ssllabs.com/ssltest/analyze.html и понял, что у меня не было никаких промежуточных сертификатов вместе с моим основным сертификатом :(Определенно пропущено это, надеюсь, что он кому-то поможет.