IP地址如何申请免费SSL证书:完整申请与部署教程
给域名申请SSL证书很常见,但给IP地址申请SSL证书很多人没做过。
随着内网服务、物联网、边缘计算的发展,IP证书的需求越来越大。 本文详细介绍如何申请免费IP证书并部署到服务器。
一、什么场景需要IP证书
场景一:内网服务
公司内网的应用、管理后台、监控系统等,没有域名,只能用IP访问。但这些服务也需要HTTPS加密。
场景二:物联网设备
物联网设备通常只有IP地址,没有域名。设备管理界面、API接口需要HTTPS。
场景三:临时环境
测试环境、演示环境,临时用IP访问,不想配置域名。
场景四:直连IP服务
为了绕过DNS污染、加速访问,用户直接用IP访问服务。如某些云服务器的IP直连。
场景五:没有域名的服务器
刚买的服务器、没备案的域名、不想用域名的场景。
二、IP证书和域名证书的区别
| 对比项 | IP证书 | 域名证书 |
|——–|——–|———-|
| 申请对象 | IP地址 | 域名 |
| 验证方式 | IP所有权验证 | 域名所有权验证 |
| 浏览器显示 | 锁图标 | 锁图标 |
| 支持CA | 少数CA | 所有CA |
| 价格 | 多数收费 | 免费和收费都有 |
| 通配符 | 不支持 | 支持(如 *.example.com) |
| 多IP | 支持(类似SAN) | 不适用 |
关键区别:IP证书验证的是”你拥有这个IP”,域名证书验证的是”你拥有这个域名”。
三、哪些CA支持免费IP证书
Let’s Encrypt
不支持IP证书。Let’s Encrypt只签发域名证书。
ZeroSSL
支持IP证书,且免费。这是ZeroSSL相对Let’s Encrypt的重要优势。
- •单IP证书:免费
- •多IP证书:免费
- •90天有效期
- •支持DNS、HTTP、HTTPS验证
其他免费CA
Google Trust Services:暂不支持IP证书。
Cloudflare:只支持其CDN服务的域名证书。
结论:要申请免费IP证书,目前主要选择ZeroSSL。
四、申请IP证书的前提条件
条件一:公网IP
申请证书的IP必须是公网IP,不能是内网IP(如192.168.x.x、10.x.x.x)。
原因:CA需要访问这个IP完成验证,内网IP无法访问。
条件二:80或443端口可访问
根据验证方式不同:
- •HTTP验证:80端口需要能访问
- •HTTPS验证:443端口需要能访问
- •DNS验证:不需要端口访问(但IP没有DNS,所以IP证书不能用DNS验证)
条件三:IP的所有权
你需要能控制这个IP的服务器,能部署验证文件或开放端口。
五、申请IP证书的完整步骤
步骤一:选择申请渠道
可以通过以下方式申请ZeroSSL免费IP证书:
方式1:通过本网站申请
访问sslmianfei.com,输入IP地址,选择IP证书类型,按提示完成验证。
方式2:通过ZeroSSL官网申请
访问zerossl.com,注册账号,手动申请IP证书。
方式3:通过ACME客户端申请
用acme.sh申请ZeroSSL的IP证书:
acme.sh --issue -d 1.2.3.4 --standalone
步骤二:选择验证方式
IP证书支持两种验证方式:
HTTP验证(推荐):
在IP的80端口部署验证文件,CA访问 http://你的IP/.well-known/pki-validation/file.txt 确认你拥有这个IP。
HTTPS验证:
在IP的443端口部署验证文件,CA访问 https://你的IP/.well-known/pki-validation/file.txt。要求IP已经能通过HTTPS访问(已有其他证书)。
步骤三:完成验证
以HTTP验证为例:
1. 在网站根目录创建验证文件
mkdir -p /var/www/html/.well-known/pki-validation
echo "验证内容" > /var/www/html/.well-known/pki-validation/file.txt
2. 确保能访问
浏览器访问 http://你的IP/.well-known/pki-validation/file.txt,能看到验证内容。
3. 提交验证
在申请页面点击”验证”按钮,CA会访问这个文件确认IP所有权。
步骤四:下载证书
验证通过后,证书会自动签发。下载证书文件:
- •证书文件:
certificate.crt - •私钥文件:
private.key - •CA证书链:
ca_bundle.crt
步骤五:合并证书链
把证书和CA证书链合并,生成fullchain:
cat certificate.crt ca_bundle.crt > fullchain.crt
六、部署IP证书到Nginx
基础配置
server {
listen 443 ssl;
server_name 1.2.3.4; # 你的IP
ssl_certificate /path/to/fullchain.crt;
ssl_certificate_key /path/to/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
HTTP跳转HTTPS
server {
listen 80;
server_name 1.2.3.4;
return 301 https://$server_name$request_uri;
}
验证配置
nginx -t
systemctl reload nginx
测试访问
浏览器访问 https://你的IP,应该看到小锁图标,证书信息显示你的IP。
七、部署IP证书到Apache
<VirtualHost *:443>
ServerName 1.2.3.4
SSLEngine on
SSLCertificateFile /path/to/fullchain.crt
SSLCertificateKeyFile /path/to/private.key
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
DocumentRoot /var/www/html
</VirtualHost>
八、部署IP证书到IIS
1. 把证书转为PFX格式
用OpenSSL转换:
openssl pkcs12 -export -out certificate.pfx \
-inkey private.key \
-in fullchain.crt
2. 导入IIS
- •打开IIS管理器
- •服务器证书 → 导入 → 选择PFX文件
- •绑定HTTPS到网站,选择导入的证书
九、用acme.sh自动申请IP证书
安装acme.sh
curl https://get.acme.sh | sh
切换到ZeroSSL
acme.sh --set-default-ca --server zerossl
申请IP证书
# 用standalone模式(需要80端口空闲)
acme.sh --issue -d 1.2.3.4 --standalone
# 用webroot模式
acme.sh --issue -d 1.2.3.4 --webroot /var/www/html/
部署证书
acme.sh --install-cert -d 1.2.3.4 \
--key-file /etc/nginx/ssl/ip.key \
--fullchain-file /etc/nginx/ssl/ip.crt \
--reloadcmd "systemctl reload nginx"
自动续签
acme.sh安装时已配置cron,自动续签。
十、IP证书的常见问题
问题一:内网IP能申请吗
不能。CA需要公网访问IP完成验证,内网IP无法申请。
解决方案:
- •用公网IP做反向代理,把内网服务暴露出去
- •用自签名证书(浏览器不信任)
- •用域名 + 内网DNS解析
问题二:证书申请失败
原因1:80端口被防火墙拦截
解决:开放80端口,或用HTTPS验证方式。
原因2:验证文件路径错误
解决:确认文件在网站根目录的 .well-known/pki-validation/ 下。
原因3:IP格式不正确
解决:用标准IPv4格式,如 1.2.3.4,不带端口、协议。
问题三:浏览器仍提示不安全
原因1:证书链不完整
解决:用fullchain.crt而不是单独的certificate.crt。
原因2:证书过期
解决:续签证书。ZeroSSL免费IP证书90天有效期。
原因3:访问的IP和证书里的IP不一致
解决:确保访问的IP和申请证书时填的IP完全一致。
问题四:通配符IP证书
不支持。通配符证书只适用于域名(*.example.com),IP地址没有通配符概念。
多IP方案:用多IP证书(类似多域名证书的SAN机制),一张证书覆盖多个IP。
问题五:IPv6能申请吗
能。ZeroSSL支持IPv4和IPv6证书。申请方式相同。
十一、IP证书的安全性
加密强度
IP证书和域名证书使用相同的TLS协议、相同的加密算法,加密强度完全相同。
浏览器兼容性
主流浏览器(Chrome、Firefox、Safari、Edge)都信任ZeroSSL的IP证书,兼容性和域名证书一样。
信任度
IP证书的信任度和DV域名证书相同——只验证所有权,不验证身份。用户看到的小锁图标也相同。
十二、IP证书的局限
1. 没有通配符
无法用一张证书覆盖一段IP段,每个IP需要单独申请或用多IP证书。
2. 不能用DNS验证
IP没有DNS记录,只能用HTTP或HTTPS验证。
3. 用户认知低
用户更习惯用域名访问,直接用IP访问可能让用户不信任。
4. IP变更麻烦
服务器换IP后,证书需要重新申请。域名证书只要域名不变就没事。
结语
IP证书解决了无域名场景的HTTPS需求。ZeroSSL提供免费IP证书,申请流程和域名证书类似。如果你有内网服务、物联网设备、临时环境需要HTTPS,试试IP证书,免费、快速、浏览器兼容。