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

Nginx更新SSL证书遇PEM_read_bio:bad end line错误求助

解决Nginx SSL私钥加载失败(bad end line)问题

核心排查方向

错误error:0906D066:PEM routines:PEM_read_bio:bad end line明确指向私钥文件的PEM格式存在语法问题,尤其是结尾行或密钥内容的格式错误,和证书匹配性无关,重点检查私钥文件本身即可。

具体修复步骤

  • 检查私钥文件的格式细节
    打开私钥文件/srv/www/website.yaabi.com/calletest/20242.yaabi.com.key,确保:

    1. -----BEGIN PRIVATE KEY-----单独占一行
    2. 密钥内容按每行64字符分段(PKCS#8格式也需保证换行正确,不能全连在一起)
    3. -----END PRIVATE KEY-----单独占一行,行尾无多余空格、制表符或特殊字符
    4. 文件末尾保留一个空行(部分SSL库对此要求严格)
  • 重新导出私钥,避免手动复制
    若怀疑是复制粘贴导致的格式损坏,直接从证书生成工具重新导出私钥,不要手动编辑内容:

    # 以certbot为例,重新获取并导出私钥(适用于Let's Encrypt证书)
    certbot certonly --cert-name 20242.yaabi.com --key-type rsa
    # 直接复制生成的私钥到目标路径
    cp /etc/letsencrypt/live/20242.yaabi.com/privkey.pem /srv/www/website.yaabi.com/calletest/20242.yaabi.com.key
    
  • 用OpenSSL验证私钥合法性
    执行命令检查私钥是否有效:

    openssl rsa -in /srv/www/website.yaabi.com/calletest/20242.yaabi.com.key -check
    

    输出RSA key ok说明格式正常;若报错,根据提示移除多余字符或修正换行。

  • 调整文件权限
    确保Nginx进程能读取私钥文件:

    chmod 600 /srv/www/website.yaabi.com/calletest/20242.yaabi.com.key
    chown www-data:www-data /srv/www/website.yaabi.com/calletest/20242.yaabi.com.key
    
  • 测试配置后重启Nginx
    修复后先验证配置,再重启服务:

    nginx -t
    systemctl reload nginx
    

常见坑点

  • 手动复制私钥时,误将网页换行符转为空格,或遗漏部分字符
  • 私钥文件被编辑器添加了UTF-8 BOM头(用cat -A 文件名可查看是否有^@开头字符),用以下命令转换格式:
    dos2unix /srv/www/website.yaabi.com/calletest/20242.yaabi.com.key
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:45:05