如何制作瓶子服务器HTTPS python

时间:2017-05-16 23:18:01

标签: python-3.x https cherrypy bottle

我正在使用Bottle作为我的网络服务。目前,它在瓶子的默认wsgi服务器上运行并处理HTTP请求。我想加密我的webservice并处理HTTPS请求。有人可以建议一个方法。我尝试在cherrypy服务器上运行,但最新版本不支持pyOpenSSLAdapter。

3 个答案:

答案 0 :(得分:3)

您知道瓶子还支持Gunicorn。您可以在以下位置找到SSL信息

代码示例

import bottle
from bottle import Bottle

BASE = Bottle()


@BASE.route('/', ['GET'])
def index():
    return 'Index'


bottle.run(
    app=BASE, 
    host='0.0.0.0',
    port='8888',
    server='gunicorn',
    reloader=1,
    debug=1,
    keyfile='key.pem',
    certfile='cert.pem'
)

答案 1 :(得分:1)

通过nginx反向代理实现https的快速方法:-

apt install nginx

编辑/ etc / nginx / sites-enabled / default:-

server {
  listen 80 default_server; #listen on port 80
  listen [::]:80 default_server ipv6only=on;

  server_name yourdomain.com www.yourdomain.com; #edit 'yourdomain' with your domain name
  root /var/www/html/; #edit to match wherever your bottle-py root folder is

  location / {
    proxy_pass http://127.0.0.1:8080/; 
    #assuming configuration of bottle-py run() command is 127.0.0.1:8080
  }
}

使用certbot的HTTPS:-

登录到您的域名提供商的“ yourdomain.com”并指向“ A-records”以指向您的服务器IP。

apt install certbot python-certbot-nginx
sudo certbot --nginx

按照certbot的终端说明进行操作。现在,nginx反向代理通过https为bottle-py提供了服务。

检查https://yourdomain.com并确认https有效的证书安装。

这是一种快速的方法。在nginx和certbot文档中了解更多信息。

答案 2 :(得分:0)

您需要将您的WSGI服务器(当然不是WsgiRef)置于支持https的反向代理之后。 Nginx是最常见的选择。