javascript - 在 Nodejs 上使用来自 GoDaddy 的私钥

标签 javascript node.js ssl vps

我们在godaddy上购买了域名和SSL证书,但是我们的服务器不在godaddy上。我们在我们的服务器中运行 Lampp 和 NodeJS,我们正在尝试为两者设置 SSL。兰普没有问题。来自 Godaddy 的私钥和证书正在运行。但是当我用 NodeJS 尝试相同的文件时。它失败了。

这是我的 js 脚本:

ssl = {
key: fs.readFileSync("./key.pem",'utf8'),
cert: fs.readFileSync("./cert.crt",'utf8'),
ca: [fs.readFileSync('./g1.crt','utf8'), 
fs.readFileSync('./g2.crt','utf8'), fs.readFileSync('./g3.crt','utf8')]
};
server = require('https').createServer(ssl, app);

这是错误

_tls_common.js:104
  c.context.setKey(options.key, options.passphrase);
            ^

  Error: error:0909006C:PEM routines:get_name:no start line

谷歌搜索后,我尝试了几种解决方案:添加“utf8”、拆分 gd 包、使用 nodepad++ 修复代码。他们都没有帮助。

但是,nodejs 可以使用我的自签名 key 和证书文件。所以我想问一下。我是否错误地生成了我的 key ?我应该在本地手动生成私钥/CSR 并在 GoDaddy 上申请新证书吗?还是我的代码有问题?

最佳答案

此错误消息意味着这些文件是错误的、损坏的或被请求用于其他 OS Enviroments .所以我们有一些选择。

  1. 关于代码的解决方案(导入文件系统库并使用完整路径)。
let yourKey = fs.readFileSync('./folderOne/folderTwo/initial.key').toString();
let yourCertificate = fs.readFileSync('./folderOne/folderTwo/certificate.crt').toString();
var credentials = { key: yourKey, cert: yourCertificate };
  1. 请求每个操作系统兼容性的解决方案:
    • 请求新证书,并附上有关操作系统(Linux、Windows 等)的注释,该操作系统会发送发送给您的提供商的初始 key 。

重要提示:您只需要 .crt 文件和私钥。

关于javascript - 在 Nodejs 上使用来自 GoDaddy 的私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55500193/

相关文章:

php - Roundcube - Nginx 不会自动重定向到 .php 文件

spring - 将 SSL 与 Redis 和 Spring Data Redis 一起使用时为 "Cannot get Jedis connection"

javascript - 将两个音频缓冲区叠加到一个缓冲区源中

javascript - 如何在 Deno 中将大量数据传递给 process.stdin.write?

javascript - 使用 Node.js 识别文件系统根目录

node.js - 亚硝酸盐上的 SSL/HTTPS

javascript - 使用带有文本显示的 Jquery 切换文本

javascript - THREE.js 和转换顺序

node.js - react 和表达应用程序不允许jsx

sockets - OpenSSL 阻塞套接字 SSL_read block