javascript - Rails API SSL 问题:将 https 与 ReactJS 客户端一起使用时出现“没有合适的密钥共享”
问题描述
我需要使用 https 协议进行开发。我有一个使用 ReactJS 客户端的 Rails API。
客户端
我在我的包 json 中将我的 https 设置在客户端,如下所示:
包.json
{
"scripts": {
"start": "HTTPS=true PORT=3001 react-scripts start"
}
}
然后,我配置了我的 axios 实例:
axiosClient.js
import axios from 'axios';
import https from 'https';
// Those are the same certificates I will later use on server side
import crt from 'path/to/ssl/localhost.crt.pem';
import key from 'path/to/ssl/localhost.key.pem';
const httpsAgent = new https.Agent({
rejectUnauthorized: false,
cert: crt,
key: key
});
const axiosClient = axios.create({
baseURL: process.env.REACT_APP_BACKEND_URL,
httpsAgent,
headers: {
'Access-Control-Allow-Origin': '*', // Required for CORS support to work
'Access-Control-Allow-Credentials': true, // Required for cookies, authorization headers with HTTPS
Accept: 'application/json',
'Content-Type': 'application/json'
}
});
export default axiosClient;
服务器端
我从终端生成了自签名证书,然后将其放在ssl
我的配置文件夹中的一个文件夹中。
project_folder
|- config
|- ssl
|- localhost.crt
|- localhost.key
然后,我将以下行添加到我的development.rb
文件中:
发展.rb
config.force_ssl = false
我的错误
我搜索并尝试了很多东西,但无法摆脱客户端的以下错误:
net::ERR_CONNECTION_CLOSED
在我的服务器端控制台上:
2019-07-29 12:17:04 +0200: SSL error, peer: 127.0.0.1, peer cert: , #<Puma::MiniSSL::SSLError: OpenSSL error: error:141F7065:SSL routines:final_key_share:no suitable key share - 337604709>
我怎样才能摆脱这个?我在 ReactJS 和 Rails 中使用完全相同的证书。
编辑
这是我在 React 中的环境文件:
.env.development.local
REACT_APP_BACKEND_URL="https://127.0.0.1:3000"
对服务器的调用是使用 https 协议进行的,我在控制台中检查了该协议。
解决方案
推荐阅读
- c# - 使用 Azure CosmosDB 的 Entity Framework Core 反复初始化
- python - 如何从包含浮点数的 python 中的两个列表中计算利润?
- multithreading - 同步:当所有其他线程都离开时唤醒一个线程
- python - 如何解决python中的循环导入问题?
- garbage-collection - 为什么标记压缩比标记复制慢?
- google-apps-script - 将范围从一个工作表重新分配到另一个工作表
- r - 从 sapply 中排除一列
- javascript - 根据不透明度值将 6 位十六进制颜色转换为 6 位十六进制颜色
- java - Joda Time toDate() 错误结果
- android - 使用 PackageInstaller 在 Android 中进行并行安装