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