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:
- Utiliza el aceptador asio ssl
- Lo que instancia una conexión
- Luego realice el protocolo de enlace SSL sobre esta conexión, y finalmente
- 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.