Сервер Https с cpp-netlib
Как использовать cpp-netlib для реализации HTTPS-сервера?
- cpp-netlib может использоваться как HTTP-сервер (см. селектор услуг, handler и main в моем примере кода).
- С boost:: asio настройка SSL-соединения не слишком сложна (см. моя попытка SSL).
- cpp-netlib принимает boost:: asio:: io_service через параметры, предоставленные конструктору (ссылка cpp-netlib)
Следующие вопросы не позволяют мне комбинировать asio SSL и cpp-netlib:
-
Оба SSL через asio и cpp-netlib используют asio acceptor, который прослушивает порт (например, 80 или 443), а затем отдельный сеанс для фактическое соединение.
Я предполагаю, что для HTTPS:
- Вы используете акселератор asio ssl
- Что создает соединение
- Затем выполните SSL-квитирование по этому соединению и, наконец,
- Попросите cpp-netlib выполнить HTTP через это соединение.
Но как я могу отделить обработчик HTTP-соединения cpp-netlib от акцептора?
-
Или проходит ли io_service из SSL-соединения asio? Если да, то какой? Или они все равно?
-
Или существует совсем другой маршрут?
Ответы
Ответ 1
В последней версии cpp-netlib содержится рабочий пример. Вы найдете его в cpp-netlib-0.11.1RC2/libs/network/example/http/ssl. Файлы github:
https://github.com/cpp-netlib/cpp-netlib/tree/0.11-devel/libs/network/example/http/ssl
Вы должны использовать async_server.
Ответ 2
Длинный снимок, но вы пробовали следующее:
-
#define BOOST_NETWORK_ENABLE_HTTPS
перед тем, как включить клиент http с повышающей сетью.
-
Убедитесь, что OpenSSL
находится в пути к компилятору.