Node.js https模块报error:0480006C:PEM routines::no start line错误
问题根源与解决方法
核心错误
你完全搞反了SSL证书和私钥的配置映射:
.env里的SSL_KEY错误指向了证书链文件fullchain.pem,但Node.js的https模块要求key参数传入私钥文件(即privkey.pem)SSL_CERT错误指向了私钥文件privkey.pem,但cert参数需要传入证书链文件(即fullchain.pem)
这个映射错误直接导致PEM解析失败,抛出error:0480006C:PEM routines::no start line报错。
修复步骤
修正.env配置
# 正确的变量映射 SSL_KEY=./path/to/privkey.pem SSL_CERT=./path/to/fullchain.pem正确的Express HTTPS服务器配置代码
const express = require('express'); const https = require('https'); const fs = require('fs'); require('dotenv').config(); const app = express(); // 读取证书与私钥 const options = { key: fs.readFileSync(process.env.SSL_KEY, 'utf8'), cert: fs.readFileSync(process.env.SSL_CERT, 'utf8') }; // 启动HTTPS服务器 https.createServer(options, app).listen(443, () => { console.log('HTTPS server running on port 443'); });
额外排查点
- 确认文件路径是相对于项目根目录的正确路径,或者使用绝对路径
- 检查PEM文件是否存在多余的空白行、换行符,或者头部/尾部是否被意外修改(比如
-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----必须完整) - 确保Node.js进程有读取这两个文件的权限(比如Linux下不要用root权限运行,但要保证文件权限为
644)
内容的提问来源于stack exchange,提问作者Ashley
相关产品推荐
相关产品推荐

