如何给 IP 地址部署 HTTPS

近期想尝试在自己的云服务下部署 AI 视频总结应用,发现插件本身用到了 SharedArrayBuffer 去处理视频

SharedArrayBuffer 出于安全限制,目前仅支持 HTTPS 域名下使用,详细可见: SharedArrayBuffer - JavaScript | MDN

由于之前申请的域名因为太贵,已经注销掉了,目前只能通过 IP 地址访问,没法使用各大云的 DV 证书部署网站(印象中是只支持 DV),因此需要找到可以支持 IV 证书部署的方案

DV:域名证书,需要提供域名信息才能使用的 HTTPS 证书
IV :个人地址证书,只需要验证 IP 地址可用就可以部署的 HTTPS 证书

后续找到 ZeroSSL 可以部署 IP 地址的 HTTPS 证书(IV)
以下是关于 IP 地址申请 HTTPS 的流程
ZeroSSL

证书获取

  1. 注册 ZeroSSL 账号
  2. 申请 90 天 HTTPS 证书
    证书申请

选择 90 天证书(似乎是有新规,现在证书有效期只有 3 个月)

选择证书期限

插件不选,选了要给钱

插件不要选!!!

剩下的保持默认
RSA 2048 加密算法足矣

这里会选中免费版本,点击 Next Step 进入下一步

重要网站还是买套餐吧

  1. 认证服务器资格
    这里只能通过上传文件的方式来完成,官方会给到一个认证文件,需要将文件部署到可以通过服务器 IP 地址访问得到的路径(必须部署在默认80端口)。
    下载认证文件用于部署

这边使用 nginx 配置文件进行部署,在查找 nginx 部署根目录 root 字段

server{
  listen 80;
  #....
  root  /usr/share/nginx/html
}

可以看到配置是在 /user/share/nginx/html
根据下载认证图片 第 3 点 要求的指定目录,把官方提供的文件放到该目录下指定的子目录
完成后,通过页面尝试访问 第 4 点 指定的路径是否成功,然后点 Next Step, 进入到下个步骤

点击 Verify Domain 进行域名校验,校验通过后,官方会下发证书文件

IP 地址验证

将下发的证书文件下载到本地,会得到证书和密钥文件如下

image.png

HTTPS 证书部署

本地是 Windows 系统,因此通过 scp 命令,将文件上传到 linux 服务器

scp <本地zip目录>/xxxx.zip root@<ip>:<上传linux路径>

在服务器上,通过 unzip 命令解压文件

unzip ./xxx.zip -d ./dir

ca_bundle.crt 内容合并到 certificate.crt (nginx 要求所有 .crt 文件需要合并以运行 SSL 安装)

$ cat ca_bundle.crt >> certificate.crt

将文件放到方便获取的目录下,修改 nginx.conf 文件,参考官方提供的配置修改添加一下

http {
    # 处理HTTP请求,强制跳转至HTTPS
    server {
        listen       80;
        listen       [::]:80;
        # server_name  _;
        return 301 https://$host$request_uri; # 重定向http请求到 IP 地址
    }

    # HTTPS服务器配置
    server {
        listen               443 ssl;
        listen       [::]:443 ssl http2;
    
        root         /usr/share/nginx/html;
    
        ssl_protocols  TLSv1.2 TLSv1.3
        ssl_certificate      /etc/ssl/certificate.crt; 
        ssl_certificate_key  /etc/ssl/private.key;
      
        access_log   /var/log/nginx/nginx.vhost.access.log;
        error_log    /var/log/nginx/nginx.vhost.error.log;
    }
}

完成后重启 nginx 服务

nginx -s reload -c /etc/xxx/nginx.conf -t # 测试配置是否有问题
nginx -s reload -c /etc/xxx/nginx.conf # 重启服务

整个流程基本就完成了

安全组调整

若尝试访问失败,可以查看一下安全组访问规则是否进行了限制。
这里以阿里云安全组为例,在 入规则 中放通 443 端口即可。

放开 HTTPS 端口

官方提供了检查机制,但仅支持 HTTPS 域名的访问,对于 IP 地址部署的页面,需要自己手动访问去调通

官方校验,但 IP 地址只能手动调通

总结

以上是关于 IP 地址申请 HTTPS 的流程。
虽然最后项目部署出了点问题,但总算把如何给 IP 地址部署 HTTPS 的疑问给解决了。
整体流程比较顺畅,不会有太多的卡点。

参考内容

DV,OV,IV和EV证书-SSL.com

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值