2025-09-30

不使用域名,IP地址如何申请SSL证书?


前言


图片

    有些特定需求环境下,我们不希望使用域名,而需要使用IP地址+端口的形式直接访问。这种多数是在一些企业的应用系统在公网上跑,如果用域名,通过备案+子域名暴力穷举等方式会暴露出系统的地址,虽然跑直接IP也会暴露,但是能多一层防护当然更好,其实最主要是像作者这种企业,上级就不允许你域名有映射,用域名全部要备案。

   不用域名,又想跑ssl,以前以为只能是使用自签的证书,每次用户访问显示一个大大的不信任,后来才知道其实IP地址也可以申请SSL证书,本文主要讲解IP证书的购买、验证和配置。

图片


13.jpg




注意事项


图片

一、IP证书务必咨询清楚


大多数的证书厂商都是主推域名证书,购买IP证书需要提前了解清楚是否支持IP签发证书了。比如在阿里云上的证书购买页面,我就没找到有IP证书的描述。叫你输入的就是域名购买。

填写IP地址后,只有OV证书可以购买。价格最便宜的也是Globalsign,2K多。作者也就没去购买了,直接寻求其他途径了。

作者一直在使用宝塔面板来做linux服务器管理,之所以购买他家的一个是便宜,一个是可以配合面板做设置。DV的证书,如果不是对加密性要求很高,完全就够用。作者就是只要不弹出不安全提示就可以,有这个提示会给你日常工作找来很多麻烦事。

就在些这篇文章前一个小时,因为公司VPN服务器的IP证书过期了,早上8点开始,作者电话就被打爆了,都问公司VPN站点被黑了吗,能不能访问,要怎么操作继续。


懂证书配置的,完全可以省掉200一年的人工服务。作者选择的是瑞安信的,也就216一年,算是便宜,毕竟是国内老牌证书厂商,宝塔还真没注意他自己什么时候开始做证书的。


二、 证书申请和验证


DV型的证书验证比较方便,只需要验证域名或者IP的所有权。对于域名验证可以采用DNS验证,也就是厂商会让你域名做一个cname的解析,还有就是文件的验证,要求是站点目录下方一个指定的txt文件。在宝塔购买证书后,在后台的证书管理页面就可以看到你购买的证书列表。

1. 完善资料申请证书


如果你购买的是IP证书,那么会明确的显示是IP SSL 证书,如果是域名的就没有IP两个字,注意不要搞错证书类型。点击完善资料。域名部分就输入你的IP即可,选择文件验证,建议选HTTP了,选HTTPS,但又没有证书或者证书是自签的,会导致后面验证失败。

填写的验证资料,建议是真实有效的,虽然不会去核查。


2. 验证所有权


IP证书是只能通过文件验证的,需要按照指引给该IP建立一个站点,并把验证文件放到指定的目录下去。本文也不阐述如何建站了,找台服务器临时把IP指向过去,或者把80端口映射过去都行,装个apache或者ngnix。 验证时一次性的,通过后就不需要了。

验证失败状态码说明


失败[-1]:域名未解析


失败[-2]:验证文件不存在


失败[-3]:请求超时,无法访问验证文件


失败[-4]:网站开启301/302/强制HTTPS,导致无法验证文件


失败[-5]:拒绝访问验证文件


失败[ 0]:未知原因


三、 配置证书举例


在宝塔中配置证书时很简单的。证书申请成功后,会拿到一个压缩包,解压后如下

提供了主流的web服务器支持的证书格式。在宝塔面板中配置超级简单,你都不用去下载证书,直接进入倒宝塔面板页面,在你所需要配置的站点设置页面,ssl界面,选择你要部署的证书点击部署即可。

如果需要手动配置证书,以ngnix为例,核心就是要就是修改配置文件,在需要配置证书的站点server块中指定证书crt文件和私钥key文件所在的目录。

        ssl_certificate /path/to/example.com.crt;  # 证书文件路径
        ssl_certificate_key /path/to/example.com.key;  # 私钥文件路径        
        # 其他SSL配置参数
        ssl_protocols TLSv1.2 TLSv1.3;  # 支持的协议版本
        ssl_ciphers HIGH:!aNULL:!MD5;  # 加密套件
        ssl_prefer_server_ciphers on;  # 优先使用服务器端的加密套件
图片


图片

如果有过域名证书申请、配置和验证的经验的话,对于IP证书的操作就比较简单得心应手了,如果条件允许,大家证书就买3年的比较好,如果每年买你都得重新验证一次,还是有些麻烦的。