首页 > 解决方案 > Angular SSL 证书和密钥——Ng 服务根目录

问题描述

我正在尝试在 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 只是失败)

标签: node.jsangularexpresssslopenssl

解决方案


我的 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 服务 --host hp-probook --open


推荐阅读