理想的情况下,域名可以正常使用,但也有无法使用域名的情况,在这https 大行其道的时代,IP 作为 url 也需要 SSL 证书,本文记录为 IP url 申请免费 SSL 证书的方法。
背景 {#背景}
因为某些众所周知的原因,国内使用域名访问自己的服务器往往非常困难,而使用IP可以直接访问,但是没有SSL的保护。
-
大多数面对 IP 的 SSL 证书都是收费的。而 zeroSSL 提供 免费 SSL 证书 是支持纯 IP 颁发的。
-
申请到证书后部署到 Nginx 服务器上
-
需要的环境:
-
一台有公网 IP 的服务器
-
Nginx
-
需要外网访问环境
-
申请证书 {#申请证书}
- 访问:https://zerossl.com/
- 注册账号,登录主页
- 填入公网 IP 地址
- 选择 90天 免费 SSL
- 自动生成 CSR
- 直接下一步
- 验证阶段,我们的IP无法进行 DNS,选择文件验证方式
- 在 80 端口访问的站点根目录建立要求的文件
- 开始认证域名(IP)
- 验证成功后会收到祝贺邮件,之后下载证书,选择和我们服务器类型相同的
证书安装 {#证书安装}
- 下载到的证书文件有三个
- 在宝塔面板中安装证书
- 秘钥(key) 为 private.key 文件的内容
- 证书(PEM格式) 为 certificate.crt + ca_bundle.crt
- 方法是打开 certificate.crt,然后将 ca_bundle.crt 的内容复制粘贴放在后面。
证书测试 {#证书测试}
- 随后可以成功使用 https 协议登录
- 也可以在 ZeroSSL 中测试是否安装成功
续期 {#续期}
- 免费证书有效时间为三个月,目前没有很好的工具用于续期
- Github 有开发者使用 golang 写了个工具可以实现更新:https://github.com/tinkernels/zerossl-ip-cert,但是不好操作
- 每个账号可以申请三个免费SSL证书
- 在即将到期之际(30天左右)也可以手动申请续期,这也是目前最好的续命方法
流程 {#流程}
- 进入快要过期的域名管理,快要到期(Expiring soon)时可以选择
Renew
- 选择目标域名,下一步
- 可以选择继续 90 天或买个一年的
- 自动生成信息即可
- 我选择免费的~
- 之后重复上文的域名验证步骤即可
- 完成认证后重复部署步骤即可继续使用
- 重新续命90天
参考资料 {#参考资料}
文章链接:
https://www.zywvvd.com/notes/coding/internet/ip-ssl/ip-ssl/