# 为 HTTP(S) 站点设置访问密码

> 使用 HTTP Basic Auth 限制对 HTTP(S) 隧道和 HTTP 正向代理的访问

---

LLMS 索引： [llms.txt](/llms.txt)

---

HTTP(S) 隧道共用服务端入口。对于开发预览、临时管理页等不应公开访问的站点，可以使用客户端的“代理认证用户名”和“代理认证密码”启用 HTTP Basic Auth。

## 配置方式

在 Web 管理中编辑站点所属的客户端，同时填写：

- 代理认证用户名
- 代理认证密码

两项均留空时不使用这组凭据；只有用户名和密码都非空时才启用认证。配置属于客户端，因此该客户端下的 HTTP(S) 隧道以及 HTTP 正向代理会共用同一组凭据，而不是每个域名单独设置。

使用公共验证密钥、由 `npc.conf` 注册临时客户端时，可在 `[common]` 中设置：

```ini
[common]
basic_username=preview
basic_password=请替换为高强度随机密码
```

修改配置文件后重新连接 NPC。对于已经在 Web 管理中创建的客户端，以 Web 保存的代理认证用户名和密码为准，`npc.conf` 中的同名字段不会覆盖服务端客户端设置。

## 访问和验证

未认证访问会收到 `401 Unauthorized` 和 Basic challenge；HTTP 正向代理使用同一凭据时返回的是 `407 Proxy Authentication Required`。测试站点：

```shell
curl -i https://preview.example.com/
curl -i -u 'preview:实际密码' https://preview.example.com/
```

第一次应为 `401`，第二次应到达后端。HTTPS 必须在 NPS 上终止 TLS 才能读取认证头；未配置站点证书的 TLS 透传流量无法使用这项 HTTP 认证。

Basic Auth 只编码、不加密凭据，必须配合 HTTPS。它适合低风险临时保护，不代替应用自身的账号、权限、审计和多因素认证。
