深浅色
域名与 HTTPS 配置
这一篇是干什么的:给系统配一个带小锁的网址,让同事和企业微信都能安全访问。

先弄明白四个词
| 词 | 大白话解释 |
|---|---|
| 域名 | 网址里那串字,下文统一写成「你的域名」 |
| 解析 | 告诉互联网"这个域名指向哪台服务器" |
| HTTPS | 给访问加密的协议,浏览器地址栏会显示一把小锁 |
| 证书 | HTTPS 用的"身份证",用来证明这个网站是真的 |
前提
- 域名已经解析到你的服务器公网 IP。
- 服务器上装了 Nginx。Nginx 就是"门卫":外面的访问先到它,它再转给里面的系统。(用 Caddy 也行,作用一样。)
- 备案:服务器在中国大陆的,域名要先备案;服务器在香港等境外的,不用备案。
第一步:确认解析生效
在你自己电脑的终端里:
bash
ping 你的域名返回的是你服务器的 IP,就说明解析对了。
第二步:准备证书
两种来源,选一种:
| 方式 | 说明 |
|---|---|
| 免费 | Let's Encrypt,用 certbot 申请,每 90 天自动续期 |
| 付费 | 从云服务商或证书商买一张,一年或两年有效 |
不管哪种,你会拿到两个文件:
- 证书文件(常见名
fullchain.pem) - 私钥文件(常见名
privkey.pem)
私钥是钥匙,权限要锁好,不要发给任何人。
第三步:写 Nginx 配置
系统自带了一份模板:deploy/nginx/host.example.conf。
把它复制到 Nginx 的配置目录,改三个地方:
server_name换成你的域名(文件里有两处)ssl_certificate指向你的证书文件ssl_certificate_key指向你的私钥文件

模板长这样,每段在干什么都写在旁边:
nginx
server {
listen 80;
server_name 你的域名;
return 301 https://$host$request_uri; # 走 http 的访问,一律跳到 https
}
server {
listen 443 ssl http2;
server_name 你的域名;
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;
location / {
proxy_pass http://127.0.0.1:18921; # 转给本机 18921 端口上的系统
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}大白话:外面的人访问 https://你的域名,Nginx 收下,转给本机 18921 端口上的系统。
系统自己永远不直接对公网开门。
第四步:让配置生效
bash
nginx -t显示 syntax is ok 和 test is successful 才能继续。然后让 Nginx 重新加载配置:
bash
systemctl reload nginxreload 的意思是:让 Nginx 重新读一遍配置,不中断现有连接。
第五步:验证
浏览器打开 https://你的域名/scrm/tools/,检查三件事:
- 地址栏有一把小锁 = HTTPS 成功
- 输入
http://开头的地址,会自动跳到https:// - 能看到登录页 = 全链路通了
安全底线
- 公网只开放 443 端口。
- 不要把 18921(系统)、3306(数据库)、6379(缓存)、8085(后端)开放到公网。
- 在服务器防火墙和安全组里,这些端口只留内网访问。
别让系统"裸奔"
如果为了图省事,直接把 18921 端口开到公网:没有加密、没有门卫,登录密码和客户数据都是明文在互联网上跑。绝对不要这么做。
出错了怎么办
| 现象 | 什么意思 | 怎么办 |
|---|---|---|
| 浏览器提示"证书无效" | 证书没配对,或者过期了 | 检查证书路径;过期的去续期 |
| 502 Bad Gateway | Nginx 转过去了,系统没应答 | 检查系统容器在不在运行,见日常巡检 |
| 一直转圈打不开 | 网络或防火墙挡住了 | 检查安全组有没有放行 443 |
nginx -t 报错 | 配置文件写错了 | 按报错提示的行号改,再测一遍 |
常见问题
Q:能直接用服务器 IP 访问吗?
不行。企业微信要求 HTTPS 加域名,证书也是发给域名的,IP 用不了。
Q:默认的 /scrm 子路径能改吗?
能,但要在安装前改(见安装前准备)。装完之后再改,要同步改 Nginx 和企微回调地址,麻烦,不建议。
Q:证书到期了会怎样?
全站打不开,浏览器会报警告。Let's Encrypt 建议配自动续期;商业证书在到期前换新再 reload。
Q:能不能用免费的泛域名证书?
可以,只要覆盖你的域名就行。配法和单域名证书一样。
相关页面
- 在线安装(一步一步) — 装完之后配 HTTPS
- 企业微信接入 — 企微要求可信域名走 HTTPS
- 密钥与安全边界 — 证书私钥怎么保管
- 日常巡检与故障处理 — 打不开网页时怎么查