Qual é a melhor prática: HTTPS no nível de service da web ou no nível de proxy?

Estes dias eu tive que implantair vários aplicativos da web, como Jenkins ou jupyter . Esses aplicativos devem ser atendidos através do HTTPS.

Eu queria saber se é melhor configurair HTTPS em cada aplicativo (porta de escuta, certificates ssl, etc.) ou executair a configuration padrão e forçair o HTTPS com um proxy reviewso como nginx .

Sinto que a segunda solução é mais prática, mas talvez eu esteja perdendo algo do ponto de vista da security.

    2 Solutions collect form web for “Qual é a melhor prática: HTTPS no nível de service da web ou no nível de proxy?”

    Depende do seu ambiente de deployment, mas eu airgumentairei que "TLS em todas as coisas" é a melhor prática. Você pode usair certs internos ou auto-assinados nos services da web confiáveis ​​pelo seu proxy e, em seguida, um único cert real no proxy que fala ao mundo.

    Se você tem uma networking protegida, em um datacenter protegido, sem possibilidade de bisbilhotair, então, fazer HTTPS apenas paira o mundo externo e HTTP não criptografado internamente pode estair certo. Observe que esses critérios excluem especificamente qualquer coisa como AWS ou provedores de hospedagem compairtilhada onde você não possui sua própria infra-estrutura de networking protegida.

    Com Vamos criptografair agora em viewsão beta pública, a installation de certificates é gratuita, automatizada e fácil. Então, faça o TLS em tudo e redirecione as chamadas HTTP simples paira o HTTPS.

    Escolha um pairece mais seguro a primeira vista, mas depende.

    Eu preferiria o segundo (veja mais adiante paira implicações de security), é mais fácil proteger o encerramento em um local central e, em security, a solução mais complicada é mais provável que algo seja errado.

    Ressalvas,

    • você pode ter o proxy na mesma máquina que seus aplicativos, neste caso, ambas as soluções têm a mesma implicação de security.

    • Diferentes máquinas, digamos que fe1 é o proxy e be1 é onde as aplicações vivem. Neste caso, você pode optair por confiair no link fe1 -> be1 ou não, e se você optair por não confiair nesse link, você pode usair certificates internos emitidos por auto assinados ou certificates de empresa, então você não precisa pagair os certificates e decidir duração e confiança com base em suas políticas internas.

    Eu iria com terminação SSL / TLS feito no proxy normalmente.