ip_port申请SSL+部署

现在有很多证书签发商能签发免费的域名 SSL 证书,其中最出名的就是 Let’s Encrypt 了,不过他们家现在还不支持签发 IP 证书,这对于想给自己的 IP 签发证书的站长来说不免有些遗憾。这次给大家介绍的 ZeroSSL,也是一家类似 Let’s Encrypt 的证书签发商,注册成为他们的免费用户就可以签发出 90 天有效期的证书,但是不同的是,他们家能签发 IP 的 SSL 证书哦,这个就比较少见了~

说起 IP SSL 证书,可能有些人不解,我们平时都是用域名访问网站的,为什么要专门给 IP 签发证书呢?我自己的话主要有四方面的原因:

有些业务需要通过 IP 访问但不想明文传输,需要通过 HTTPS 连接保证传输安全
第一点虽然可以通过自签证书解决但是使用上不太方便
可以一定程度防止源站 IP 检测(Nginx 如果不做特别设置的话,使用 https://ip 的形式访问会默认返回绑定 443 端口的网站域名证书)
IP 证书诶!白嫖的诶!它不香嘛!
话不多说,直接开始申请吧!

一、注册

ZeroSSL 官网:https://zerossl.com

不同于 Let’s Encrypt,ZeroSSL 是要注册才能申请免费证书的,另外虽然官方也支持 ACME 申请证书,但此渠道没办法用来签发 IP 证书,所以我们还是得用 Web 端来申请(信息来源:https://luotianyi.vc/5056.html)。

另外需要注意的是,ZeroSSL 限制每个账号能签发的免费证书数量为 3 个,不知道 ACME 有没有这个限制,如果需要签发更多证书的话需要付费,基础套餐每月 US$ 10。

二、申请

虽然 ZeroSSL 没有 Let’s Encrypt 申请证书那么自由,不过能免费签发 IP SSL 证书这点也确实很有优势,所以还是来说说申请过程吧。

注册完账号之后,申请证书的页面是这个样子的:

图里面这个 1.1.1.1 处就是要填写你自己要申请的 IP 的,我这里为了方便演示就随便写了 Cloudflare 的,如果是要申请普通的域名证书,那直接填写域名也行。填写完 IP,点击 Next Step 到下一步。

这一步就是选择申请证书的有效时间的,他默认选择的是 1-Year 一年的,记得要换成 90-Day Certificate(90 天有效期),一年的证书是要花钱才能用的。选择完成之后,继续 Next Step。

CSR 信息这个一般没需求的话让他自己自动生成(Auto-Generate CSR)就行了。

这一步就是让我们选择付费套餐了,上图里你可以看到各个套餐的区别(买不起买不起,我选择 Free 白嫖!)。

完成上面的设置之后,就会让你验证 IP 了。

因为我们申请的是 IP 证书,所以无法像常规的域名证书那样通过 DNS 来进行检验,只能通过 HTTP 文件的形式来验证 IP。具体操作是在服务器网站目录里创建 .well-known 文件夹,然后在其下面再创建 pki-validation 文件夹,之后把网站提供的验证文件下载上传到这个目录里,点击验证就行了。

上面这一步需要注意的是,你要确保你的 IP 是能通过 http://ip 这种形式访问的,当然不需要访问之后有什么实际内容。下面对** 如何验证**做一些补充:

  • 注意服务器一定要开放80端口!
  • 构造.well-known/pki-validation/xxx.txt的目录。这里我是放在服务器
/www/wwwroot/.well-known/pki-validation/xxxxx.txt

这个目录下,接下去要配置 nginx,使得 http://ip/.well-known/pki-validation/xxx.txt(网站提供的验证文件)这个网址能打开能出现下图所示界面即可

  • 以宝塔 面板为例, 打开 nginx配置页面

  • 找到配置修改:

  • 在 sever 配置中加入如下代码:
location /.well-known/ {
    root /www/wwwroot;
    allow all;
}

  • 将上述配置保存。打开命名行界面。测试配置并重启 nginx:
nginx -t   
# 出现success 表示成功,如果fail请检查上述格式配置是否出现问题。空格缩进什么的

nginx -s reload
# 重启nginx
  • 测试访问

验证完成之后,就会看到上面的成功签发提示了,然后选择自己 Web Server 的类型,点击 Download Certificate 就能下载到签发出来的 IP 证书。

  • 下载.zip 文件并解压:

  • 进入解压文件,有如下三个文件:

  • 在当下目录打开cmd
# Linux创建合并后的证书文件
type certificate.crt ca_bundle.crt > fullchain.pem

# windows 命令
Get-Content certificate.crt, ca_bundle.crt | Set-Content fullchain.pem
  • 在服务器上创建存放证书的目录:
# 登录服务器后执行
mkdir -p /www/server/nginx/ssl
  • 将证书文件上传到服务器: 需要上传的文件有<font style="color:rgb(68, 64, 60);">fullchain.pem</font>(刚才合并的文件),<font style="color:rgb(68, 64, 60);">private.key</font>(私钥文件),这里先改个名字,上传的位置:/www/server/nginx/ssl目录下。
fullchain.pem -> 服务器ip.pem 比如说,111.222.33.4.pem
private.key ->服务器ip.key
  • 打开上述 Nginx 的配置界面,在默认 server下面,填入下面代码,注意这里我以端口为 8080 的服务为例子。

:::info
!重要提示:

假设我原来访问的 ip:port 是 http://1.2.3.4:8080

我这里设置:<font style="color:#DF2A3F;"> listen 443 ssl;</font> 那么按照下面的代码配置,实现成功后,访问的 ip:port 变成
https://1.2.3.4:443。443 是 https 访问的默认端口,可以忽略 ,即访问 https://1.2.3.4即可。

如果你想通过<font style="color:#DF2A3F;"> ip:8080</font>来访问,则需要让 Nginx 来绑定监听 8080 端口,而 Spring Boot 服务则需要绑定监听别的端口了。

:::

   server {
        listen 443 ssl;
        server_name 服务器ip;

        ssl_certificate /www/server/nginx/ssl/服务器ip.pem;
        ssl_certificate_key /www/server/nginx/ssl/服务器ip.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_session_cache shared:SSL_Server1:1m;
        ssl_session_timeout 10m;

        location / {
            proxy_pass http://127.0.0.1:服务端口;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

        access_log /www/wwwlogs/access.log;
        error_log /www/wwwlogs/error.log;
    }
  • 点击保存,切换到命令行界面
nginx -t   
# 出现success 表示成功,如果fail请检查上述格式配置是否出现问题。空格缩进什么的

nginx -s reload
# 重启nginx
  • 结束。ZeroSSL是我唯一知道可以免费办IP证书的服务商,一次免费领3个月,到期继续领就行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值