Windows Server 2016
我有一个简单的python服务器(用烧瓶)。它工作得很好,并且监听端口80 (或者我将其配置为侦听的任何内容)。
我需要通过SSL提供服务。
我有一个良好的证书,并将它导入计算机/个人证书商店。
然后我跑了:
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
命令运行正常。我在443上运行烧瓶web服务器,但它是未加密的。例如。
https://host/ // fails, because the server is serving plain text
http://host:443 // works, because the traffic ain't ssl-ified
如何解决?
要弄清楚:如何在不接触烧瓶代码的情况下解决问题(我们不希望将SSL证书放在文件系统上,这是不安全的)。我相信netsh可以用来在任意web服务器前终止SSL吗?
发布于 2018-05-30 17:27:20
答案是:忘了netsh吧,似乎不是票。
我们通过使用IIS作为反向代理来解决问题,如下所示:
https://developers.coveo.com/display/public/SearchREST/Configuring+HTTPS+Reverse+Proxy+in+IIS
还有这里
https://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis
发布于 2018-05-30 01:14:50
我对酒瓶不太熟悉。但是,我在Windows上运行的其他使用SSL的python应用程序都直接引用了PEM格式的证书和密钥文件。他们根本不与Windows商店接口,也不需要任何netsh
配置。我想,对于Flask来说也是如此,有一种特殊的方式来引用这些文件,并让它通过HTTPS为流量服务。
快速搜索"python烧瓶ssl“似乎有一些令人鼓舞的结果:
共识似乎围绕着创建一个引用证书和键的SSL.Context
实例,并将其作为参数传递给app.run
。
https://serverfault.com/questions/914360
复制相似问题