IP SSL证书申请完整流程:从准备到部署的详细步骤
IP SSL证书申请完整流程:从准备到部署的详细步骤
很多人以为IP SSL证书申请很复杂,实际上整个流程清晰,关键是要满足前置条件。这篇把IP SSL证书申请的完整流程拆解成7个步骤,从准备到部署全覆盖。如果你已经了解IP证书的基础知识,可以直接按这个流程操作。
流程概览
IP SSL证书申请的7个步骤:
- 确认IP符合申请条件
- 准备Web服务器环境
- 生成CSR文件
- 提交证书申请
- 配置验证文件
- 触发CA验证并下载证书
- 部署证书到服务器
步骤一:确认IP符合申请条件
必须满足的条件
条件1:必须是公网IP
公网IP的判断标准:
- •可以从互联网直接访问
- •不在私有IP段(10.x、172.16-31.x、192.168.x、127.x)
- •服务器有公网IP地址
检查命令:
# 查看服务器公网IP
curl ifconfig.me
# 或
curl ip.sb
条件2:IP必须支持海外访问
这是最关键的条件,也是申请失败的第一大原因。详细排查方法参考 IP证书申请失败原因。
测试方法:
- •用 check-host.net 测试海外节点访问
- •用 ping.pe 测试全球连通性
条件3:80端口或443端口可访问
CA通过HTTP(80端口)或HTTPS(443端口)验证IP所有权。
检查命令:
# 检查80端口是否监听
netstat -tlnp | grep :80
# 检查防火墙
iptables -L -n | grep :80
云服务器还需要在云控制台的安全组放行80端口。
不符合条件怎么办
- •内网IP:申请不了IP证书,建议用域名+内网DNS
- •海外访问不通:联系机房放行海外IP段
- •80端口被屏蔽:开放80端口或联系运营商
步骤二:准备Web服务器环境
安装Web服务器
Nginx(推荐):
# Ubuntu/Debian
apt update && apt install nginx -y
# CentOS/RHEL
yum install nginx -y
systemctl start nginx
systemctl enable nginx
Apache:
# Ubuntu/Debian
apt update && apt install apache2 -y
# CentOS/RHEL
yum install httpd -y
systemctl start httpd
systemctl enable httpd
配置80端口的默认站点
Nginx配置:
server {
listen 80 default_server;
server_name _;
root /var/www/html;
index index.html;
location /.well-known/pki-validation/ {
try_files $uri =404;
}
}
Apache配置:
<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory "/var/www/html/.well-known/pki-validation/">
Require all granted
</Directory>
</VirtualHost>
测试访问
# 测试80端口是否正常
curl http://your-ip/
应该返回默认页面内容。
步骤三:生成CSR文件
CSR(Certificate Signing Request) 是证书签名请求文件,包含公钥和申请信息。
方式一:在线生成CSR(推荐)
访问 CSR在线生成工具:
- 填写通用名CN:输入IP地址(如
39.97.237.174) - 其他字段可留空(IP证书是DV证书,不需要企业信息)
- 选择密钥长度:RSA 2048位
- SAN字段:可以填多个IP,逗号分隔
- 点击”生成CSR和私钥”
- 复制CSR内容和私钥内容,分别保存为
server.csr和private.key
重要:私钥必须妥善保管,丢失无法补发。
方式二:用OpenSSL生成CSR
# 生成私钥
openssl genrsa -out private.key 2048
# 生成CSR
openssl req -new -key private.key -out server.csr -subj "/CN=39.97.237.174"
多IP的CSR生成:
# 创建配置文件
cat > san.cnf << EOF
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
CN = 39.97.237.174
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
IP.1 = 39.97.237.174
IP.2 = 39.97.237.175
EOF
# 生成CSR
openssl req -new -key private.key -out server.csr -config san.cnf
验证CSR
openssl req -text -noout -verify -in server.csr
应该显示你的IP地址和公钥信息。
步骤四:提交证书申请
在sslmianfei.com提交申请
- 访问 sslmianfei.com
- 在首页输入框输入IP地址
- 系统自动识别为IP证书
- 点击”立即申请”
上传CSR
方式一:粘贴CSR内容
把生成的CSR内容粘贴到输入框。
方式二:自动生成CSR
sslmianfei.com也支持自动生成CSR,但建议自己生成CSR并保管私钥。
选择验证方式
- •HTTP验证(推荐):通过80端口验证
- •HTTPS验证:通过443端口验证(需要已有证书,不推荐)
步骤五:配置验证文件
获取验证信息
提交申请后,系统返回:
- •验证文件路径:
/.well-known/pki-validation/ - •验证文件名:随机字符串(如
A8B3D9E.txt) - •验证文件内容:验证码(如
20260827xxx...)
创建验证文件
# 创建目录
mkdir -p /var/www/html/.well-known/pki-validation/
# 创建验证文件
echo "20260827xxx..." > /var/www/html/.well-known/pki-validation/A8B3D9E.txt
# 设置权限
chmod 644 /var/www/html/.well-known/pki-validation/A8B3D9E.txt
验证文件可访问
本地测试:
curl http://your-ip/.well-known/pki-validation/A8B3D9E.txt
应该返回验证文件的内容。
海外访问测试(关键):
用 check-host.net 测试海外节点能否访问。
步骤六:触发CA验证并下载证书
触发验证
- 回到 sslmianfei.com 申请页面
- 点击”验证解析”按钮
- 系统通知CA服务器访问验证文件
- 等待验证结果
验证结果处理
结果1:验证成功,证书已签发
- •显示”解析验证成功,证书已签发”
- •1.5秒后自动跳转到下载页面
- •可以下载证书文件
结果2:验证成功,证书审核中
- •显示”解析验证成功”(仍在审核)
- •点击”获取证书”按钮重新触发签发
- •等待几分钟再试
结果3:验证失败
- •显示”解析验证未通过”
- •排查原因(参考 IP证书申请失败原因)
- •常见原因:海外访问不通、80端口未开放、验证文件路径错误
下载证书文件
证书签发后下载:
- •
certificate.crt:服务器证书 - •
ca-bundle.crt:中间证书 - •
private.key:私钥(如果自己生成的CSR,这个文件就是你之前生成的私钥)
合并为fullchain:
cat certificate.crt ca-bundle.crt > fullchain.crt
步骤七:部署证书到服务器
Nginx部署
server {
listen 443 ssl http2;
server_name 39.97.237.174;
ssl_certificate /etc/nginx/ssl/fullchain.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
重启Nginx:
nginx -t
systemctl reload nginx
Apache部署
<VirtualHost *:443>
ServerName 39.97.237.174
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/fullchain.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
</VirtualHost>
重启Apache:
apachectl configtest
systemctl restart apache2
验证部署
浏览器访问:
访问 https://your-ip,应该显示绿色小锁。
在线检测:
用 SSL证书配置检测工具 检测:
- •证书链是否完整
- •TLS版本是否安全
- •证书品牌和有效期
- •安全响应头配置
证书续期
免费IP证书90天有效期,到期前需要续期。
手动续期
到期前1-2周重新走一遍上述流程,申请新证书替换旧证书。
自动续期(acme.sh)
# 安装acme.sh
curl https://get.acme.sh | sh
# 申请证书(HTTP验证,standalone模式)
acme.sh --issue -d 39.97.237.174 --standalone
# 安装证书
acme.sh --install-cert -d 39.97.237.174 \
--key-file /etc/nginx/ssl/your-ip.key \
--fullchain-file /etc/nginx/ssl/your-ip.crt \
--reloadcmd "systemctl reload nginx"
acme.sh自动创建cron任务,到期前自动续期,完全无人值守。
常见问题
问题一:验证文件本地能访问,但CA验证失败
原因:IP不支持海外访问。
解决:参考 IP证书申请失败原因 排查海外访问问题。
问题二:证书部署后浏览器报”证书不受信任”
原因:证书链不完整。
解决:使用fullchain.crt(包含中间证书),不要只部署服务器证书。
问题三:多个IP能用一张证书吗
可以。申请多IP证书,在CSR的SAN字段添加多个IP:
[alt_names]
IP.1 = 39.97.237.174
IP.2 = 39.97.237.175
IP.3 = 39.97.237.176
问题四:IP变了怎么办
IP证书绑定的是IP,IP变了证书就失效了。需要用新IP重新申请证书。
问题五:能用自签名证书代替
不推荐用于生产环境。自签名证书浏览器会报警告,用户体验比HTTP还差。测试环境可以用 在线测试证书生成工具 生成自签名证书。
总结
IP SSL证书申请的完整流程:
- 确认条件:公网IP、海外访问、80端口开放
- 准备环境:安装Web服务器,配置80端口默认站点
- 生成CSR:用 CSR生成工具 或OpenSSL
- 提交申请:在 sslmianfei.com 提交
- 配置验证文件:创建
.well-known/pki-validation/验证文件 - 触发验证:点击”验证解析”,等待签发
- 部署证书:下载证书,配置到Nginx或Apache
核心注意事项:
- •IP必须支持海外访问(最关键)
- •必须用fullchain(包含中间证书)
- •90天有效期,建议用acme.sh自动续期
- •私钥必须妥善保管
配套工具: