Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get angular-cli to ng serve over HTTPS

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.

like image 602
grim_i_am Avatar asked Aug 29 '16 15:08

grim_i_am


People also ask

How do you get Ng serve?

To get the application running, the ng serve command must execute within the [name-of-app] folder. Anywhere within the folder will do. The Angular CLI must recognize that it is within an environment generated with ng new . It will run provided this one condition.


1 Answers

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.

like image 59
Taul Avatar answered Nov 07 '22 09:11

Taul