如何使用已注册域名在个人服务器部署Angular网站
Angular网站个人服务器IIS部署指南(解决证书及域名访问问题)
一、修复NET::ERR_CERT_AUTHORITY_INVALID证书错误
默认跳转HTTPS但出现证书错误,是因为IIS使用的自签名证书不被浏览器信任,需替换为可信SSL证书:
- 获取免费可信证书:使用Win-acme工具在Windows服务器上生成Let's Encrypt证书:
- 下载适配Windows服务器的Win-acme版本,解压后运行
wacs.exe - 按交互提示选择
HTTP-01验证方式(前提是域名已解析到服务器公网IP),跟随流程完成证书申请与自动导入
- 下载适配Windows服务器的Win-acme版本,解压后运行
- 绑定证书到IIS网站:
- 打开IIS管理器,选中目标网站 → 右键「编辑绑定」
- 找到HTTPS类型绑定,点击「编辑」
- 在「SSL证书」下拉菜单中选择刚生成的Let's Encrypt证书,保存设置
二、确认域名解析有效性
登录域名注册商后台,将域名A记录指向个人服务器的公网IP,等待解析生效(可通过ping 你的域名命令验证解析结果)
三、Angular项目IIS部署完整步骤
- 构建生产环境包:在本地Angular项目根目录执行命令:
生成的静态文件位于ng build --configuration productiondist/[项目名]目录下 - 部署静态文件:将
dist目录内的所有文件复制到IIS网站的物理路径(如C:\inetpub\wwwroot\angular-site) - 配置URL重写(解决单页应用路由问题):
- 安装IIS URL重写模块(通过Windows服务器的Web平台安装器搜索安装)
- 在网站根目录创建
web.config文件,写入以下内容:<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Angular Routes" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="/index.html" /> </rule> </rules> </rewrite> <staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> <mimeMap fileExtension=".woff" mimeType="application/font-woff" /> <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" /> </staticContent> </system.webServer> </configuration>
- 配置网站绑定:
- 添加HTTP绑定:域名填写你的注册域名,端口设为80
- 添加HTTPS绑定:域名填写你的注册域名,端口设为443,选择已导入的可信证书
- (可选)添加HTTP转HTTPS规则:通过URL重写模块创建规则,将所有HTTP请求重定向到HTTPS
四、额外排查项
- 确保服务器防火墙开放80、443端口,允许公网访问
- 将IIS网站对应的应用程序池设置为
No Managed Code(Angular为静态站点,无需.NET运行时) - 若浏览器仍缓存旧证书错误,使用隐私窗口测试或清除浏览器缓存
内容的提问来源于stack exchange,提问作者Gyan Mitra
相关产品推荐
相关产品推荐

