Https сервер с cpp-netlib

Как использовать cpp-netlib для реализации HTTPS-сервера?

Следующие вопросы мешают мне объединить asio SSL и cpp-netlib:

  • Оба SSL через asio и cpp-netlib используют Asio акцептор который прослушивает порт (например, 80 или 443), а затем отдельный сеанс для фактического соединения.

    Я предполагаю, что для HTTPS:

    1. Вы используете Asio SSL акцептор
    2. Который создает связь
    3. Затем выполните SSL-рукопожатие по этому соединению и, наконец,
    4. Пусть cpp-netlib обслуживает HTTP через это соединение

    Но как я могу отделить обработчик HTTP-соединения cpp-netlib от принимающего пользователя?

  • Или кто-то передает io_service из SSL-соединения asio? Если да, то какой? Или они все одинаковые?

  • Или есть совершенно другой путь?

20

Решение

Самый последний выпуск 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.

5

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

Длинный выстрел, но вы пробовали следующее:

  • #define BOOST_NETWORK_ENABLE_HTTPS
    перед включением http-клиента boost network.

  • Удостовериться OpenSSL находится в пути компилятора.

8