node.js - Node.js 不会加载 Let's Encrypt 证书
问题描述
https_options:
{ key: '/etc/letsencrypt/live/mywebsite.com/privkey.pem',
cert: '/etc/letsencrypt/live/mywebsite.com/fullchain.pem' }
我只是使用上述选项执行 https.createServer 并收到此错误:
_tls_common.js:134
c.context.setCert(cert);
^
Error: error:0909006C:PEM routines:get_name:no start line
at Object.createSecureContext (_tls_common.js:134:17)
at Server.setSecureContext (_tls_wrap.js:1017:27)
at Server (_tls_wrap.js:897:8)
at new Server (https.js:61:14)
at Object.createServer (https.js:84:10)
at startWWW (myserver.js:192:9)
我像这样测试了密钥/证书对:(正如其他人在其他问题、博客文章、论坛主题中所建议的那样)
openssl x509 -text -in /etc/letsencrypt/live/mywebsite.com/fullchain.pem
openssl rsa -text -in /etc/letsencrypt/live/mywebsite.com/privkey.pem
这两个命令都打印了多行看似有效的输出。
lsb_release -a | grep Description
Description: Ubuntu 18.04.2 LTS
解决方案
这应该解决它:
key: fs.readFileSync('/etc/letsencrypt/live/mywebsite.com/privkey.pem', 'utf8'),
对证书也做同样的事情。(例如以 utf8 编码读取)
推荐阅读
- scala - 是否可以在多个 build.sbt 文件中覆盖和使用相同的值?
- hadoop - 使用 Apache Ignite Hadoop 加速器提交 Hadoop 作业
- c# - 搜索用户是否在 Office 365 上拥有帐户?
- r - 使用 facet_wrap 和收集时重新排序图
- python - 如何在 Python 中的多处理期间访问全局变量
- javascript - 循环变量
- android - 回收器视图在嵌套滚动视图中不平滑
- javascript - componentWillReceiveProps 与 getDerivedStateFromProps
- php - 隐藏 Docusign 信封视图休息 API v2 上的“更多选项”菜单
- c - 独立的 C 应用程序