You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RSA公私钥签名JWT时遇error:1E08010C错误求排查

解决JWT签名报错"error:1E08010C:DECODER routines::unsupported"

核心问题及修复方案

  • 私钥格式不匹配
    你生成的RSA私钥是PKCS#1格式(起始标记为-----BEGIN RSA PRIVATE KEY-----),而jsonwebtoken库默认适配PKCS#8格式(起始标记为-----BEGIN PRIVATE KEY-----)。你可以将私钥转换为PKCS#8格式,或者在代码中指定兼容PKCS#1的处理方式(部分版本的库支持直接识别,但转换格式更稳妥)。

  • 环境变量中私钥的换行丢失
    将私钥存入环境变量时,多数系统会自动剔除换行符,导致密钥结构损坏。解决办法:

    1. 配置环境变量时,用\n替代实际换行,示例:
      PRIVATE_ACCESS="-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQE...\n-----END RSA PRIVATE KEY-----"
      
    2. 或者在代码中手动还原换行:
      const privateKey = process.env.PRIVATE_ACCESS.replace(/\\n/g, '\n');
      let access = jwt.sign({role: 'guest'}, privateKey, {algorithm: 'RS256', expiresIn: '1h'});
      
  • 私钥完整性检查
    确认私钥的起始、结束标记完整,没有多余的空格、换行或其他杂字符混入。

快速验证步骤

先将私钥直接硬编码到代码中进行测试,如果能正常签名,说明问题出在环境变量的配置上;若仍报错,则是私钥格式不兼容,需要转换格式。

内容的提问来源于stack exchange,提问作者Roman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:40:24