开源
http 块
http
是一个可选的配置块,用于自定义 Alloy HTTP 服务器的功能。http
在没有标签的情况下指定,并且每个配置文件只能提供一次。
示例
http {
tls {
cert_file = sys.env("TLS_CERT_FILE_PATH")
key_file = sys.env("TLS_KEY_FILE_PATH")
}
}
参数
http
块不支持任何参数,完全通过内部块进行配置。
块
http
的定义内部支持以下块
层级结构 | 块 | 描述 | 必需 |
---|---|---|---|
tls | tls | 定义 HTTP 服务器的 TLS 设置。 | 否 |
tls > windows_certificate_filter | windows_certificate_filter | 为所有证书配置 Windows 证书存储。 | 否 |
tls > windows_certificate_filter > client | client | 为 Windows 证书过滤器配置客户端证书。 | 否 |
tls > windows_certificate_filter > server | server | 为 Windows 证书过滤器配置服务器证书。 | 否 |
tls 块
tls
块配置 HTTP 服务器的 TLS 设置。
警告
如果在 Alloy 运行时添加
tls
块并重新加载配置,则现有连接将继续通过明文通信。 同样,如果在 Alloy 运行时删除tls
块并重新加载配置,则现有连接将继续通过 TLS 通信。为确保所有连接都使用 TLS,请在启动 Alloy 之前配置
tls
块。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
|
| 服务器 TLS 证书的 PEM 数据。 | "" | 有条件地 |
|
| 磁盘上服务器 TLS 证书的路径。 | "" | 有条件地 |
|
| 服务器 TLS 密钥的 PEM 数据。 | "" | 有条件地 |
|
| 磁盘上服务器 TLS 密钥的路径。 | "" | 有条件地 |
|
| 客户端 CA 的 PEM 数据,用于验证请求。 | "" | 否 |
|
| 磁盘上客户端 CA 文件的路径,用于验证请求。 | "" | 否 |
|
| 要使用的客户端身份验证。 |
| 否 |
|
| 要使用的密码套件集。 | [] | 否 |
|
| 要在握手中使用的椭圆曲线集。 | [] | 否 |
|
| 要从客户端接受的最旧 TLS 版本。 | "" | 否 |
|
| 要从客户端接受的最新 TLS 版本。 | "" | 否 |
当指定 tls
块时,需要 TLS 证书的参数(使用 cert_pem
或 cert_file
)和 TLS 密钥的参数(使用 key_pem
或 key_file
)。
以下参数对是互斥的,一次只能配置一个
cert_pem
和cert_file
key_pem
和key_file
client_ca_pem
和client_ca_file
client_auth_type
参数确定是否验证客户端证书。 默认值 NoClientCert
表示不验证客户端证书。 只有当 client_auth_type
不是 NoClientCert
时,才可以配置 client_ca_pem
和 client_ca_file
参数。
client_auth_type
接受以下值
NoClientCert
:既不请求也不验证客户端证书。RequestClientCert
:请求客户端发送可选证书。 不验证客户端提供的证书。RequireAnyClientCert
:要求客户端至少提供一个证书。 不验证客户端提供的证书。VerifyClientCertIfGiven
:请求客户端发送可选证书。 如果发送了证书,则必须有效。RequireAndVerifyClientCert
:要求客户端发送有效证书。
client_ca_pem
或 client_ca_file
参数可用于执行客户端证书验证。 只有当 client_auth_type
未设置为 NoClientCert
时,才可以提供这些参数。
cipher_suites
参数确定要使用的密码套件。 如果您不提供密码套件,则使用默认列表。 指定的密码套件集可以来自以下内容
密码 | BoringCrypto 构建中允许 |
---|---|
| 否 |
| 否 |
| 是 |
| 是 |
| 否 |
| 否 |
| 否 |
| 否 |
| 否 |
| 否 |
| 否 |
| 是 |
| 是 |
| 是 |
| 是 |
| 否 |
| 否 |
curve_preferences
参数确定在握手期间要优先选择的椭圆曲线集(按优先级顺序)。 如果未提供,则使用默认列表。 指定的椭圆曲线集可以来自以下内容
曲线 | BoringCrypto 构建中允许 |
---|---|
| 是 |
| 是 |
| 是 |
| 否 |
min_version
和 max_version
参数确定客户端可接受的最旧和最新的 TLS 版本。 如果您不提供最小和最大 TLS 版本,则使用默认值。
以下版本被识别
TLS13
代表 TLS 1.3TLS12
代表 TLS 1.2TLS11
代表 TLS 1.1TLS10
代表 TLS 1.0
windows certificate filter 块
windows_certificate_filter
块用于配置从内置 Windows 证书存储检索证书。 当您使用 windows_certificate_filter
块时,以下 TLS 设置将被覆盖,如果定义,则会导致错误。
cert_pem
cert_file
key_pem
key_file
client_ca
client_ca_file
警告
此功能仅在 Windows 上可用。
TLS 最小和最大版本可能与 Windows 证书存储中存储的证书不兼容。 即使
windows_certificate_filter
与指定的 TLS 版本不兼容,它也会提供证书。
server 块
server
块用于查找证书以检查签名者。 如果找到多个证书,windows_certificate_filter
将选择到期时间最远的证书。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
|
| 要查找服务器证书的系统存储名称,例如,LocalMachine、CurrentUser。 | "" | 是 |
|
| 要查找服务器证书的存储名称,例如,My、CA。 | "" | 是 |
|
| 要检查的颁发者通用名称。 | 否 | |
|
| 要在 ASN1 格式中匹配的服务器模板 ID,例如,“1.2.3”。 | "" | 否 |
|
| 检查新服务器证书的频率。 |
| 否 |
client 块
client
块用于检查呈现给服务器的证书。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
|
| 要检查的颁发者通用名称。 | 否 | |
|
| 用于匹配主题名称的正则表达式。 | "" | 否 |
|
| 要在 ASN1 格式中匹配的客户端模板 ID,例如,“1.2.3”。 | "" | 否 |
此页面是否对您有帮助?