RHEL8.9中anywhere报错error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small的解决办法.

本文写于2024年9月2日, 维护有效期两年.

先说解决方法, 进入anywhere的keys目录,即/usr/local/lib/node_modules/anywhere/keys后,备份后生成rsa:2048位的新证书.

 

最近学习vite+vue, 跟着这个文档做的https://segmentfault.com/a/1190000041324864

可是在进入dist输出目录后,运行amywhere命令出错: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small

函数调用栈为

 

[root@fts24x dist]# anywhere
node:internal/tls/secure-context:70
    context.setCert(cert);
            ^

Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
    at node:internal/tls/secure-context:70:13
    at Array.forEach (<anonymous>)
    at setCerts (node:internal/tls/secure-context:68:3)
    at configSecureContext (node:internal/tls/secure-context:157:5)
    at Object.createSecureContext (node:_tls_common:116:3)
    at Server.setSecureContext (node:_tls_wrap:1439:27)
    at Server (node:_tls_wrap:1303:8)
    at new Server (node:https:75:3)
    at Object.createServer (node:https:131:10)
    at Object.<anonymous> (/usr/local/lib/node_modules/anywhere/bin/anywhere:169:7) {
  library: 'SSL routines',
  function: 'SSL_CTX_use_certificate',
  reason: 'ee key too small',
  code: 'ERR_SSL_EE_KEY_TOO_SMALL'
}

Node.js v20.5.1

原因是1024位密钥被nodejs认为安全性不够.

测试环境下生成rsa:2048位的新证书的方法:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

好像只要填写Country Name:CN and common name:localhost这两个就够了.其他的在浏览器访问提示时接受风险.

posted @ 2024-09-02 13:53  人生是苦聚  阅读(128)  评论(0编辑  收藏  举报