SSL 证书上的 Angular 后端错误 (ERR_SSL_PROTOCOL_ERROR)

发布时间:2021-02-26 16:49

我有一个在 http 上运行良好的 Angular 8 应用程序。

我刚刚安装了一个运行“certbot --apache”的letsencrypt证书。证书有效,我现在可以看到我域上的安全锁。

解决安装证书后出现的环境问题后,

apiUrl: 'https://app.xyz.com:8080'

我现在收到一个新错误 (net::ERR_SSL_PROTOCOL_ERROR),表明后端无法看到前端运行的证书,也无法处理 https 连接。

如何将我刚刚创建的证书“传递”给后端,以便两者都能正常通信? 或者,我是否需要在后端安装第二个 SSL 证书?

回答1

在我从 Stackoverflow 得到一些外部帮助后,我做对了。

对于未来面临同样问题的任何人,这就是我所做的。 我在后端服务器 (Node.js) 上创建了另一个端口,如下所示:

//Server
const https = require("https");
const express = require('express');
const app = express();
var app_https = express();
var cors = require('cors');
const fs = require("fs");

app.use(express.json(), cors());
app_https.use(express.json(), cors());

const options = {
  key: fs.readFileSync('../src/assets/keys/privkey.pem'),
  cert: fs.readFileSync('../src/assets/keys/cert.pem')
};
app_https = https.createServer(options, app);

//PORT ENVIRONMENT VARIABLE
const port = process.env.PORT;

app_https.listen(port, () => console.log(`Running on port localhost:${port}`));
This was enough to access "https://www.xyzabcpqr.com:port/api/" and put it back 
together.