我有一个使用express运行的NodeJs应用程序。我一直在尝试集成SSL证书,但一直使用相同的error: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line.
我已经尝试了我在stackOverflow上找到的一些解决方案,例如
if (process.env.SSL_PRIVATE_KEY && process.env.SSL_CERTIFICATE) {
server = require('https');
server.createServer({
key: fs.readFileSync(path.resolve('ssl/key.pem'), 'utf8'),
cert: fs.readFileSync(path.resolve('ssl/server.crt'), 'utf8'),
ca: fs.readFileSync(path.resolve('ssl/bundle.crt'), 'utf8'),
requestCert: false,
rejectUnauthorized: false
}, app).listen(app.get('port'), function () {
console.log('Express server listening on https://localhost:' + app.get('port'));
});
} else {
server = require('http');
server.createServer(app).listen(app.get('port'), function () {
console.log('Express server listening on http://localhost:' + app.get('port'));
});
但似乎都不起作用。我的主要问题是,我从GoDaddy下载了我的证书文件,但我只得到了两个.cert文件。我在一些网站上读过如何获得.pem文件,但我一直得到同样的错误。
正如你所看到的,我是在NodeJ中使用https协议的新手。
你能帮我解决这个问题吗?
最好的问候
2条答案
按热度按时间njthzxwz1#
已经解决了。其实GoDaddy给我的文件格式不对,所以我打电话给支持,他们不知道怎么解决,我不得不退款,所以,添加HTTPS协议与让我们加密。
ddrv8njm2#
从godaddy,你将有5文件:1-文本格式的密钥2- CSR文本格式3- pem文件4- crt文件5-捆绑crt文件
你要做的是将密钥重命名为.pem文件,然后打开,然后将格式更改为utf8。在Mac上
使用fs.ReadfileSync的代码将在以下情况下工作:第一个是密钥文件,第二个是下载的PEM文件,第三个是包