首页 > 解决方案 > SSL 证书上的 Angular 后端错误 (ERR_SSL_PROTOCOL_ERROR)

问题描述

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

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

修复安装证书后出现的环境问题后,

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

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

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

标签: angularssl

解决方案


在我从 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.

推荐阅读