Получить угловую подачу через HTTPS
Следующее, кажется, ничего не делает.
ng serve --ssl true --ssl-key <key-path> --ssl-cert <cert-path>
Создание сертификата и ключа путем предоставления их в каталоге ssl по умолчанию все еще ничего не делает. Похоже, что ng server
полностью игнорирует параметр --ssl
и постоянно говорит, что NG Live Development Server is running on http://localhost:4200.
Ответы
Ответ 1
Угловой CLI 6+
Я обновил свои собственные проекты, поэтому я решил, что теперь могу обновить и этот ответ.
Теперь вы поместите путь к своему ключу и сертификату в файл angular.json следующим образом:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"projects": {
"<PROJECT-NAME>": {
"architect": {
"serve: {
"options": {
"sslKey": "<relative path from angular.json>/server.key",
"sslCert": "<relative path from angular.json>/server.crt",
...
}, ...
}, ...
}, ...
}, ...
}, ...
}
И тогда вы можете запустить:
ng serve --ssl
Если вы хотите, чтобы SSL был включен по умолчанию, вы должны добавить "ssl": true, опцию сразу под sslKey и sslCert.
Вы можете найти схему angular.json в документации по Angular CLI.
Старый ответ для Angular CLI 1.0. 0+.
Angular-CLI теперь работает с опциями SSL. Как вы уже заметили, вы можете вручную выбрать, какой ключ и сертификат вы хотите использовать с командой:
ng serve --ssl --ssl-key <key-path> --ssl-cert <cert-path>
Если вы хотите установить путь по умолчанию для вашего ключа и сертификата, то вы можете перейти в свой файл .angular-cli.json, соответственно скорректировав раздел Defaults:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"defaults": {
"serve": {
"sslKey": "<relative path from .angular-cli.json>/server.key",
"sslCert": "<relative path from .angular-cli.json>/server.crt",
...
}, ...
}, ...
}
И тогда вы можете запустить:
ng serve --ssl
Если вы хотите, чтобы SSL был включен по умолчанию, вы должны добавить "ssl": true, опцию сразу под sslKey и sslCert.
Ответ 2
JFYI, в Angular6 вы должны поставить conf в настройках (в angular.json):
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "app:build",
"ssl": true,
"sslKey": "path to .key",
"sslCert": "path to .crt"
},
...
}
Ответ 3
В дополнение к этому решению, если вы когда-нибудь задумывались, как сгенерировать ключ и сертификат для localhost, вот отличная пошаговая статья об этом:
https://medium.freecodecamp.org/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec
Ответ 4
Очень простое решение с этой страницы
npm установить браузер-синхронизация --save-dev
ng serve --ssl true --ssl -key/node_modules/browser-sync/lib/server/certs/server.key --ssl -cert/node_modules/browser-sync/lib/server/certs/server.crt
Быстрый и жирный) Просто использовал его в моем проекте angular cli 6.2.3
Ответ 5
Вы правы. Текущая реализация не учитывает параметры конфигурации ssl под учетной записью. Я создал запрос pull, который устраняет эту проблему. Однако на момент написания этой статьи он еще не был объединен с мастером.
Ответ 6
Угловой CLI 1.0. 0+.
ng serve --ssl 1 --ssl -ключ {{key -path}} --ssl -cert {{cert -path}}
Угловой CLI 6+
ng serve --ssl true --ssl Key {{key -path}} --ssl Cert {{cert -path}}
Измените значения в {{* -path}} на соответствующие значения.
Ответ 7
Есть также другой способ сделать это с синхронизацией браузера, как описано здесь: https://brettmckenzie.net/2018/03/14/serving-your-angular-cli-app-locally-over-https/
Таким образом, вам не нужно беспокоиться о создании собственных сертификатов/ключей.
Ответ 8
Вы можете использовать
--ssl
или
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "someapp:build",
"ssl": true
},
и ssl-сертификат будет создан автоматически для вас.
Затем для Chrome, чтобы принять самоподписанный сертификат для localhost, см. Этот SO