Angular 6中在angular.json配置SSL报错,求正确配置方法
Angular CLI 6+ 配置SSL的正确方式
这个错误是因为Angular CLI 6及以后的版本,SSL相关配置不再是根节点的属性,而是要放到项目的serve构建配置里。我来一步步给你讲怎么正确配置:
1. 全局启用SSL(默认启动即生效)
打开你的angular.json,找到projects下你的项目名称,然后进入architect -> serve -> options节点,在这里添加SSL相关配置项:
"projects": { "your-project-name": { // ... 其他项目配置 "architect": { "serve": { "options": { "ssl": true, "sslKey": "pathtokey/key.key", // 注意:这是你的私钥文件路径,通常后缀为.key "sslCert": "pathtokey/certificate.crt" // 你的SSL证书文件路径,后缀一般是.crt或.pem }, // ... 其他serve相关配置 } } } }
这里要提醒你:你之前命令里写的--ssl-key "pathtokey\key.crt"可能混淆了私钥和证书文件——私钥一般是.key格式,证书是.crt类格式,一定要对应正确;另外路径里可以用正斜杠/或者转义的反斜杠\\,避免路径解析错误。
2. 仅在特定环境启用SSL
如果不想全局启用SSL,只想在生产环境或自定义环境中使用,可以把配置放到configurations下的对应环境节点里:
"architect": { "serve": { "options": { /* 基础配置 */ }, "configurations": { "production": { "ssl": true, "sslKey": "pathtokey/key.key", "sslCert": "pathtokey/certificate.crt", // ... 其他生产环境专属配置 } } } }
启动时指定对应环境即可生效:
ng serve --configuration=production
3. 验证配置
配置完成后,直接运行ng serve,Angular CLI就会自动使用你指定的SSL证书启动服务,不需要再在命令行加--ssl参数(如果临时想关闭SSL,也可以用ng serve --ssl=false覆盖配置)。
如果还是有问题,可以检查文件路径是否正确,或者尝试用绝对路径来指定证书和私钥的位置。
内容的提问来源于stack exchange,提问作者Frennetix
相关产品推荐
相关产品推荐

