如何在 web2py 中实现有效的 https

How to implement valid https in web2py

我正在使用以下 web2py 切片尝试将 https 用于页面中的服务工作者功能。

http://www.web2pyslices.com/slice/show/1507/generate-ssl-self-signed-certificate-and-key-enable-https-encryption-in-web2py

我尝试使用以下行打开 web2py(带和不带 [-i IP 和 -p PORT]):

python web2py.py -c myPath/ssl_certificate.crt -k myPath/ssl_self_signed.key -i 127.0.0.1 -p 8000

但是 https 被声明为 'not private' 并且被划掉了。因此,我在尝试注册 Service Worker 时收到 SSL 证书错误。

请指出问题所在或是否需要更多信息

你提到“https is declared 'not private' and is crossed out”。这与浏览器不喜欢不可信(自签名)证书有关,因为这就是信任的全部。如果任何黑客可以制作证书并且 https 客户端至少不会皱眉回应,您仍然可能在没有注意到的情况下被黑客攻击或嗅探。由于您没有提到任何其他错误,我假设您从 web2py 服务器获得了其他有效结果?

如果是这样,你已经设置好你的自签名证书。如果您没有收到任何有效的 html 响应(当然,除了您的浏览器投诉之外),您的设置仍然存在问题。

如果您的 service worker 不接受证书,您可以做的(至少在测试环境中)是将自签名证书导入机器或 service worker 证书存储库。该过程因 OS 和版本而异。

希望这对您有所帮助。如果没有,请提供更多详细信息。

将 ssl 与 web2py 一起使用的最佳方法是使用 deployment recipes with prodution-grade webservers like apache, nginx or Lighttpd.

任何提到的脚本都会创建一个自签名证书,然后,您必须将生成的服务器配置文件修复为一个真实的证书。

您可以从许多经销商处购买真正的 ssl 证书,或者从 Let's Encript 免费获得,如果您有真实的 IP,例如在 VPS 或服务器中。

修复配置文件的一种简单方法是创建一个从真实证书到服务器配置文件中提到的证书的符号 link。

要在您的机器或内部测试服务器上测试您的服务工作者,只需使用非 ssl 端口,或者像 Remco 所建议的那样,将自签名证书导入客户端环境。