Restbed генерирует ошибку SSL Handshake при попытке подключения с использованием клиентов, отличных от Chrome

Я создал веб-сервис, используя Restbed, который работает на сервере Debian. Я могу установить соединение и отправлять запросы на него, когда он работает по HTTP. Однако, когда я добавляю настройки SSL для запуска службы как HTTPS, я сталкиваюсь с проблемой: я получаю ошибку рукопожатия SSL, когда я пытаюсь соединиться с моим собственным клиентом. Я реализовал пример клиента Restbed, который работает в Windows и Linux, но у обоих одинаковая проблема. Кроме того, я реализовал еще один клиент в Python, но все же, такая же ошибка возникает. Я должен отметить, что во всех случаях я отключаю проверку сертификата.

Я также проверил с почтальоном, и я просто получаю сообщение об ошибке: «Не удалось получить ответ», хотя я отключил параметр «Проверка сертификата SSL».

Мне просто интересно, что не так со всеми этими клиентами, и почему Chrome может легко подключаться?

Клиенты могут подключаться к сервису, если я запускаю их обоих на одном сервере. Эта проблема возникает, когда я пытаюсь подключиться из удаленной системы.
Далее я включил соответствующие коды.

Коды сервера Restbed:

auto resource = make_shared< Resource >();
resource->set_path("/resource");
resource->set_method_handler("GET", get_method_handler);

auto ssl_settings = make_shared< SSLSettings >();
ssl_settings->set_http_disabled(true);
ssl_settings->set_private_key(Uri("file:///tmp/pv.key"));
ssl_settings->set_certificate(Uri("file:///tmp/crt.crt"));
ssl_settings->set_temporary_diffie_hellman(Uri("file:///tmp/dh768.pem"));

auto settings = make_shared< Settings >();
settings->set_ssl_settings(ssl_settings);

((Service*)RestfulService)->publish(resource);
((Service*)RestfulService)->start(settings);

Сервер регистрирует эту ошибку после получения запроса от клиента: «Сбой рукопожатия SSL,« неожиданное сообщение »». Коды перезагруженных клиентов:

auto request = make_shared< Request >(Uri("https://X.X.X.X/resource"));
request->set_header("Accept", "*/*");

auto settings = make_shared< Settings >();
auto response = Http::sync(request, settings);
for (const auto header : response->get_headers())
{
fprintf(stderr, "Header '%s' > '%s'\n", header.first.data(), header.second.data());
}
if (response->has_header("Transfer-Encoding"))
{
Http::fetch("\r\n", response);
}
else
{
auto length = 0;
response->get_header("Content-Length", length);
Http::fetch(length, response);
}
fprintf(stderr, "Body:           %.*s...\n", 3, response->get_body().data());

-1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]