Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
HTTPS (HTTP sobre conexões criptografadas TLS) é a maneira padrão de fazer solicitações HTTP na Internet por motivos de segurança, integridade e privacidade. Há várias considerações de HTTPS/TLS para considerar ao usar um proxy reverso, como YARP.
Terminação de TLS
O YARP é um proxy HTTP de nível 7, o que significa que as conexões HTTPS/TLS de entrada são totalmente descriptografadas pelo proxy para que ele possa processar e encaminhar as solicitações HTTP. Isso é comumente conhecido como Terminação TLS. As conexões de saída para os destinos podem ou não ser criptografadas, dependendo da configuração fornecida.
Túnel TLS (CONNECT)
O túnel TLS usando o método CONNECT é um recurso usado para solicitações de proxy sem descriptografá-las. Isso não é suportado pelo YARP e não há planos para adicioná-lo.
Configurando conexões de entrada
O YARP pode ser executado em cima de todos os servidores do ASP.NET Core e configurar HTTPS/TLS para conexões de entrada é específico do servidor. Verifique os documentos de Kestrel, do IIS e Http.Sys para obter detalhes de configuração.
Filtros TLS avançados com Kestrel
Kestrel oferece suporte para interceptar conexões recebidas antes do handshake TLS. O YARP inclui uma API TlsFrameHelper que é capaz de analisar o handshake TLS bruto e permitir que você colete telemetria personalizada ou rejeite prontamente conexões. Essas APIs não podem modificar o handshake do TLS ou descriptografar o fluxo de dados. Veja este exemplo .
Configurando conexões de saída
Para habilitar a criptografia TLS ao se comunicar com um destino, especifique o endereço de destino como https
como "https://destinationHost"
. Consulte os documentos de configuração de para obter exemplos.
O nome do host especificado no endereço de destino será usado para o handshake do TLS por padrão, incluindo validação de certificado de servidor e SNI. Se a substituição do cabeçalho de host original via proxy estiver habilitada, esse valor será usado no handshake do TLS. Se um valor de host personalizado precisar ser usado, use a transformação RequestHeader para definir o cabeçalho do host.
As conexões de saída para os destinos são tratadas por HttpClient/SocketsHttpHandler. Uma instância e configurações diferentes podem ser configuradas por cluster. Algumas configurações estão disponíveis no modelo de configuração, enquanto outras só podem ser configuradas no código. Consulte os documentos do HttpClient para obter detalhes.
Os certificados do servidor de destino precisam ser confiados pelo proxy ou a validação personalizada deve ser aplicada por meio da configuração do HttpClient.