概述Magenta Systems Ltd 为 François Piette 开发的Internet Component Suite (ICS)提供了一系列扩展组件和增强功能。ICS 是一套广泛应用于 Delphi 开发环境的互联网组件套件而 Magenta Systems 的贡献则进一步丰富了其功能特别是在安全通信、服务器监控和高级网络协议支持方面。本文档基于 Magenta Systems ICS 扩展页面 的内容详细介绍了这些扩展组件的功能、版本更新和使用方式。一、ICS 核心信息1.1 支持的 Delphi 版本ICS V8 及更高版本支持广泛的 Delphi 编译器包括Delphi 7, 2006–2010Delphi XE–XE8Delphi 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 SydneyDelphi 11, 12, 131.2 获取方式1.3 最新版本ICS V9.72026年5月16日发布主要修复版本每日构建版 V92026年7月20日包含最新开发内容二、OpenSSL 支持Magenta Systems 为 ICS 提供了预编译的 OpenSSL Windows 二进制文件支持多个版本OpenSSL 版本发布日期大小支持截止日期最低 ICS 版本4.0.1(32-bit)2026-06-105.43 MB2027年5月ICS V9.63.6.3(32-bit)2026-06-105.44 MB2026年11月ICS V8.673.5.7(32-bit)2026-06-105.36 MB2030年4月 (LTS)ICS V8.673.4.3 (32-bit)2025-10-025.11 MB2026年10月ICS V8.673.0.20 (32-bit)2026-04-094.58 MB2026年9月 (LTS)ICS V8.671.1.1w (32-bit)2023-09-201.83 MB2023年9月 (已终止)ICS V8.571.0.2u (32-bit)2021-01-071.74 MB2019年 (已终止)ICS V8.65重要说明从 OpenSSL 4.0 开始二进制文件已由 Magenta Systems Ltd 进行数字签名。建议使用长期支持版本LTSOpenSSL 3.5支持至 2030 年。OpenSSL 4.0 是主要新版本需要 ICS V9.6 或更高版本。三、CA 信任证书库3.1 证书库来源SSL/TLS 信任根证书捆绑包从Common CA Database (CCADB)和Trust Stores Observatory Git 仓库生成。Magenta Systems 开发了专门工具将 YAML 格式的证书数据转换为 OpenSSL 可用的 PEM 和 PKCS7/12 格式。3.2 提供的证书捆绑包2026年4月更新捆绑包名称证书数量说明apple.pem156Apple 信任库google_aosp.pem143Google AOSP 信任库microsoft_windows.pem310Microsoft Windows 信任库mozilla_nss.pem145Mozilla NSS 信任库openjdk.pem89OpenJDK 信任库oracle_java.pem91Oracle Java 信任库3.3 文件特性每个证书都包含详细的描述信息颁发者、到期时间、公钥类型、SHA256 哈希提供三种版本标准 PEM、清理版 PEM不含注释、PKCS7/12 格式更小附带-titles.txt和-fprints.txt文件用于快速查看证书概要包含 Microsoft Windows 证书库的变更记录新增/移除的证书3.4 ICS 内置支持ICS 发行版已包含三个 CA 信任存储可通过FAQ_SSL/TLS_Certificate_Authority_Root_Stores了解更多信息。四、V9.7 主要更新2026年5月16日4.1 关键修复Google 服务器兼容性问题问题2026年5月初Google 服务器变更导致使用 OpenSSL 3.2 及以上版本的 ICS V9.5/V9.6 在 SSL 握手时失败错误信息为 SSL routines::tls alert illegal parameter。原因与 Raw Public Key 证书的新功能相关该功能影响客户端行为。解决方案已禁用该功能所有访问 Google 托管网站及其他使用 BoringSSL 的服务的用户应升级到 V9.7。4.2 其他修复V9.6 中的两个 Bug 修复未启用MSCRYPT_Clients定义时的 SSL 握手错误NO_DEBUG_LOG未启用时HTTPRest的InitSsl问题MultiWebServ不再需要USE_IcsGeoTools定义即可构建4.3 默认 OpenSSL 版本调整默认 OpenSSL 版本改为4.0移除了 OpenSSL 3.0 和 3.4 的资源文件四个月内停止支持OpenSSL 3.6 六个月后停止支持因此3.5 LTS版本被放在ICS-OpenSSL目录作为备选发现 OpenSSL 4.0 的首个问题验证 URL 中的 IP 地址时需要使用不同的 API4.4 SSL/TLS 证书相关变更订购证书时仅对 Lets Encrypt 使用证书配置文件Google 拒绝带有配置文件的订单4.5 DNS 查询优化WSocket.ComponentOptions中的wsoIcsDnsLookup和wsoAsyncDnsLookup选项现在被忽略WSocket始终使用异步线程 DNS 查询IPv4 和 IPv6移除了旧的 IPv4 同步 DNS 代码提升了性能和一致性4.6 HTTP 客户端改进转换部分旧的IcsLogger输出为新版onDisplay日志添加检查以防止 ICS 在 Linux 下构建V9 不支持V10 计划支持移除了所有测试用的 Linux、Android 和 macOS 包4.7 WebSocket 客户端修复使用WSFullHdrs时不移除添加的ExtraHeaders不允许重复的Connection:头4.8 SuperObject JSON 修复写入 Currency JSON 时检查并删除末尾的点号避免混淆某些解析器五、V9.6 主要新增功能2026年5月15日5.1 后量子密码学PQC支持支持ML-DSA私钥签名使用 Jose和ML-KEMTLS 密钥交换V9.5 客户端已发送X25519MLKEM768组但未正确报告支持状态现已修复新增 TLSv1.3 服务器的 PQC 支持注意目前尚无 PQC 加密套件和 PQC 签名的 X.509 证书等待 RFC 标准5.2 统一的日志系统在TWSocket和TWSocketS中添加了统一的事件日志系统使用onDebugDisplay事件和新的WSDebugOptions选项控制SSL 证书链检查功能移入TSslWSocket使用SslCertVerMethod和SslAllowSelfSign属性各协议组件FTP、SMTP、POP3、HTTP统一使用新日志系统旧版IcsLogger已废弃定义NO_DEBUG_LOG默认启用计划完全移除5.3 通用对称加密组件 -TIcsSymCrypto支持所有 OpenSSL 加密算法AES 最常用多种密钥派生方法PKCS5v15、PKCS5_PDKDF2_HMAC、Argon2、Raw Key/IV、Quick Hash与openssl-enc命令行工具兼容提供简单的字符串加密/解密函数IcsJoseStrEncrypt/IcsJoseStrDecrypt5.4 HTTP WebDAV 支持新增 HTTP 动词PURGE、PROPFIND、PROPPATCH、MKCOL、MOVE、COPY、LOCK、UNLOCKWeb 服务器内部支持PROPFIND目录列表HTTP REST 示例可将 PROPFIND XML 响应转换为TIcsFDirRec数组5.5 HTTP 客户端增强SNI 类型控制SslSniType属性支持不发送 IP 地址作为 SNI默认符合 RFC6066同步请求超时SyncMaxSecs属性限制同步请求的最大持续时间缓存控制CacheType属性支持httpCacheNone、httpCacheNoCache、httpCacheMaxAge等选项错误处理改进404 状态码始终返回并带有ReasonPhrase和RequestDoneErrorStr5.6 WebSocket 客户端增强WsConnect现在传递 URL 而非设置 URL 属性允许传递RestParams正确支持代理设置恢复 V9.5 中丢失的异步连接错误处理5.7 证书处理改进改进 IPv6 地址处理TX509Base新增ListAllNames方法获取所有 SAN 名称CertMainInfo正确显示空白通用名称和 IP 地址的 TLS 服务器证书CertsHandshake报告客户端握手证书链主机、中间、根5.8 Lets Encrypt 支持更新支持六天有效期的短生命周期证书为 2029 年要求准备支持 IP 地址证书非仅主机名新增dns-persist-01挑战类型可手动设置一次永久有效5.9 SMTP 服务器改进使用IcsHosts支持多监听器和自动化证书仅支持 SSL 版本移除无 SSL 版本新增X-IpAddr和X-RDNS头避免解析 Received 头5.10 代理服务器改进ForwardSocFamily属性控制转发代理的地址族IPv4 监听器可连接 IPv6 目标OnProxyForward事件应用程序可决定哪些端口可通过 HTTP CONNECT 转发5.11 OpenSSL 4.0 支持添加 OpenSSL 4.0.0 支持DLL 文件名变更不兼容旧版本V9.6 默认仍使用 OpenSSL 3.6需修改Defs.inc启用 4.0资源提取改进检查所有三个 DLL 是否已提取不因首个错误停止5.12 Delphi WinARM64EC 支持为 Delphi 13.1 添加 Windows ARM64EC 目标平台支持主要差异无汇编支持和 OBJ 文件六、V9.5 主要新增功能2025年6.1 地理组件 -TIcsGeoTools读取 MaxMind 格式 GEO 数据库使用MMDBReader组件内置db-ip.com的 IP to Country Lite 和 IP to ASN Lite 数据库可链接为资源文件或从文件加载支持国家/地区过滤用于服务器防护6.2 服务器连接过滤TWSocketServer新增OnClientAcceptFilter事件在连接接受前基于远程 IP 地址进行过滤类似防火墙THttpSrv新增OnHttpAcceptFilter事件6.3 ACME 多供应商支持除 Lets Encrypt 外新增支持Google Trust Services免费理论上支持 DigiCert、ZeroSSL、SSLcom商业证书Google 证书允许指定有效期短至 3 天使用 ACME 外部账户绑定6.4 MQTT 协议增强支持 MQTT 协议3.1.1版本此前仅 3.1新增LogPackets属性用于诊断新增BurstMode属性3.1.1 客户端可不等待 Connect 响应直接发布6.5 WebSocket 改进客户端支持异步连接OnWSConnected事件服务器支持连接后延迟发送欢迎消息新增OnWSFramesDone事件用于流控示例IcsAppMonMan.dpr演示多 WebSocket 客户端同时连接多个服务器6.6 ECDSA 修复修复 ECDSA 二进制摘要的两种格式ASN.1 和 IEEE P1363转换问题新增IcsDigestAsntoIEEE和IcsDigestIEEEtoAsn转换函数ACME 请求使用 EC 密钥签名现在正确工作6.7 HTTP 服务器自定义错误页面新增OnHttpCustomError事件可自定义 HTTP 错误响应301、302、400、401、403、404 等新增hoContDispHdr选项和AttachmentTypes列表控制文件下载行为如 .pdf 保存而非显示6.8 内存监控工具新增 Windows 内存报告函数IcsMemInfoProgIcsMemInfoGlobIcsMemInfoPerfIcsMemWarning检测低内存/临界内存问题85%/95% 使用率警告6.9 OCSP 支持调整由于 Lets Encrypt 于 2025 年 5 月停止在证书中添加 OCSP URLOCSP 代码现可通过定义选项禁用证书生命周期缩短2029 年将减至 47 天OCSP 需求降低6.10 OpenSSL 3.5 默认ICS V9.5 默认使用 OpenSSL 3.5.2长期支持至 2030 年支持后量子密码学算法ML-KEM、ML-DSA、SLH-DSA支持 QUICRFC 9000但 ICS 暂无 QUIC 计划七、V9.4 主要新增功能2024年7.1 应用监控系统完整的 ICS 应用程序监控系统V9.3 开始客户端组件TIcsAppMonCli嵌入应用程序中服务器组件TIcsAppMonSrv通常作为 Windows 服务运行支持 Web 和 WebSocket 远程监控实时更新状态7.2 新增 Windows 工具单元OverbyteIcsWinUtils包含 Windows API 函数功能Windows 服务控制、注册表访问、防火墙、任务计划、硬件信息、密码加密7.3 FTP 组件改进零长度文件下载优化创建空文件避免 SSL 握手错误扩展被动模式EPSV ALL支持提高防火墙/NAT 兼容性新增CheckBadUnicode属性默认 false跳过 Unicode 到 Ansi 转换检查7.4 ICMP 组件修复修复PingMsg属性设置问题八、V9.0 主要新增功能2023年8.1 长期支持版本ICS V9 计划为长期支持版本不添加新组件或重大功能仅 Bug 修复8.2 示例重组新增ActiveDemos项目组约 50 个示例项目新增OverbyteIcsSnippets示例包含 HTTP REST、WebSocket、FTP、邮件等独立功能代码片段8.3 OAuth2 增强支持嵌入式浏览器TEdgeBrowser/TWebBrowser认证更好的用户体验认证完成自动关闭窗口无需本地 Web 服务器新增TOAuthBrowser组件和TOAuthLoginForm窗口8.4 WebSocket 组件新增客户端TSslWebSocketCli和服务器支持THttpWSSrvConn支持 ws:// 和 wss:// 协议Echo、EchoPing 和 Chat 演示8.5 MQTT 组件新增TIcsMQTTServer和TIcsMQTTClient支持发布-订阅模式的机器对机器通信8.6 DNS 查询增强TDnsQuery支持多个 DNS 服务器列表失败时切换内置公共 DNS 服务器列表Google、Cloudflare、OpenDNS 等新增 AAAALookup 方法IPv6 查询8.7 域名缓存组件TIcsDomainNameCache和TIcsDomNameCacheHttps简化正向/反向域名查询支持 Winsock 缓存、TDnsQuery 和 DNS over HTTPS支持最多 100 个并行查询默认 5 个8.8 Windows 证书存储支持可从 Windows 证书存储加载 SSL/TLS 证书PEM 和 PFX 之外的新选择LoadFromStore支持读取 EC 和 RSA 私钥TMsX509List.FindBest根据搜索字符串匹配证书服务器使用SslLoadSource属性CertWinStoreUser/CertWinStoreMachine8.9 FTP 保持连接新增NoopAsync方法长时间传输期间发送 NOOP 命令保持控制连接活跃解决 2 小时以上传输因防火墙/路由器关闭连接而失败的问题8.10 互联网数据包监控组件基于 Magenta Systems 互联网数据包监控组件支持 IPv6、协议和 IP 地址过滤类似于 Wireshark 的数据包捕获功能九、资源文件ICS 现在包含多个可直接链接到应用程序的资源文件避免分发独立文件资源文件内容定义选项LibV30OpenSSL32.RES/64.RESOpenSSL 3.0 DLL根据 DEFINE 选择LibV31OpenSSL32.RES/64.RESOpenSSL 3.1 DLL根据 DEFINE 选择LibV32OpenSSL32.RES/64.RESOpenSSL 3.2 DLL根据 DEFINE 选择RootCaCertsBundle.RES大型 CA 证书捆绑包OpenSSL_CA_Bundle_LargesslRootCACertsBundle.RES小型 CA 证书捆绑包OpenSSL_CA_Bundle_SmallTrustedCaBundle.RES中型 CA 证书捆绑包OpenSSL_CA_Bundle_MediumICSCerts.RESICS 根证书和中间证书-ICSPortList.RES端口列表-nmap-mac-prefixes.RESMAC 地址前缀-总结Magenta Systems 的 ICS 扩展组件套件为 Delphi 开发者提供了企业级的互联网通信解决方案涵盖✅全面的 SSL/TLS 支持多版本 OpenSSL 二进制文件、自动证书管理✅丰富的协议支持HTTP/HTTPS、WebSocket、MQTT、FTP、SMTP、POP3、DNS、ICMP✅高级安全特性后量子密码学、ACME 多供应商支持、Windows 证书存储✅强大的监控能力应用监控、数据包捕获、地理 IP 过滤✅跨平台准备当前支持 Windows含 ARM64ECV10 计划支持 Linux/macOS这些组件特别适合构建高可靠性服务器应用、安全通信系统和需要实时监控的互联网服务。持续更新和活跃的社区支持使其成为 Delphi 互联网开发的重要工具集。