Ssl 使用TLS和PEM证书从Axios.js到HTTPS服务器的HTTPS请求
我无法执行从Axios.js到HTTPS服务器的HTTPS请求 我认为原因可能与Axios.js对象的配置方式有关,因为我看到请求使用的是HTTPS+PEM证书,但我看不出Axios.js实例配置错误的任何原因(请参阅) 运行Javascript代码时我看到的错误是Ssl 使用TLS和PEM证书从Axios.js到HTTPS服务器的HTTPS请求,ssl,flask,https,axios,pem,Ssl,Flask,Https,Axios,Pem,我无法执行从Axios.js到HTTPS服务器的HTTPS请求 我认为原因可能与Axios.js对象的配置方式有关,因为我看到请求使用的是HTTPS+PEM证书,但我看不出Axios.js实例配置错误的任何原因(请参阅) 运行Javascript代码时我看到的错误是error:self-signed certificate,这在我看来很奇怪,因为我认为HTTPS客户端应该使用PEM证书作为自签名证书(例如,像web浏览器)。 在这里和这里检查HTTPS代理,我似乎应该将rejectUnautho
error:self-signed certificate
,这在我看来很奇怪,因为我认为HTTPS客户端应该使用PEM
证书作为自签名证书(例如,像web浏览器)。
在这里和这里检查HTTPS代理,我似乎应该将rejectUnauthorized
设置为false
。如果我这样做,然后删除那些字段cert
和key
,那么代码可以工作,但这意味着根本不使用TLS,所以我不确定TLS的意义是什么
使用Axios.js的Javascript HTTP(S)客户端:
const agent=new https.agent({
对,对,
cert:fs.readFileSync(`${uu dirname}/../../../ssl\u cert.crt`),
key:fs.readFileSync(`${uu dirname}/../../../ssl\u cert.key`),
})
const myApi=axios.create({
baseURL:'https://localhost:5000“,//烧瓶服务器
超时:10000,
标题:{
“内容类型”:“应用程序/json”
},
httpsAgent:代理,
});
已使用以下命令创建证书:
#生成两个文件:crt和key
openssl请求-新密钥rsa:4096-节点\
-密钥输出ssl_cert.key-x509-365天-输出ssl_cert.crt\
-subc“/C=GB/ST=England/L=London/O=foo/CN=foo”
#检查crt文件(例如检查有效期)
openssl x509-text-noout-in-ssl\u cert.crt
crt
和键都以----BEGIN
开头,所以我认为它们应该已经是PEM
格式了。AFAIK我可以在从Axios.js客户端执行HTTPS请求时使用crt
文件作为PEM
证书
这是Python Flask服务器,作为响应Javascript前端的后端:
app=Flask(\uuuuu name\uuuuuu)
ssl_上下文=(
“{…}/./ssl_cert.crt”,
“{…}/./ssl_cert.key”,
)
运行(主机=0.0.0.0',调试=True,ssl\U上下文=ssl\U上下文)
- 这些证书怎么了
- 如何在Javascript客户端和Python服务器之间建立安全连接(HTTP+S)