IP地址如何申请免费SSL证书:完整申请与部署教程

a
admin
作者
2026-07-18
发布日期
约 14 分钟
阅读时间

给域名申请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证书,免费、快速、浏览器兼容。

本文到此结束