Я пытался подключиться к удаленному серверу с помощью метода REST, в ruby я получаю сообщение об ошибке
/usr/lib/ruby/2.3.0/openssl/ssl.rb:315:in `post_connection_check': hostname "ip" does not match the server certificate (OpenSSL::SSL::SSLError)
from /usr/lib/ruby/2.3.0/net/http.rb:944:in `connect'
from /usr/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /usr/lib/ruby/2.3.0/net/http.rb:852:in `start'
from /var/lib/gems/2.3.0/gems/rest-client-2.0.2/lib/restclient/request.rb:715:in `transmit'
from /var/lib/gems/2.3.0/gems/rest-client-2.0.2/lib/restclient/request.rb:145:in `execute'
from /var/lib/gems/2.3.0/gems/rest-client-2.0.2/lib/restclient/request.rb:52:in `execute'
from /var/lib/gems/2.3.0/gems/rest-client-2.0.2/lib/restclient.rb:71:in `post'
эта ошибка произошла из приведенной ниже строки кода
require 'rest-client'
response = RestClient.post(url, data, content_type: ctype)
Я попытался подключиться к серверу с помощью openssl из командной строки следующим образом. Я смог подключиться к серверу
openssl s_client -connect ip:port
Как решить эту ошибку, поскольку я использую только рубин. (не рельсы) пожалуйста, помогите мне. Заранее спасибо.
да, это решается следующей строкой кода. схема = self.ssl ? "https": "http" url = "#{схема}://#{хост}:#{порт}/#{uri}"
Возможный дубликат Как избавиться от OpenSSL::SSL::SSLError
hostname "ip" does not match the server certificate (OpenSSL::SSL::SSLError)
означает, что при проверке сертификата сервера возникли проблемы.
В зависимости от вашей ситуации, можно игнорировать это или нет. Если вы хотите игнорировать его (примечание: небезопасно), используйте
response = RestClient.execute(method: :post,
url: url,
payload: data,
verify_ssl: false,
headers: { content_type: ctype })
См. https://github.com/rest-client/rest-client/issues/288
я использовал "reposne = RestClient::Request.execute", это сработало. Спасибо.
URL-адрес является URL-адресом «https»?