netsh http

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 - 指定要配置的参数类型。 选项是 cacherangechunksizemaxcacheresponsesize

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 帐户名称和 listendelegate 参数,或者使用任意访问控制列表 (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- 接受 或 noyes值。 设置为 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
  • 显示以字节为单位的 HTTP 服务的缓存参数 (cacheparam)。
  • 列出当前包含在 IP 侦听列表 ()iplisten 中的所有 IP 地址。
  • 以秒为单位显示 HTTP 服务的当前配置设置 (setting)。
  • 显示为 HTTP 服务设置的超时值(以秒为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=:启用或禁用客户端证书吊销状态的验证。 选项是 enabledisable

    • verifyrevocationwithcachedclientcertonly=:确定是否仅使用缓存的客户端证书进行吊销检查。 选项是 enabledisable

    • usagecheck=:检查证书使用策略。 选项是 enabledisable。 默认值为 启用

    • revocationfreshnesstime=:设置吊销数据的新鲜度时间( 以秒为单位)。 如果该值设置为 0,则仅当前一个 CRL 过期时,新 CRL 才会更新。

    • urlretrievaltimeout=:定义检索吊销 URL 的超时时间( 以毫秒为单位)。

    • sslctlidentifier=<string>:要使用的SSL证书信任列表(CTL)的标识符。

    • sslctlstorename=<string>:指定存储 SSL CTL 的注册表配置单元下的 LOCAL_MACHINE 证书存储的名称。

    • dsmapperusage=:启用或禁用使用 Active Directory DSMapper 进行客户端证书映射。 选项是 enabledisable

    • clientcertnegotiation=:控制 SSL 握手期间客户端证书的协商。 选项是 enabledisable。 默认值为 禁用

    • reject=:指定根据特定条件拒绝 SSL 连接。 选项是 enabledisable

    • disablehttp2=:启用或禁用 HTTP/2 协议支持。 选项是 enabledisable

    • disablequic=:启用或禁用 QUIC 协议支持。 选项是 enabledisable

    • disablelegacytls=:启用或禁用旧版 TLS 协议的使用。 选项是 enabledisable

    • disabletls12= | disabletls13=:启用或禁用特定版本的 TLS 协议(TLS 1.2 或 TLS 1.3)。 选项是 enabledisable

    • disableocspstapling=:启用或禁用 OCSP 装订,用于检查证书吊销状态。 选项是 enabledisable

    • enabletokenbinding=:启用或禁用令牌绑定以增强安全性。 选项是 enabledisable

    • logextendedevents=:启用或禁用用于诊断目的的扩展事件的日志记录。 选项是 enabledisable

    • enablesessionticket=:控制是否启用 SSL 会话票证以恢复会话。 选项是 enabledisable

    • disablesessionid=:控制是否禁用 SSL 会话 ID 以恢复会话。 选项是 enabledisable

    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
    

    See also