zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Angular Universal 学习笔记
    SAP Spartacus 如何获得当前渲染页面的 CMS 元数据
    Angular 服务器端渲染的学习笔记(二)
    Angular 服务器端渲染的学习笔记(一)
    第三方外部 Saas提供商如何跟使用 SAP 系统的客户进行对接接口集成
    如何从 SAP Spartacus Product Detail 页面,找到其 Angular 实现 Component 的位置
    具备自动刷新功能的 SAP ABAP ALV 报表
    C++学习目录
    c--条件编译
    c--文件读写--二进制
  • 原文地址:https://www.cnblogs.com/davis12/p/14411643.html
Copyright © 2011-2022 走看看