NodeJS和express上来自GoDaddy的SSL证书不工作

jc3wubiy  于 2022-12-26  发布在  Node.js
关注(0)|答案(2)|浏览(96)

我有一个使用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协议的新手。
你能帮我解决这个问题吗?
最好的问候

njthzxwz

njthzxwz1#

已经解决了。其实GoDaddy给我的文件格式不对,所以我打电话给支持,他们不知道怎么解决,我不得不退款,所以,添加HTTPS协议与让我们加密。

ddrv8njm

ddrv8njm2#

从godaddy,你将有5文件:1-文本格式的密钥2- CSR文本格式3- pem文件4- crt文件5-捆绑crt文件
你要做的是将密钥重命名为.pem文件,然后打开,然后将格式更改为utf8。在Mac上

  • 打开文本编辑器
  • 选择打开文件,但在打开文件之前,单击左下角的选项
  • 选择UTF8编码
  • 选择密钥.pem文件
  • 打开后保存

使用fs.ReadfileSync的代码将在以下情况下工作:第一个是密钥文件,第二个是下载的PEM文件,第三个是包

相关问题