开发者社区 > 云原生 > 中间件 > 正文

请问这个场景tengine能现实吗?

69c66c2749d0c1554984588850cf7b37.png
我在社区看到一个Tengine + BabaSSL的文章,最近拿此文章的Tengine搭一套环境。目的是想接口用http协议请求tengine,tengine能引入一个国密的ca证书并且以国密的协议做正向代理。请问这个场景tengine能现实吗?当前tengine编译了Tongsuo支持了ntls协议,但是只能提供服务端的国密协议,正向代理转发至客户端依旧是tls协议。
./configure --add-module=modules/ngx_openssl_ntls \
--with-openssl=../path/to/BabaSSL \

展开
收起
三分钟热度的鱼 2024-01-10 14:07:39 46 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,Tengine 可以支持国密协议和正向代理。在编译 Tengine 时,可以通过添加模块 ngx_openssl_ntls 来启用 NTLs 协议的支持,并通过指定 OpenSSL 路径来使用 BabaSSL 作为底层密码库。

    要实现接口用 HTTP 协议请求 Tengine,并让 Tengine 引入一个国密的 CA 证书,可以使用以下步骤:

    1. 下载并安装 BabaSSL,确保已经安装了所有必要的依赖项。
    2. 将 BabaSSL 的路径添加到环境变量中,以便 Tengine 可以找到它。
    3. 在编译 Tengine 时,使用 --with-openssl 参数指定 BabaSSL 的路径。例如:
      ./configure --add-module=modules/ngx_openssl_ntls \
      --with-openssl=../path/to/BabaSSL
      
    4. 在 Tengine 配置文件中,启用 NTLs 协议的支持。例如,在 http 块中添加以下行:
      tls on;
      tls_protocols TLSv1.2 TLSv1.3;
      tls_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
      
    5. 在 Tengine 配置文件中,配置正向代理。例如,在 http 块中添加以下行:
      location / {
          proxy_pass http://backend_server;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
      }
      
      其中,backend_server 是你要代理的目标服务器地址。
    6. 保存配置文件并重新加载 Tengine。
    7. 启动 Tengine 服务。

    现在,Tengine 应该能够接受 HTTP 请求,并将它们转发到指定的后端服务器。同时,它还会使用 BabaSSL 提供的国密协议进行加密通信。

    2024-01-13 15:49:31
    赞同 展开评论 打赏
  • 使用proxy_connect 透传客户端的国密报文

    https://tengine.taobao.org/document_cn/proxy_connect_cn.html 此回答整理自钉群“Tengine和Tengine-Ingress开源交流群”

    2024-01-10 16:52:29
    赞同 展开评论 打赏
问答分类:
问答地址:

为企业提供高效、稳定、易扩展的中间件产品。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载