【宝塔】局域网IP申请SSL证书,解决浏览器本地环境可以访问摄像头,发布环境不能访问摄像头的问题

前言

在本地开发环境 127.0.0.1 或 localhost 中,通过 HTTP/IP 协议访问摄像头等设备时,浏览器可以正常请求到摄像头以及拿到画面。

然而,当项目迁移到发布环境后,使用 HTTP/IP 协议访问摄像头:提示开启摄像头失败:Cannot read properties of undefined (reading 'getUserMedia')。

然后果断看了一下官网关于 navigator.mediaDevices 的描述,然后发现需要用到 HTTPS。

因此这篇文章主要是介绍 Windows 如何申请SSL证书为局域网IP,然后在宝塔上面进行配置。

安装和配置 OpenSSL

  1. 安装 OpenSSL:

  2. 配置系统环境

申请证书

  1. 在 PowerShell 或 CMD 中:

    shell 复制代码
    mkdir C:\certs
    cd C:\certs
    
    openssl req -x509 -nodes -days 1825 -newkey rsa:2048 ^
      -keyout topmes-lan.key ^
      -out topmes-lan.crt ^
      -subj "/CN=10.0.222.110" ^
      -addext "subjectAltName=IP:10.0.222.110,DNS:localhost"

    10.0.222.110 可以替换成你需要申请 SLL 证书的 IP。申请成功以后如下图:

  2. 生成证书文件

    • topmes-lan.crt、topmes-lan.key 可用于 Nginx。

    • 若用 IIS,可把 .crt 导入「受信任的根证书颁发机构」;IIS 绑定一般用 .pfx,可用下面命令从 crt+key 生成 pfx:

      shell 复制代码
      openssl pkcs12 -export -out topmes-lan.pfx -inkey topmes-lan.key -in topmes-lan.crt
      # 按提示设置 pfx 密码,IIS 导入时需填写

宝塔配置证书

在 宝塔 里已有用 局域网 IP 或 域名 创建的网站,且根目录已指向前端 dist(或你的静态目录)。

若没有:网站 → 添加站点 → 域名填 10.0.222.110(或你的 IP),根目录选好,先确保 HTTP 能访问。

部署 SSL(其他证书)

  1. 打开 宝塔 → 网站 → 点击你的站点名(或 设置)。

  2. 左侧选择 SSL。

  3. 在证书类型中选择 当前证书 (有的版本叫 自定义证书 、PEM 格式 、其他证书 或 自有证书,依 宝塔 版本而定)。

  4. 填写两栏:

    • 私钥(KEY) :用记事本打开 C:\certs\topmes-lan.key,全文复制 (含 -----BEGIN PRIVATE KEY----- 和 -----END PRIVATE KEY-----)粘贴到进去。

    • 证书(PEM 格式) :用记事本打开 C:\certs\topmes-lan.crt,全文复制 (含 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)粘贴进去。

  5. 点 保存 或 部署。保存后,宝塔会自动为该站点添加 443 监听并写好 Nginx/Apache 的 SSL 配置。

强制 HTTPS(可选)

在 SSL 页面勾选 强制 HTTPS ,使 http://192.168.1.100 自动跳转到 https://192.168.1.100。

放行 443 端口

  • 宝塔 安全 / 防火墙 中添加入站规则:TCP 443 放行。
  • 若 宝塔 已自动放行 443,可跳过;否则 Windows 防火墙也需放行 443:
    • 管理员 PowerShell:New-NetFirewallRule -DisplayName "HTTPS-443" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

修改配置文件

需要将端口监听到 HTTPS,在端口号傍边加上 ssl 标记即可。

相关推荐
明天也要努力学习1 天前
HTTP 协议的基本格式和 fiddler 的用法
网络协议·http·fiddler
LCG米1 天前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
Tel199253080041 天前
温度湿度信号转WiFi/MQTT/Modbus TCP采集模块 无线传输
网络·网络协议·tcp/ip·工业自动化·工控设备
lazy H1 天前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
Linux运维技术栈1 天前
WAF部署在防火墙后面,获取不到真实IP怎么办?
服务器·网络·tcp/ip·安全·防火墙·waf
低慢小uav1 天前
(已解决)Zynq芯片lwip协议栈,使用tcp作为服务器Service,接收大量数据时,长度接收正常,接收对数据校验,校验和异常分析
网络协议·tcp/ip·fpga开发
德迅云安全-上官2 天前
德迅游戏盾:面向 TCP 业务的分布式云安全防护方案
分布式·tcp/ip·游戏
星恒随风2 天前
Linux Socket TCP编程(二):逐文件重构多进程、多线程与线程池服务器,深入fork、pthread_create、popen和std::bind
linux·服务器·笔记·学习·tcp/ip
|_⊙2 天前
应用层协议HTTP与HTTPS
网络·网络协议·http
秦禹辰2 天前
ClipSketch AI把视频改造成图文漫画:选关键帧、生成手绘分镜、融合IP形象并自动写小红书文案
人工智能·tcp/ip·音视频