在Node.js上使用GoDaddy的私钥

时间:2019-04-03 16:39:28

标签: javascript node.js ssl vps

我们在godaddy上购买了域名和SSL证书,但我们的服务器不在GoDaddy上。我们在服务器中运行Lampp和NodeJS,并且试图同时设置两者。 Lampp没有问题。 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可以使用我的自签名密钥和证书文件。所以我想问。我没有正确生成密钥吗?我应该在本地手动生成私钥/ CSR并在GoDaddy上请求新证书吗?还是我的代码有问题?

1 个答案:

答案 0 :(得分:0)

此错误消息表示这些文件是错误的,已损坏或是其他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等)的注释,该操作系统将发送发送给您的提供程序的初始密钥。

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