You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为启用SSR的Angular应用配置HTTPS协议页面访问服务

Angular SSR 配置HTTPS访问解决方案

@nguniversal/express-engine 生成的SSR项目默认启动的是Express HTTP服务,Angular CLI 自带的--ssl参数仅对纯客户端的ng serve生效,无法作用于SSR的Node服务,因此需要手动修改配置:

前置准备:准备SSL证书

可以使用自签名证书或者正规CA颁发的证书,本地开发推荐用mkcert生成受本地信任的证书,将生成的localhost-key.pem(私钥)和localhost.pem(证书)放到项目根目录。

1. 修改server.ts启动逻辑

打开项目根目录下的server.ts文件:

  • 首先引入https和fs依赖:
import * as https from 'https';
import * as fs from 'fs';
  • 找到原有HTTP服务启动的代码段,注释后替换为HTTPS启动逻辑:
// 原有HTTP启动代码,注释保留
// app.listen(PORT, () => {
//   console.log(`Node server listening on http://localhost:${PORT}`);
// });

// 新增HTTPS启动逻辑
const sslOptions = {
  key: fs.readFileSync('localhost-key.pem'),
  cert: fs.readFileSync('localhost.pem')
};

https.createServer(sslOptions, app).listen(PORT, () => {
  console.log(`SSR服务已启动,访问地址:https://localhost:${PORT}`);
});

2. (可选)同步配置客户端资源HTTPS加载

如果开发环境下需要客户端构建资源也走HTTPS协议,需要修改angular.json配置:
找到projects -> <你的项目名> -> architect -> serve-ssr -> options节点,新增以下配置:

"ssl": true,
"sslKey": "localhost-key.pem",
"sslCert": "localhost.pem"

3. 启动测试

直接运行原有启动命令即可,不需要加--ssl参数:

yarn dev:ssr

访问https://localhost:4200即可看到HTTPS访问的SSR页面。

生产环境建议

生产环境不推荐直接在Node SSR服务层配置HTTPS,更建议用Nginx、Caddy等反向代理服务统一处理HTTPS证书解析、静态资源托管,再将动态请求转发到本地Node服务的HTTP端口即可,性能更高,证书管理也更便捷。


内容的提问来源于stack exchange,提问作者Akhaadaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:48:03