SRS - 如何保护您的HTTP API安全

作者:API传播员 · 2025-10-28 · 阅读时间:3分钟

建立 SRS 服务器后,您可以通过 HTTP API 使用 SRS 控制台或其他 HTTP 客户端进行访问。然而,为了防止未经授权的访问,保护您的 HTTP API 是至关重要的。本文将详细介绍如何保护您的 HTTP API,确保其安全性。


启用 HTTP API 安全功能

升级 SRS 版本

首先,请确保您的 SRS 版本已升级到以下版本之一:

  • SRS 5.0.152 或更高版本
  • SRS 6.0.40 或更高版本

这些版本支持 HTTP API 的安全功能。

配置 HTTP 基本身份验证

通过修改配置文件启用 HTTP 基本身份验证。以下是配置示例:

# conf/http.api.auth.conf
http_api {
    enabled;
    listen 1985;
    auth {
        enabled;
        username admin;
        password admin;
    }
}

完成配置后,使用以下命令启动 SRS:

./objs/srs -c conf/http.api.auth.conf

或者,您也可以通过环境变量设置用户名和密码:

env SRS_HTTP_API_ENABLED=on SRS_HTTP_SERVER_ENABLED=on 
SRS_HTTP_API_AUTH_ENABLED=on SRS_HTTP_API_AUTH_USERNAME=admin 
SRS_HTTP_API_AUTH_PASSWORD=admin ./objs/srs

配置完成后,您可以通过以下 URL 验证 HTTP API 的访问:

http://admin:admin@localhost:1985/

如果需要清除用户名和密码,您可以仅使用用户名访问 HTTP API。


使用 SRS 控制台管理服务器

SRS 控制台是一个用于管理 SRS 服务器的 Web 应用程序。服务器启动后,您可以通过以下 URL 访问控制台:

http://localhost:8080/console/

如果启用了 HTTP API 身份验证,您需要使用带有用户名和密码的 URL 访问控制台:

http://admin:admin@localhost:8080/console/

或者,浏览器会提示您输入用户名和密码。


针对 SRS 4.0 的解决方案

SRS 4.0 不支持 HTTP API 身份验证,但您可以通过以下方法保护 HTTP API:

使用 Nginx 代理

通过 Nginx 代理 HTTP API,并在 Nginx 中启用 HTTP 基本身份验证。以下是架构示意图:

浏览器 --- HTTP 认证 ---> Nginx --- HTTP ---> SRS 4.0

修改 SRS 配置

将 SRS HTTP API 的监听地址更改为本地回环地址,以限制访问范围:

http_api {
    enabled;
    listen 127.0.0.1:1985;
}

通过这种方式,HTTP API 只能由本地主机的代理服务器访问。


WebRTC API 的安全性

SRS 不支持 WebRTC 的 HTTP API 身份验证。对于 WebRTC 客户端的验证,建议使用 HTTP 回调机制来确保安全性。


结论

保护 HTTP API 是确保 SRS 服务器安全运行的重要步骤。通过启用 HTTP 基本身份验证或使用代理方案,您可以有效防止未经授权的访问。对于 WebRTC API,建议采用 HTTP 回调机制来加强安全性。

原文链接: https://ossrs.net/lts/en-us/blog/secure-your-http-api