"Vue报错error:0308010C:digital envelope routines::unsupported" 错误通常是由于 OpenSSL 版本不兼容引起的。如果使用的是较早的 OpenSSL 版本,会出现无法支持某些加密算法的情况。
为了解决这个问题,我们需要更新 OpenSSL 版本或指定网络请求中支持的加密算法。下面是两种解决方法:
解决方法1:更新 OpenSSL 版本
- 确认您的 OpenSSL 版本是否较早。可以通过以下命令查看 OpenSSL 版本:
bash
openssl version
如果输出的版本号低于 1.1.1,则可能会因算法不支持而出现“error:0308010C:digital envelope routines::unsupported”的错误。
- 更新 OpenSSL 版本。如果您使用的是 Ubuntu 或 Debian 系统,可以使用以下命令进行更新:
bash
sudo apt update
sudo apt install openssl libssl-dev
如果您使用的是其他操作系统,请根据系统和 OpenSSL 版本自行搜索相关更新命令。
- 确认 OpenSSL 已经更新到较新版本。可以使用以下命令查看 OpenSSL 版本:
bash
openssl version
版本号应该高于 1.1.1。
解决方法2:限定支持的加密算法
如果您无法更新 OpenSSL 版本,可以在网络请求中限定支持的加密算法,以避免出现“error:0308010C:digital envelope routines::unsupported”的错误。以下是一个基于 Axios 的前端示例:
import axios from "axios";
import crypto from "crypto";
// 创建 Axios 实例
const instance = axios.create({
// 指定支持的 TLV1.2 加密算法
httpsAgent: new https.Agent({
ciphers: crypto.constants.SSL_OP_NO_TLSv1 | crypto.constants.SSL_OP_NO_TLSv1_1,
}),
});
// 发送网络请求
instance.get("/api/xxx").then((response) => {
console.log(response);
}).catch((error) => {
console.error(error);
});
在上面的示例中,我们通过创建 Axios 实例并通过 httpsAgent
选项指定支持的 TLV1.2 加密算法来解决这个问题。其中 crypto.constants.SSL_OP_NO_TLSv1 | crypto.constants.SSL_OP_NO_TLSv1_1
表示只支持 TLSv1.2 协议,并禁止使用 TLSv1 和 TLSv1.1 协议。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue报错error:0308010C:digital envelope routines::unsupported的解决方法 - Python技术站