• uwsgi的 https 支持


    HTTPS支持 (v>1.3)

    使用 https ,, 选项。这个选项可能会被多次指定。首先使用OpenSSL工具生成你服务器的密钥证书签名请求,以及自注册证书:

    注解:你会想要一个用于生产的真正的SSL证书的。

    openssl genrsa -out foobar.key 2048
    openssl req -new -key foobar.key -out foobar.csr
    openssl x509 -req -days 365 -in foobar.csr -signkey foobar.key -out foobar.crt
    

    然后使用刚刚生成的SSL证书和密钥启动服务器:

    uwsgi --master --https 0.0.0.0:8443,foobar.crt,foobar.key
    

    由于端口443(这个端口通常用于HTTPS)是特权端口 (即非root进程可能不会绑定它),因此你可以使用共享socket机制,像这样绑定后去除特权:

    uwsgi --shared-socket 0.0.0.0:443 --uid roberto --gid roberto --https =0,foobar.crt,foobar.key
    

    uWSGI将会绑定到任何IP的443端口,然后删除那些 roberto 的特权,接着讲共享socket 0 (=0) 用于HTTPS。

    注解:=0语法目前未公开。

    设置SSL/TLS加密

    https 选项的第四个参数是可选的,你可以用它来指定OpenSSL加密套件。

    [uwsgi]
    master = true
    shared-socket = 0.0.0.0:443
    uid = www-data
    gid = www-data
    
    https = =0,foobar.crt,foobar.key,HIGH
    http-to = /tmp/uwsgi.sock
    

    这将会为你的SSL/TLS事务(尽可能)设置所有的 HIGHest(最高的) 密码。

    客户端证书认证

    https 还可以有可选的第五个参数。

    你可以用它来指定一个CA证书来对你的客户端进行鉴权。生成你的CA密钥证书 (这次,密钥将会是4096位,并且有密保):

    openssl genrsa -des3 -out ca.key 4096
    openssl req -new -x509 -days 365 -key ca.key -out ca.crt
    

    生成服务器密钥和CSR (如前):

    openssl genrsa -out foobar.key 2048
    openssl req -new -key foobar.key -out foobar.csr
    

    使用你的新CA注册服务器证书:

    openssl x509 -req -days 365 -in foobar.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out foobar.crt
    

    为你的客户端创建一个密钥和一个CSR,使用CA进行对其进行注册,然后将其打包为 PKCS#12。为每个客户端重复这些步骤。

    openssl genrsa -des3 -out client.key 2048
    openssl req -new -key client.key -out client.csr
    openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
    openssl pkcs12 -export -in client.crt -inkey client.key -name "Client 01" -out client.p12
    

    然后为证书客户端鉴权配置uWSGI

    [uwsgi]
    master = true
    shared-socket = 0.0.0.0:443
    uid = www-data
    gid = www-data
    https = =0,foobar.crt,foobar.key,HIGH,!ca.crt
    http-to = /tmp/uwsgi.sock
    

    注解:如果你不想要强制客户端证书鉴权,那么移除https选项中ca.crt之前的’!’。

    官方文档:https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/HTTPS.html

  • 相关阅读:
    jQuery Event.delegateTarget 属性详解
    velocity 判断 变量 是否不是空或empty
    触碰jQuery:AJAX异步详解
    jQuery Select操作大集合
    常用元素默认margin和padding值问题探讨
    九大排序算法再总结
    八大排序算法
    JavaScript中toStirng()与Object.prototype.toString.call()方法浅谈
    使用CSS3的appearance属性改变元素的外观
    CSS清浮动处理(Clear与BFC)
  • 原文地址:https://www.cnblogs.com/davis12/p/14411643.html
Copyright © 2020-2023  润新知