簡體   English   中英

來自 GoDaddy 的 SSL 證書在 NodeJS 和 express 上不起作用

[英]SSL certificate from GoDaddy on NodeJS and express not working

我有一個用 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 文件,但我一直收到同樣的錯誤。

如您所見,我不熟悉在 NodeJs 中使用 https 協議。

你能幫我解決這個問題嗎?

最好的祝福

已經解決了。 實際上GoDaddy給我的文件格式錯誤,所以我打電話給支持,他們不知道如何解決,我不得不退款,因此,用Let's Encrypt添加HTTPS協議。

從 godaddy,您將有 5 個文件:1- 文本格式的密鑰 2- CSR 文本格式 3- pem 文件 4- crt 文件 5- bundle crt 文件

您要做的是將密鑰重命名為 a.pem 文件,然后打開,然后將格式更改為 utf8。 在 Mac 上

  • 打開文本編輯器
  • Select 打開文件但在打開文件之前單擊左下角的選項
  • Select UTF8編碼
  • Select Key.pem 文件
  • 打開后,保存

帶有 fs.ReadfileSync 的代碼將起作用:第一個是密鑰文件,第二個是下載的 PEM 文件,第三個是包

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM