Existe um código de status HTTP apropriado para uso em clientes que enviam um nome de host incorreto (ou nenhum) por meio do SNI ou do cabeçalho do host HTTP?
Uma pergunta mais antiga aborda como e por que essas solicitações acontecem em primeiro lugar, bem como como você pode lidar tecnicamente com elas no Apache. No entanto, não aborda a escolha do código de status para a resposta.
No passado, implementei um proxy HTTP que enviaria o código de status 502 e uma página html explicando por que a mensagem de erro foi produzida. Minha justificativa para usar o 502 era uma expectativa de que eu o veria principalmente devido a configurações incorretas, o que significava que o proxy não conseguia encontrar um back-end adequado. Na realidade, acabou sendo muito mais frequente simplesmente ver nomes de host completamente falsos.
Existe outro código de status que seja mais apropriado e sinalize claramente ao cliente que o servidor neste endereço IP não reconhece o valor enviado através do SNI e/ou do cabeçalho do Host?
A RFC 6066 não especifica nem recomenda nenhum erro HTTP específico no caso de o nome do host enviado via SNI não corresponder ao cabeçalho do host HTTP. Ele recomenda que o servidor aborte o handshake TLS se o nome do host SNI não for aquele para o qual ele fornece serviço. Da seção 3 :
Como essa solicitação malformada pode passar pelo handshake TLS e precisa ser rejeitada em HTTP, é necessário um código de resposta HTTP. De todos os que existem, apenas um realmente se encaixa na situação:
Esta é, de fato, a resposta que especifica o RFC 7230. Da seção 5.4 descrevendo o cabeçalho do Host:
Vou recomendar fortemente contra o uso de 502 para isso. Sua semântica indica que algo está errado no lado do servidor e que a solicitação seria bem-sucedida se tentada posteriormente.