在企业网络中,若仅使用IP地址而非域名,应该如何实现HTTPS访问。以下是具体方案及实施步骤:
一、核心原理:HTTPS的证书依赖与IP适配
HTTPS依赖数字证书验证服务器身份,传统域名场景下证书绑定域名。但在纯IP地址场景中:
证书绑定IP:证书需包含服务器的IP地址(如Subject Alternative Name (SAN)字段中指定IP)。
信任链:若证书由内部CA签发,需在客户端手动信任该CA根证书。
二、实现方案:三种可行路径
方案1:使用自签名证书(适用于测试)
生成自签名证书
使用OpenSSL生成证书,绑定IP地址:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 \
-subj "/CN=IP 地址" \ # 证书Common Name设为IP
-addext "subjectAltName=IP地址" # SAN字段绑定IP
关键参数:-addext确保证书包含IP地址。
配置服务器
将cert.pem(证书)和key.pem(私钥)部署到Web服务器(如Nginx、Apache)。
Nginx示例配置:
server {
listen 443 ssl;
server_name IP地址; # 使用IP作为服务名
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
}
客户端信任证书
浏览器访问时会提示“证书不受信任”,需手动导入cert.pem到信任库:
Windows:通过“证书管理器”导入到“受信任的根证书颁发机构”。
Linux/macOS:将证书复制到
/usr/local/share/ca-certificates/,运行update-ca-certificates。
访问HTTPS服务
客户端通过https:IP地址访问,浏览器会显示安全锁标志(但证书由用户自行信任)。
方案2:使用CA签发证书(适用于企业)
选择CA机构
IP地址SSL证书访问入口
访问JoySSL官网,注册一个证书账号,需填写特定注册码230939,获取专业技术指导和优惠
注册CA账号:在CA网站注册一个管理账号
提交证书申请:填写IP地址、联系人信息,选择证书有效期。
验证IP所有权:通过文件验证(在服务器指定路径创建文件)或邮件验证。
下载证书:验证通过后,下载包含.crt证书和.key私钥的压缩包。
服务器配置(以Nginx为例)
修改Nginx配置文件
server {
listen 443 ssl;
server_name 192.168.1.100; # 替换为你的IP
ssl_certificate /etc/nginx/ssl/server.crt; # 证书路径
ssl_certificate_key /etc/nginx/ssl/server.key; # 私钥路径
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html;
}
}
重启Nginx
输入IP地址,检查是否显示锁形图标且无安全警告。
三、关键注意事项
证书有效期管理
避免证书过期导致服务中断,建议设置自动续期。
私钥安全
私钥需严格保护,限制访问权限(如chmod 600 key.pem)。
客户端兼容性
确保所有客户端(浏览器、移动应用、API客户端)支持IP地址的证书验证。
混合场景处理
若部分服务需外部访问,建议申请公开域名证书(如Let's Encrypt),内部服务使用内部CA证书。
四、总结:无域名场景下的HTTPS实践
通过自签名证书或CA签发证书,企业可在纯IP地址环境下实现HTTPS访问。核心步骤包括:
生成绑定IP的证书(含SAN字段)。
部署到Web服务器。
在客户端信任证书或CA根证书。
最终效果:客户端通过https://<IP地址>安全访问服务,浏览器显示安全锁标志
此方案适用于企业内网、物联网设备管理、私有云等场景,兼顾安全性和管理效率。