该 netsh http 命令使您能够在 Windows 中配置和管理 HTTP 服务的 HTTP 设置。 该服务处理应用程序和系统组件的 HTTP 流量,允许您控制 SSL 证书、IP 侦听列表、缓存参数和超时等方面。 使用此命令可以微调 HTTP 行为、增强安全性并解决与 HTTP 流量相关的网络问题。
Syntax
netsh http [add | delete | dump | flush | help | show | update | ?]
netsh http add cacheparam [type=](cacherangechunksize|maxcacheresponsesize)
[value=]<ulong>
netsh http add iplisten [ipaddress=]<IP address>
netsh http add setting [settingtype=]sslthrottle
[value=]<ulong>
netsh http add timeout [timeouttype=]idleconnectiontimeout|headerwaittimeout
[value=]<u-short>
netsh http add sslcert [hostnameport=<name:port> | ipport=<ipaddr:port> | ccs=<port>] | json=[filepath]
[appid=<GUID>] [certhash=<string>] [certstorename=<string>] [verifyclientcertrevocation=enable|disable]
[verifyrevocationwithcachedclientcertonly=enable|disable] [usagecheck=enable|disable]
[revocationfreshnesstime=<u-int>] [urlretrievaltimeout=<u-int>] [sslctlidentifier=<string>]
[sslctlstorename=<string>] [dsmapperusage=enable|disable] [clientcertnegotiation=enable|disable]
[reject=enable|disable] [disablehttp2=enable|disable] [disablequic=enable|disable]
[disablelegacytls=enable|disable] [disabletls12=enable|disable] [disabletls13=enable|disable]
[disableocspstapling=enable|disable] [enabletokenbinding=enable|disable] [logextendedevents=enable|disable]
[enablesessionticket=enable|disable] [disablesessionid=enable|disable]
netsh http add urlacl [url=]<string> [user=]<string> [listen=]yes|no [delegate=]yes|no [sddl=]<string>
netsh http delete cache [url=<string>] [recursive=yes|no]
netsh http delete iplisten [ipaddress=<IP address>]
netsh http delete setting [settingtype=]sslthrottle
netsh http delete sslcert ipport=<ipaddr:port> | hostnameport=<name:port> | ccs=<port>
netsh http delete timeout [timeouttype=](idleconnectiontimeout|headerwaittimeout)
netsh http delete urlacl [url=]<string>
netsh http dump
netsh http flush logbuffer
netsh http show <cacheparam> <iplisten> <setting> <timeout>
netsh http show cachestate [url=<string>]
netsh http show servicestate [view=session|requestq|client] [verbose=yes|no]
netsh http show sslcert [ipport=<ipaddr:port> | hostnameport=<name:port> | ccs=<port> | scopedccs=<name:port>] [json=enable]
netsh http show urlacl [url=<string>]
netsh http update sslcert [hostnameport=<name:port> | ipport=<ipaddr:port> | ccs=<port>] | json=[filepath]
[appid=<GUID>] [certhash=<string>] [certstorename=<string>] [verifyclientcertrevocation=enable|disable]
[verifyrevocationwithcachedclientcertonly=enable|disable] [usagecheck=enable|disable]
[revocationfreshnesstime=<u-int>] [urlretrievaltimeout=<u-int>] [sslctlidentifier=<string>]
[sslctlstorename=<string>] [dsmapperusage=enable|disable] [clientcertnegotiation=enable|disable]
[reject=enable|disable] [disablehttp2=enable|disable] [disablequic=enable|disable]
[disablelegacytls=enable|disable] [disabletls12=enable|disable] [disabletls13=enable|disable]
[disableocspstapling=enable|disable] [enabletokenbinding=enable|disable] [logextendedevents=enable|disable]
[enablesessionticket=enable|disable] [disablesessionid=enable|disable]
netsh http show update sslpropertyex [hostnameport=<name:port> | ipport=<ipaddr:port> | ccs=<port>] |
[propertyid=0 receivewindow=<bytes>] [propertyid=1 maxsettingsperframe=<value> maxsettingsperminute=<value>]
Parameters
| Command | Description |
|---|---|
http add cacheparam |
配置特定参数并将其添加到 HTTP 服务缓存中。 type - 指定要配置的参数类型。 选项是 cacherangechunksize 和 maxcacheresponsesize。 value - 表示参数值,以字节为单位。 如果使用十六进制表示,请在值 0x前加上 。 |
http add iplisten |
将新的 IP 地址添加到 HTTP 服务的 IP 侦听列表中。 此列表指定 HTTP 服务绑定到的 IP 地址,不包括端口号。 地址“0.0.0.0”代表所有IPv4地址,而“::”代表所有IPv6地址。 该格式使用 ipaddress=IP_Address. |
http add setting |
向 HTTP 服务添加全局配置设置。 settingtype=sslthrottle - 指定 SSL 连接的限制。 value - 需要非负整数值 (ULONG) 来设置所需的限制级别。 |
http add sslcert |
为指定的 IP 地址或主机名和端口添加 SSL 证书绑定,以及相应的客户端证书策略,以安全地管理 HTTP 服务的 HTTPS 连接。 有关参数说明的详细信息,请参阅 备注 。 |
http add timeout |
定义 HTTP 服务的全局超时设置。 timeouttype= 选项包括: idleconnectiontimeout - 指定空闲连接在关闭之前可以保持的最长时间。 headerwaittimeout - 定义等待接收完整 HTTP 标头集的最长时间。 该 value 参数需要一个非负整数 (u-short) 来表示超时持续时间( 以秒为单位)。 |
http add urlacl |
允许非管理员用户和帐户注册 URL。 可以通过指定 NT 帐户名称和 listen 和 delegate 参数,或者使用任意访问控制列表 (DACL) 的安全描述符定义语言 (SDDL) 字符串来定义访问权限。 url= - 指定要与访问控制列表 (ACL) 关联的完全限定 URL。 这必须包括协议(例如, http:// 或 https://)、域以及任何必要的端口或路径段。 user= - 标识被授予访问权限的用户或用户组名称。 这可以采用单个用户名、用户组或安全主体的格式。 listen - 确定指定用户是否具有注册 URL 的权限。 Options include: yes - 授予用户注册指定 URL 的权限(默认设置)。 no - 阻止用户注册指定的 URL。 delegate - 确定指定用户是否有权委托 URL。 Options include: yes - 允许用户将 URL 管理委托给其他用户。 no - 阻止用户将 URL 管理委托给其他人(默认设置)。 sddl - SDDL 字符串,提供与 URL ACL 关联的自由访问控制列表 (DACL) 的详细说明,指定用户和组的权限和访问权限。 |
http delete cache |
清除整个 URI 缓存或根据指定的 URI 删除特定条目。 url= - 指定要删除的 HTTP 缓存中的 URL 条目。 recursive- 接受 或 no的yes值。 设置为 yes时,它不仅会删除指定的 URL 条目,还会删除该 URL 下的所有条目,从而有效地清除指定 URL 和任何子 URL 或关联资源的缓存。 设置为 no时,仅从缓存中删除指定的 URL,而不会影响任何子条目。 |
http delete iplisten |
从 IP 侦听列表中删除 IP 地址。 ipaddress= - 指定要从 HTTP 侦听器列表中删除的 IP 地址。 |
http delete setting |
删除全局配置设置,导致 HTTP 服务恢复为该特定参数的默认行为。 settingtype=sslthrottle - 删除 SSL 限制设置。 |
http delete timeout |
删除全局超时设置,将 HTTP 服务的超时行为恢复为默认值。 timeouttype=idleconnectiontimeout - 指定要删除空闲连接超时的设置。 空闲连接超时定义空闲(非活动)TCP 连接在关闭之前应保持打开状态多长时间。 删除此设置会将任何自定义空闲超时值还原为其默认状态。 timeouttype=headerwaittimeout - 指定要删除标头等待超时的设置。 标头等待超时确定服务器在超时之前等待收到 HTTP 请求标头的时间。删除此设置会将任何自定义标头等待超时值还原为其默认状态。 |
http delete urlacl |
删除保留的 URL,从而释放指定的 URL 不由 HTTP 服务独占使用。 url= - 指定要删除的 URL 预留。 |
http dump |
创建包含当前上下文配置的脚本。 该脚本可以保存到文件中,并在设置被更改或需要在另一个系统上复制时用于恢复设置。 |
http flush logbuffer |
清除日志文件的内部缓冲区。 |
http showcacheparam | iplisten | setting | timeout |
cacheparam)。 iplisten 中的所有 IP 地址。 setting)。 timeout单位)。 |
http show cachestate |
枚举存储在 HTTP 响应缓存中的所有资源及其属性,或者提供有关特定资源及其关联属性的详细信息。 url= - 指定要查看其缓存状态的特定 URL。 |
http show servicestate |
显示 HTTP 服务的当前快照。 view= - 指定您希望查看的 HTTP 服务状态的哪个方面。 您可以选择以下选项之一: session - 显示有关活动会话的信息,包括连接和会话详细信息。 requestq - 显示请求队列的状态,深入了解正在处理和排队的请求数量。 client - 提供有关客户端连接的信息,例如连接的客户端数量和连接详细信息。 verbose= - 确定输出中包含的详细级别。 yes - 提供详细信息,更全面地了解所选服务状态。 no - 提供细节较少的摘要,对于快速概述服务状态很有用。 |
http show sslcert |
列出 SSL 服务器证书绑定及其关联的客户端证书策略。 如果未提供特定绑定,则显示所有可用绑定。 scopedccs=name:port - 通过提供主机名和端口来指定作用域中央证书存储 (CCS) 条目。 与参数 hostnameport 类似,它将输出重点放在与特定范围的 CCS 配置相关的证书上。 可用的子参数包括: ipport=ipaddr:port hostnameport=name:port ccs=port json=enable 有关参数说明的详细信息,请参阅 备注 。 |
http show urlacl |
显示指定保留 URL 或所有保留 URL 的 DACL,从而深入了解其访问权限。 url= - 指定要查看其详细信息的 URL 预留。 |
http update sslcert |
更新指定 IP 地址或主机名和端口的现有 SSL 服务器证书绑定和关联的客户端证书策略。 有关参数说明的详细信息,请参阅 备注 。 |
http update sslpropertyex |
修改给定 IP 地址或主机名和端口的现有 SSL 服务器证书绑定及其相关客户机证书策略的参数。 propertyid=0 receivewindow=<bytes> - 更新 SSL 连接的接收窗口大小。
propertyid=0 标识此特定属性,并 receivewindow=<bytes> 设置接收窗口的大小(以字节为单位)。 propertyid=1 maxsettingsperframe=<value> maxsettingsperminute=<value> - 更新与 SSL 连接相关的 HTTP/2 设置。 此处, propertyid=1 指定此特定属性,同时 maxsettingsperframe=<value> 设置每帧允许的最大设置帧数,并 maxsettingsperminute=<value> 设置每分钟允许的最大设置帧数。 其他可用的子参数包括: hostnameport=name:port ipport=ipaddr:port ccs=port 有关参数说明的详细信息,请参阅 备注 。 |
help或? |
显示当前上下文中的命令及其描述的列表。 |
Remarks
hostnameport=name:port:使用主机名和端口号指定绑定。 此选项将 SSL 证书绑定到指定端口(通常为 HTTPS 的端口 443)上的特定主机名(例如www.example.com)。ipport=ipaddr:port:使用 IP 地址和端口号指定绑定。 这会将 SSL 证书绑定到特定的 IP 地址(例如192.168.1.1)和端口。ccs=port:指中央证书存储 (CCS) 端口。 在这种情况下,CCS 允许使用特定端口进行 SSL 绑定,跨多个服务器集中管理 SSL 证书。json=filepath:使用 JSON 文件配置 SSL 绑定。 此选项允许以 JSON 格式指定复杂或批量配置设置,HTTP 服务可以解析和应用这些设置。appid=GUID:与证书绑定关联的应用程序的唯一标识符 (GUID)。certhash=<string>:要绑定的 SSL 证书的证书哈希(通常表示为指纹)。certstorename=<string>:SSL 证书所在的证书存储的名称(例如,MY对于个人存储)。verifyclientcertrevocation=:启用或禁用客户端证书吊销状态的验证。 选项是enable或disable。verifyrevocationwithcachedclientcertonly=:确定是否仅使用缓存的客户端证书进行吊销检查。 选项是enable或disable。usagecheck=:检查证书使用策略。 选项是enable或disable。 默认值为 启用。revocationfreshnesstime=:设置吊销数据的新鲜度时间( 以秒为单位)。 如果该值设置为0,则仅当前一个 CRL 过期时,新 CRL 才会更新。urlretrievaltimeout=:定义检索吊销 URL 的超时时间( 以毫秒为单位)。sslctlidentifier=<string>:要使用的SSL证书信任列表(CTL)的标识符。sslctlstorename=<string>:指定存储 SSL CTL 的注册表配置单元下的LOCAL_MACHINE证书存储的名称。dsmapperusage=:启用或禁用使用 Active Directory DSMapper 进行客户端证书映射。 选项是enable或disable。clientcertnegotiation=:控制 SSL 握手期间客户端证书的协商。 选项是enable或disable。 默认值为 禁用。reject=:指定根据特定条件拒绝 SSL 连接。 选项是enable或disable。disablehttp2=:启用或禁用 HTTP/2 协议支持。 选项是enable或disable。disablequic=:启用或禁用 QUIC 协议支持。 选项是enable或disable。disablelegacytls=:启用或禁用旧版 TLS 协议的使用。 选项是enable或disable。disabletls12=|disabletls13=:启用或禁用特定版本的 TLS 协议(TLS 1.2 或 TLS 1.3)。 选项是enable或disable。disableocspstapling=:启用或禁用 OCSP 装订,用于检查证书吊销状态。 选项是enable或disable。enabletokenbinding=:启用或禁用令牌绑定以增强安全性。 选项是enable或disable。logextendedevents=:启用或禁用用于诊断目的的扩展事件的日志记录。 选项是enable或disable。enablesessionticket=:控制是否启用 SSL 会话票证以恢复会话。 选项是enable或disable。disablesessionid=:控制是否禁用 SSL 会话 ID 以恢复会话。 选项是enable或disable。
Examples
若要为启用了侦听权限的用户保留 DOMAIN\UserName URLhttp://example.com:8080/,请运行以下命令:
netsh http add urlacl url=http://example.com:8080/ user=DOMAIN\UserName listen=yes
要从侦听的地址列表中删除特定 IP 地址 HTTP.sys 请运行以下命令:
netsh http delete iplisten ipaddress=192.168.1.100
若要显示特定 URL 的缓存状态,请运行以下命令:
netsh http show cachestate url=http://example.com
若要删除 URL 预留,请运行以下命令:
netsh http delete urlacl url=http://+:80/MyApp
要显示有关特定 URL 预留的详细信息,请运行以下命令:
netsh http show urlacl url=http://+:80/MyApp
要查看特定 IP 和端口的 SSL 证书详细信息,请运行以下命令:
netsh http show sslcert ipport=192.168.1.100:443
要更新有关特定 IP 和端口上的 SSL 连接的 HTTP/2 设置,允许 100 每分钟的帧, 1000 请运行以下命令:
netsh http update sslpropertyex ipport=192.168.1.100:443 propertyid=1 maxsettingsperframe=100 maxsettingsperminute=1000