Skip to content

Node.js 错误代码 ERR_OSSL_EVP_UNSUPPORTED

Published: at 03:12 AMSuggest Changes

错误代码 ERR_OSSL_EVP_UNSUPPORTED

和 Nodejs 版本有一定关系 和证书参数也有一定的关系

$env:NODE_OPTIONS="--openssl-legacy-provider"

set NODE_OPTIONS=--openssl-legacy-provider

补充:
在终端输入一次只能本次生效,如果想永久生效可以在 package.json 文件中修改对应的 scripts 节点的内容如下:

"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",

当然,如果开发提供的格式不对,如 Padfadfafccaf...xadfda,那么就会报错,因为缺少 -----BEGIN PRIVATE KEY----- 这些

// 将 PEM 格式的私钥转换为适用于 Web Crypto API 的格式
async function importPrivateKey(pem) {
  const pemHeader = "-----BEGIN PRIVATE KEY-----";
  const pemFooter = "-----END PRIVATE KEY-----";
  const pemContents = pem
    .replace(pemHeader, "")
    .replace(pemFooter, "")
    .replace(/\s/g, "");
  const binaryDer = window.atob(pemContents);
  const binaryDerArray = new Uint8Array(binaryDer.length);
  for (let i = 0; i < binaryDer.length; i++) {
    binaryDerArray[i] = binaryDer.charCodeAt(i);
  }
  return window.crypto.subtle.importKey(
    "pkcs8",
    binaryDerArray.buffer,
    {
      name: "RSA-OAEP",
      hash: "SHA-1",
    },
    true,
    ["decrypt"]
  );
}

Previous Post
URL Scheme 调用 App
Next Post
禁用 H5 视频自动全屏