前言
你干工程几年了,可能会碰到一个机场项目,如果能遇到一个ICT项目,而且还是EPC项目,那证明你是幸运的。
在做机场项目时,大家经常会听到业主、顾问说:“技术规范说某系统要上 HTTPS、要申请 SSL 证书。”
很多同志可能心里犯嘀咕:规范上这几十页写的这到底是啥?为什么非得弄?
作为在德崇国际机场ICT T&C的老同志了,我负责了 NMS、CMS、安防等多个内网系统的 SSL 证书部署与调试。平时也经常有供应商/分包的人向我咨询这个问题:为什么F+P规范要有,该如何部署。
SSL 全称为 Secure Sockets Layer(安全套接层协议),是目前最常见的数据加密与身份验证技术。它安装在服务器上,可以让客户端(浏览器、应用)与服务器之间建立起一条 加密通信隧道。
反正我说了半天那些问的人估计也没听明白,今天就扯大白话吧。就如这篇文章的标题,从工程视角去理解 SSL 证书。
1. SSL证书到底是啥?
可以把 SSL证书 理解成:身份证 + 信封。
身份证:证明服务器是真的,不是冒牌货。
信封:把数据封起来加密,别人看不到。
没有 SSL,就好比在大街上喊密码、喊指令,谁路过都能听见。
有了 SSL,就像把信息装进密封信封,只能收件人打开。
2. 为什么机场要用 SSL?
防止信息被偷看
机场里各种系统(NMS、CMS、BMS、ACS、CCTV、PAVA……)都有后台网页。
如果用的是普通 http,别人用个抓包工具一看,就能看到用户名和密码。
这事太危险了!
防止被假冒
没有 SSL,黑客可以假冒一个一模一样的后台页面,你一登陆,账号密码全给人送过去了。SSL 就能防止这种“李鬼冒充李逵”。
合规要求
现在业主和顾问都盯得紧,而且技术规范里强制要求必须走加密,不能明文传。
机场是 4F 级的国际枢纽,更不能掉链子。
提高信任度
大家在浏览器里看到 小锁标志 🔒,心里就踏实。
对外网站是形象,对内系统是安全。
而且这种标志就是验收测试项之一。
3. 为什么有时候要用“自签证书”?
有人问:“既然 SSL 要 CA 签发,为什么我们机场项目内网系统里经常用自签证书?”
原因很简单:
- 机场内网系统后台WEB地址(10.x.x.x、*.local) 公共 CA 不会给你签。
- 自签证书就是我们自己签发,自己管用。
- 只要在内网服务器里装上这个证书,工作站用AD策略推送,就能正常用 https,小锁照样有。
- 自签安全,成本低,完全可控。
4. 如何使用申请自签内网SSL证书
下载openssl
https://slproweb.com/products/Win32OpenSSL.html
配置文件
创建文本,写入以下配置后,将文本重命名为san.cnf,将其存放在 OPENSSL 根目录。
以机场内网通配符域名 *.kti-domain.com 为例。
#===================#
# OpenSSL 配置文件示例
# 用途:生成 SSL 证书请求 (CSR) 和私钥
# 场景:机场项目 NMS 系统 / HTTPS 配置
# 作者:a lucky dog
#===================#
[req]
default_bits = 2048 # 密钥长度(建议 2048,安全性与兼容性平衡)
default_md = sha256 # 是否交互式填写,no 表示直接用配置文件里的信息
prompt = no # 摘要算法,建议使用 SHA256
distinguished_name = dn # 使用下面定义的 req_ext 扩展
req_extensions = req_ext # 使用 dn 区段的信息作为证书主体信息
[dn]
C = KH # 国家代码(两位 ISO 码,例:KH=柬埔寨,CN=中国)
ST = Kandal # 省份或州
L = Phnom Penh # 城市
O = Internal CA # 组织/公司全称
OU = Techo International Airport # 部门名称,可选
CN = *.kti-domain.com # 通用名称 (Common Name),一般是主域名或服务器 FQDN
#===============#
# 请求扩展设置
#===============#
[req_ext]
subjectAltName = @alt_names # 指定主题备用名称 (SAN),支持多个域名/IP
#===============#
# 主题备用名称(SAN)
#===============#
[alt_names]
DNS.1 = *.kti-domain.com # 第一个域名,建议与上面 CN 保持一致
DNS.2 = kti-domain.com
# DNS.3 = cms.kti-domain.com # 可选:第二个域名(比如 CMS 系统)
# DNS.4 = iptv.kti-domain.com # 可选:第三个域名(比如 IPTV 系统)
# IP.1 = 10.1.1.11 # 可选:如果通过 VIP 或 IP 访问,也可以添加 IP 地址
终端生成命令
打开OPEN SSL终端,运行生成命令(一种示例),执行
openssl req -new -nodes -x509 -days 365 -keyout kti-domain.com.key -out kti-domain.com.crt -config "C:\Users\LHY\san.cnf" -extensions req_ext -sha256 # 引号为san.cnf 配置文件的存放的绝对路径
-x509 → 生成自签名证书
-days 825 → 指定有效期为 825 天(Chrome、Edge 建议 ≤ 825 天)
-config san.cnf → 指定使用的配置文件
验证SSL证书
openssl x509 -in nms.kti-domain.com.crt -text -noout
终端控制命令台会出现下列字段
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:*.kti-domain.com, DNS:kti-domain.com

格式转换
转换成IIS需要的.pfx 格式并导入 IIS(可选,使用nginx作为WEB服务器则不需要):
openssl pkcs12 -export -out kti-domain.com.pfx -inkey kti-domain.com.key -in kti-domain.com.crt
最终你会看到以下几个文件

- kti-domain.com.crt → 服务器的 公钥证书,用于验证身份。
- kti-domain.com.key → 服务器的 私钥文件,用于解密数据,必须保密。
- kti-domain.com.pem → 证书容器文件,可包含证书、私钥和中间证书,常用于 Linux/OpenSSL。
- kti-domain.com.pfx → 打包证书文件(含私钥+公钥+链),Windows/IIS 常用,一次性导入。
导入WEB服务器

证书 2094 年11月过期,看来我和它谁先到期还真不好说,哈哈!
5.总结
如果你在工地现场,如果别人问你,就记住句话:
SSL 就是“加锁的身份证”,机场项目必须用。
SSL证书就是给内网和外网系统 上锁 + 发身份证 的。
没有 SSL:数据裸奔,密码随便抓。
有了 SSL:数据加密,身份可查,合规达标。
所以,业主要求我们遵循规范,申请部署SSL,不是形式主义,而是为了保障系统安全、符合规范、提升机场形象。

Comments NOTHING