我有一个在 http 上运行良好的 Angular 8 应用程序。
我刚刚安装了一个运行“certbot --apache”的letsencrypt证书。证书有效,我现在可以看到我域上的安全锁。
解决安装证书后出现的环境问题后,
apiUrl: 'https://app.xyz.com:8080'
我现在收到一个新错误 (net::ERR_SSL_PROTOCOL_ERROR),表明后端无法看到前端运行的证书,也无法处理 https 连接。
如何将我刚刚创建的证书“传递”给后端,以便两者都能正常通信? 或者,我是否需要在后端安装第二个 SSL 证书?
在我从 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.