近期想尝试在自己的云服务下部署 AI 视频总结应用,发现插件本身用到了 SharedArrayBuffer 去处理视频
SharedArrayBuffer 出于安全限制,目前仅支持 HTTPS 域名下使用,详细可见: SharedArrayBuffer - JavaScript | MDN
由于之前申请的域名因为太贵,已经注销掉了,目前只能通过 IP 地址访问,没法使用各大云的 DV 证书部署网站(印象中是只支持 DV),因此需要找到可以支持 IV 证书部署的方案
DV:域名证书,需要提供域名信息才能使用的 HTTPS 证书
IV :个人地址证书,只需要验证 IP 地址可用就可以部署的 HTTPS 证书
后续找到 ZeroSSL 可以部署 IP 地址的 HTTPS 证书(IV)
以下是关于 IP 地址申请 HTTPS 的流程
ZeroSSL
证书获取
- 注册 ZeroSSL 账号
- 申请 90 天 HTTPS 证书

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

插件不选,选了要给钱

剩下的保持默认

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

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

这边使用 nginx 配置文件进行部署,在查找 nginx 部署根目录 root 字段
server{
listen 80;
#....
root /usr/share/nginx/html
}
可以看到配置是在 /user/share/nginx/html
根据下载认证图片 第 3 点 要求的指定目录,把官方提供的文件放到该目录下指定的子目录
完成后,通过页面尝试访问 第 4 点 指定的路径是否成功,然后点 Next Step, 进入到下个步骤
点击 Verify Domain 进行域名校验,校验通过后,官方会下发证书文件

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

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 域名的访问,对于 IP 地址部署的页面,需要自己手动访问去调通

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

被折叠的 条评论
为什么被折叠?



