来自NodeJS上GoDaddy的SSL证书和Express无法正常工作

时间:2020-07-09 09:46:54

标签: node.js ssl

我有一个运行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协议是新手。

您能帮我解决这个问题吗?

最诚挚的问候

1 个答案:

答案 0 :(得分:1)

已经解决。实际上,GoDaddy给我的文件格式错误,因此我给支持部门打电话,他们不知道如何解决该问题,因此我不得不退还这笔钱,因此,请在Let's Encrypt中添加HTTPS协议。