Https-server mit cpp-Netzwerkbibliothek
Wie kann man cpp-Netzwerkbibliothek zu implementieren, die ein HTTPS-server?
- cpp-Netzwerkbibliothek verwendet werden kann als ein HTTP-server (siehe service selector, handler und main in meinem Beispiel-code).
- Mit boost::asio, einrichten einer SSL-Verbindung ist nicht allzu schwer (siehe mein Versuch SSL).
- cpp-Netzwerkbibliothek akzeptiert eine boost::asio::io_service über die Optionen an den Konstruktor (cpp-Netzwerkbibliothek Referenz)
Folgende Fragen halten mich die Kombination aus asio-SSL-und cpp-Netzwerkbibliothek:
-
Sowohl SSL via asio-und cpp-Netzwerkbibliothek verwenden Sie ein asio-Akzeptor lauscht auf einen port (z.B. 80 oder 443) und dann einen separaten Modus für die aktuelle Verbindung.
Ich davon ausgehen, dass für HTTPS:
- Verwenden Sie den asio-ssl-Akzeptor
- Die instanziiert eine Verbindung
- Führen Sie dann die SSL-handshake über diese Verbindung, und schließlich
- Cpp-Netzwerkbibliothek dienen HTTP über diese Verbindung
Aber wie kann ich separate cpp-Netzwerkbibliothek die HTTP-connection-handler von der Akzeptor wird verwendet?
-
Oder muss ein pass ein io_service der asio-SSL-Verbindung? Wenn ja, welche? Oder sind die alle gleich?
-
Oder ist es eine komplett andere route zu nehmen?
- Leider HTTPS wird nicht unterstützt in cpp-Netzwerkbibliothek.
- bump, alle Köpfe bis auf das Problem? Haben Sie sich schließlich einrichten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der neuesten Version von cpp-Netzwerkbibliothek enthält ein Beispiel. Finden Sie es in cpp-Netzwerkbibliothek-0.11.1RC2/libs/network/Beispiel/http/ssl. Die github-Dateien sind da:
https://github.com/cpp-netlib/cpp-netlib/tree/0.11-devel/libs/network/example/http/ssl
Müssen Sie eine async_server.
Eine lange erschossen, aber Sie haben versucht, die folgenden:
#define BOOST_NETWORK_ENABLE_HTTPS
vor, einschließlich der boost-Netzwerk-http-client.
Stellen Sie sicher
OpenSSL
ist in den compiler-Pfad.