Saltearse al contenido

Servidor TLS

En este ejemplo, aprenderás a configurar un servidor HTTPS seguro usando el soporte TLS integrado de Zuno. Esto es esencial para proteger datos sensibles y habilitar comunicación segura entre clientes y tu API.


tls-server/
├── CMakeLists.txt
├── certs/
│ ├── cert.pem
│ └── key.pem
└── main.cpp

cmake_minimum_required(VERSION 3.20)
project(tls_server)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(FetchContent)
FetchContent_Declare(
zuno
GIT_REPOSITORY https://github.com/ZunoFramework/zuno.git
GIT_TAG main
)
FetchContent_MakeAvailable(zuno)
add_executable(tls-server main.cpp)
target_link_libraries(tls-server PRIVATE zuno)

#include <zuno/zuno.hpp>
int main() {
zuno::App app;
app.get("/", [](Request& req, Response& res) {
res.send("Conexión segura establecida vía TLS.");
});
app.listenTLS(443, {
.certFile = "certs/cert.pem",
.keyFile = "certs/key.pem"
});
}

Para desarrollo local, puedes generar un certificado autofirmado con OpenSSL:

Terminal window
mkdir certs
openssl req -x509 -newkey rsa:4096 -keyout certs/key.pem -out certs/cert.pem -days 365 -nodes

Puedes usar valores ficticios para las preguntas o automatizarlo con -subj.


Terminal window
cmake -B build
cmake --build build
sudo ./build/tls-server

⚠️ El puerto 443 requiere privilegios elevados en la mayoría de sistemas.

Luego visita https://localhost en tu navegador. Es posible que debas aceptar una advertencia de seguridad si usas un certificado autofirmado.



Zuno hace que el desarrollo seguro por defecto en C++ no solo sea posible—sino elegante.