【问题标题】:Angular SSL cert and key -- Ng Serve root directoryAngular SSL 证书和密钥——Ng 服务根目录
【发布时间】: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


【解决方案1】:

我的 Apache2 网络服务器已经为服务器“hp-probook”安装了服务器证书。

我的 Angular DEVELOPMENT 服务器也将使用这些证书。

从外壳测试它:

ng 服务 --ssl 1 --ssl-cert /etc/ssl/private/hp-probook.key.pem --ssl-key /etc/ssl/private/hp-probook.key.pem --host hp-probook

如果有效,那么您也可以在 package.json 中提供证书信息:

然后修改package.json文件中的scripts.code条目:

 "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "code": "ng serve --ssl 1 --ssl-cert /etc/ssl/private/hp-probook.key.pem --ssl-key /etc/ssl/private/hp-probook.key.pem",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

开始吧:

ng serve --host hp-probook --open

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2013-01-02
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多