我已经为我的后端 ASP.NET 核心网络 api 创建了一个 SSL/TLS 本地主机证书,我可以与我的前端 Angular 应用共享它吗?

I have created an SSL/TLS certificate for localhost for my backend ASP.NET Core web api, can I share it with my front-end Angular app?

我在 ASP.NET Core 中有一个后端服务器 运行。我在那里生成了一个 SSL/TLS 证书,它被自动添加到我机器上的受信任的 CA。我还想通过 SSL/TLS 为我的 angular 应用程序提供本地开发服务。 Angular 前端是本地主机上的 运行 以及一个不同的端口。我是否必须为我的 Angular 应用程序创建不同的证书,因为它位于不同的端口? (端口的差异重要吗?此时它是否被视为不同的域?)。如果我可以分享,我会怎么做?

谢谢

对于证书,它对端口没有影响。您只需使用此证书保护 angular 和 asp.net 中的资源。确保您尝试连接的所有服务都在 https 上,否则您的浏览器将阻止传出请求。端口唯一重要的地方是针对 XSRF、XSS 的安全策略(内容安全策略)...

只需在 package.json 中添加如下内容即可:

"scripts": {
    "start": "ng serve --ssl --ssl-key c:\certificates\localhost.key  --ssl-cert c:\certificates\localhost.crt --host 0.0.0.0"

注意:只有当你想从本地主机外部访问开发服务器时才需要 --host 0.0.0.0...

在您的 browser/dev 计算机中将其添加到受信任的 CA。这是 chrome 的操作方法参考:

https://support.securly.com/hc/en-us/articles/206081828-How-to-manually-install-the-Securly-SSL-certificate-in-Chrome