NETSH - como ligar o certificado SSL à porta e passar tráfego ao aplicativo?

1

No Windows Server 2016

Eu tenho um servidor web python simples (em frascos). Ele funciona muito bem e escuta na porta 80 (ou qualquer coisa que eu configure para ouvir).

Eu preciso atendê-lo por SSL.

Eu tenho um bom certificado e importado para a loja de informática / pessoal.

Então eu corri:

netsh http add sslcert ipport=0.0.0.0:443 certhash=8caef2be185a0c94d################ appid="{7E46BD40-39C6-4813-B414-019AD3332421}"   

netsh http add urlacl url=https://+:443/ user=Everyone

Os comandos funcionam bem. Eu corro o servidor da web flask em 443, mas está servindo não criptografado. Por exemplo,

https://host/    // fails, because the server is serving plain text
http://host:443   // works, because the traffic ain't ssl-ified

Como resolver?

Para ser claro: como resolver sem tocar no código do frasco (não queremos colocar o certificado SSL no sistema de arquivos, isso não é seguro). Eu acredito que o netsh pode ser usado para encerrar o SSL na frente de um servidor web arbitrário?

    
por samsmith 30.05.2018 / 02:54

2 respostas

0

A resposta é: Esqueça netsh, não parece ser o ticket.

Nós resolvemos usando o IIS como um proxy reverso, conforme documentado aqui:

link

e aqui

link

    
por 30.05.2018 / 19:27
0

Eu não estou muito familiarizado com o Flask. Mas todos os outros aplicativos python que eu executei no Windows que usavam SSL referenciavam diretamente um certificado formatado pelo PEM e um arquivo de chave. Eles não faziam interface com a loja de certificação do Windows ou precisavam de netsh config. Eu presumo que o mesmo é verdade para o Flask e há uma maneira particular de fazer referência a esses arquivos e que eles sirvam ao tráfego por HTTPS.

Uma rápida pesquisa na web por "python flask ssl" parece ter alguns resultados encorajadores:

O consenso parece girar em torno da criação de uma instância de SSL.Context que referencia o certificado e a chave e passa-o como um argumento para app.run .

    
por 30.05.2018 / 03:14