You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置TWebBrowser的TLS版本以支持TLS 1.2及以上?

解决TWebBrowser无法使用TLS 1.2的问题

TWebBrowser组件依赖系统中的Internet Explorer渲染引擎,默认可能未启用TLS 1.2,可通过以下两种方式解决:

1. 修改注册表强制启用高版本IE模式及TLS 1.2

针对当前应用程序

添加或修改以下注册表项,让TWebBrowser使用IE11的渲染模式(IE11原生支持TLS 1.2):

  • 32位程序在64位系统:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
  • 对应系统位数的程序:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

在该路径下新建DWORD(32位)值,名称为你的应用程序.exe文件名(比如YourApp.exe),值设为11001(对应IE11边缘模式,强制使用最新特性)。

启用系统级TLS 1.2支持

修改以下注册表项确保系统开启TLS 1.2:
路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client

  • 新建DWORD值Enabled,设为1
  • 新建DWORD值DisabledByDefault,设为0

2. 通过代码动态设置(无需手动改注册表)

在程序启动时,调用Windows API写入上述注册表项,示例Delphi代码如下:

procedure SetTLS12Support;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    // 设置FEATURE_BROWSER_EMULATION为IE11模式
    if Reg.OpenKey('SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True) then
    begin
      Reg.WriteInteger(ExtractFileName(Application.ExeName), 11001);
      Reg.CloseKey;
    end;

    // 启用TLS 1.2客户端支持
    if Reg.OpenKey('SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client', True) then
    begin
      Reg.WriteInteger('Enabled', 1);
      Reg.WriteInteger('DisabledByDefault', 0);
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
end;

// 在程序启动阶段调用,例如initialization块
initialization
  SetTLS12Support;

注意:修改HKEY_LOCAL_MACHINE路径下的注册表需要管理员权限,若程序非管理员运行,可将路径替换为HKEY_CURRENT_USER\SOFTWARE\...(仅对当前用户生效,无需管理员权限)。


内容的提问来源于stack exchange,提问作者MohsenB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:24:59