【发布时间】:2018-12-30 07:13:02
【问题描述】:
我正在尝试在 ng serve 上设置 SSL、ssl 密钥和证书文件。例如:
ng serve --ssl true --ssl-key './assets/somekey.key' --ssl-cert './assets/somecert.cert'
但是,运行此代码时,Angular CLI 会生成自己的密钥和证书。 我找不到它在哪里这样做,在线搜索,它应该在某处的“SSL”文件夹中创建它,但是在我的项目目录中找不到这个文件夹。
我想使用特定的自定义密钥和证书,因为我想尝试为我的 API 使用相同的证书和密钥。由于我使用的是自签名证书,我希望这将使我能够信任前端 Angular 证书,并且通过这样做,也信任后端证书,因为它是相同的。我不确定这是否可能。
所以我的问题在这里:
Angular 生成其密钥和证书文件的默认 SSL 文件夹在哪里?
如果我们向“ng serve”脚本添加路径,那么 ng 使用的根目录是什么?
我们可以在前端和后端使用相同的证书以避免需要同时信任它们吗? (不知道如何信任后端,因为 我只收到 json 所以我什至没有得到信任的警告, http-requests 只是失败)
【问题讨论】:
-
为什么不直接使用未加密的
http作为前端? -
因为我想使用前端向用户表明他们需要信任证书。这样至少他们会得到一个有意义的错误。我希望当他们信任该证书(并且我在后端使用相同的密钥和证书文件)时,后端也将受到信任,而不仅仅是默默地失败。
-
ng serve应该只在开发期间使用。对于生产环境,您应该上传ng build的结果,并让服务器(例如 nginx)使用来自受信任 CA 的证书来提供文件并代理您的 API。除此之外,您将无法“信任两个证书”,因为浏览器基于主机。而且由于您分别运行前端和 API,它们必须在不同的主机上运行。
标签: node.js angular express ssl openssl