# Proxy SSL (descontinuado)

Source: https://docs.sisk-framework.org/es/docs/extensions/ssl-proxy.html

> [!CAUTION]
> **Descontinuado, no usar.** El paquete Sisk.SslProxy ya no se mantiene y está obsoleto en NuGet, sin paquete de reemplazo. Ya no compila contra la API actual de Cadente. Para servir HTTPS, use el soporte SSL nativo del [motor Cadente](https://docs.sisk-framework.org/es/docs/cadente.md) o una de las opciones en [Trabajando con SSL](https://docs.sisk-framework.org/es/docs/ssl.md). Esta página se conserva solo como referencia histórica.

El Proxy SSL de Sisk es un módulo que proporciona una conexión HTTPS para un [ListeningHost](https://docs.sisk-framework.org/api/Sisk.Core.Http.ListeningHost.md) en Sisk y enruta los mensajes HTTPS a un contexto HTTP inseguro. El módulo se construyó para ofrecer conexión SSL a un servicio que utiliza [HttpListener](https://learn.microsoft.com/pt-br/dotnet/api/system.net.httplistener?view=net-8.0) para ejecutarse, el cual no soporta SSL.

El proxy se ejecuta dentro de la misma aplicación y escucha mensajes HTTP/1.1, reenviándolos en el mismo protocolo a Sisk. Actualmente, esta característica es altamente experimental y puede ser lo suficientemente inestable como para no usarse en producción.

En la actualidad, SslProxy soporta casi todas las características de HTTP/1.1, como keep-alive, codificación chunked, websockets, etc. Para una conexión abierta al proxy SSL, se crea una conexión TCP al servidor de destino, y el proxy se reenvía a la conexión establecida.

SslProxy puede usarse con HttpServer.CreateBuilder de la siguiente manera:

```csharp
using var app = HttpServer.CreateBuilder(port: 5555)
    .UseRouter(r =>
    {
        r.MapGet("/", request =>
        {
            return new HttpResponse("Hello, world!");
        });
    })
    // agregar SSL al proyecto
    .UseSsl(
        sslListeningPort: 5567,
        new X509Certificate2(@".\ssl.pfx", password: "12345")
    )
    .Build();

app.Start();
```

Debe proporcionar un certificado SSL válido para el proxy. Para asegurarse de que el certificado sea aceptado por los navegadores, recuerde importarlo en el sistema operativo para que funcione correctamente.
