The following doesn't seem to do anything.
ng serve --ssl true --ssl-key <key-path> --ssl-cert <cert-path>
Creating the Certificate and key by providing them in the default ssl directory still does nothing. It looks like ng server
is completely ignoring the --ssl
parameter and keeps saying NG Live Development Server is running on http://localhost:4200.
Angular CLI 6+
I've updated my own projects so I figured I can now update this answer too.
You'll now put the path to your key and certificate in your angular.json file as follows:
{
"$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",
...
}, ...
}, ...
}, ...
}, ...
}, ...
}
And then you can run:
ng serve --ssl
If you want SSL on by default then you should add a "ssl": true, option immediately below the sslKey and sslCert.
You can find the angular.json schema at the Angular CLI documentation.
Old answer for Angular CLI 1.0.0+.
Angular-CLI now works with the SSL options. Like you've noted, you can manually select which key and cert you'd like to use with the command:
ng serve --ssl --ssl-key <key-path> --ssl-cert <cert-path>
If you'd like to set a default path for your key and cert then you can go into your .angular-cli.json file adjust the Defaults section accordingly:
{
"$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",
...
}, ...
}, ...
}
And then you can run:
ng serve --ssl
If you want SSL on by default then you should add a "ssl": true, option immediately below the sslKey and sslCert.
JFYI, in Angular6 you have to put the conf in the options (in angular.json) :
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "app:build",
"ssl": true,
"sslKey": "path to .key",
"sslCert": "path to .crt"
},
...
}
To complement this solution, if you ever wonder how to generate key and certificate for localhost, here is a great step by step article about it:
https://medium.freecodecamp.org/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec
You are correct. The current implementation does not take the ssl configuration options under account. I have created a pull request that fixes this issue. However it has not been merged yet in the master at the time of this writing.
Very simple solution from this page
npm install browser-sync --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
Quick and bold)
Just used it in my angular cli 6.2.3 project