FastGPT 关于使用自签名证书的问题

nhhxz33t  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(101)

我这边在通过fastgpt去调用我们自己部署的一个应用的时候报证书问题(该应用我们是布置了自签发证书)
报错信息如下:
{
"error": {
"message": "self-signed certificate in certificate chain",
"name": "Error",
"method": "post",
"baseURL": "
http://fastgpt-xxxxxx:3000 "
,
"url": "
https://awx.apps.os.xxxxxx.com/api/v2/job_templates/116/launch/"
,
"code": "SELF_SIGNED_CERT_IN_CHAIN"
}
}
请问,该问题该如何解决?是否是需要给fastgpt也要部署相应的自签发证书?如果是的话,请问fastgpt应该如何配置自签发证书?

sqyvllje

sqyvllje1#

我也遇到类似的问题,部署的是根证书,但是不确定为什么Fastgpt没有去调用这个根证书,也是显示self-signed certificate in certificate chain。

x8diyxa7

x8diyxa72#

在一般情况下,发起方不需要配置任何证书,除非被请求方有特殊要求。

ix0qys7i

ix0qys7i3#

确实,对端要求具有证书。因此,对于fastgpt这边,我也需要安装证书。但是,这个证书应该如何安装呢? 发自我的iPhone...

------------------ 原始邮件 ------------------
发件人: Archer ***@***.***>
发送时间: 2024年7月4日 15:31
收件人: labring/FastGPT ***@***.***>
抄送: zxx74520 ***@***.***>, Author ***@***.***>
主题: Re: [labring/FastGPT] 通过FASTGPT去调用其他应用接口的时候报证书问题 (Issue #1830) 没遇到过,发起方一般环境中,不需要配置任何证书,除非被请求方有特殊要求 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: ***@***.***>

11dmarpk

11dmarpk4#

默认情况下,fastgpt 安装了通用根证书 ca-certificates 并保证其是最新的。CA 机构正式签名的 https 证书都是支持的。对于自签名证书,由于没有任何可信证书,解决思路有如下几种:

  1. 修改自定义外部 http 调用的代码,在接口层增加变量
var req = https.request({ 
  host: 'https://self-signed.example.com', 
  port: 443,
  path: '/',
  method: 'GET',
  rejectUnauthorized: false, // <-修改这个参数为 false,默认为 true
  requestCert: true,
  agent: false
},...)


优势:可以在配置界面做只有一个开关参数,让用户控制是否允许自签名证书的调用,代码修改较小。
劣势:需要修改代码并发版,同时会不验证 CA,有一定的安全风险。

  1. 基本同上,但是修改代码如下
var req = https.request({ 
  host: 'https://self-signed.example.com', 
  port: 443,
  path: '/',
  method: 'GET',
  ca: [<ca-string[]>, {encoding: 'utf-8'})], // <-这里是自签名证书的根证书字符串
  requestCert: true,
  agent: false
},...)


优势:功能完备,按序配置自签名证书,请求还是加密的,安全性不降低。
劣势:需要大改造界面与存储根证书内容,让用户上传自签名的根证书;不同的域名,不同的根证书也需要配置多次。

  1. 对于私有化部署的 fastgpt,还可以在启动的环境变量中配置 NODE_TLS_REJECT_UNAUTHORIZED=0,可以让整个 node 进程不再检查 TLS 证书的合法性。
    优势:不需要修改任何代码,重启服务即可。
    劣势:非常不安全,任意 HTTPS 请求都不再验证 TLS 证书。建议仅在内网或可信环境环境中使用。

相关问题