c++ https boost-asio cpp-netlib

c++ - Servidor Https con cpp-netlib



boost-asio (2)

La versión más reciente de cpp-netlib contiene un ejemplo funcional. Lo encontrará en cpp-netlib-0.11.1RC2 / libs / network / example / http / ssl. Los archivos github están allí: https://github.com/cpp-netlib/cpp-netlib/tree/0.11-devel/libs/network/example/http/ssl

Tienes que usar un servidor async.

¿Cómo se puede usar cpp-netlib para implementar un servidor HTTPS?

  • cpp-netlib se puede usar como un servidor HTTP (vea el selector de servicio , el handler y la página main en mi código de ejemplo).
  • Con boost :: asio, configurar una conexión SSL no es demasiado difícil (vea mi intento de SSL ).
  • cpp-netlib acepta un boost :: asio :: io_service a través de las opciones proporcionadas al constructor ( referencia de cpp-netlib )

Las siguientes preguntas me impiden combinar asio SSL y cpp-netlib:

  • Tanto SSL a través de asio como cpp-netlib utilizan un aceptador de asio que escucha un puerto (por ejemplo, 80 o 443) y luego una sesión separada para la conexión real.

    Supongo que para HTTPS:

    1. Utiliza el aceptador asio ssl
    2. Lo que instancia una conexión
    3. Luego realice el protocolo de enlace SSL sobre esta conexión, y finalmente
    4. Haga que cpp-netlib sirva HTTP a través de esta conexión

    Pero, ¿cómo puedo separar el controlador de conexión HTTP de cpp-netlib del aceptador?

  • ¿O se pasa un io_service de la conexión SSL de asio? ¿Si es así, Cuál? ¿O son todos iguales?

  • ¿O hay una ruta completamente diferente para tomar?


Un tiro largo, pero has intentado lo siguiente:

  • #define BOOST_NETWORK_ENABLE_HTTPS
    antes de incluir el cliente http de boost network.

  • Asegúrese de que OpenSSL esté en la ruta del compilador.