第二十三章 TCP 客户端 服务器通信 - SSL TLS组件

SSL / TLS组件

TCP设备的OPENUSE /SSL或/TLS关键字参数的值为带引号的字符串。这个字符串可以有一个、两个或三个组件,由’|'字符分隔:

  • cfg - 用于此连接的SSL配置的名称。该组件是必需的。

  • pw - 可选 — 本地私钥文件的密码。这仅适用于交互式应用程序,当提示用户在运行时输入密码时。它不应与永久存储的密码一起使用。使用 Security.SSLConfigs.PrivateKeyPassword 属性进行持久存储。

  • DNShost - 可选 — 仅适用于 SSL 客户端。指定服务器选择的证书(用于主机名验证)或特定服务器的完全限定 DNS 主机名(用于服务器名称指示)。如果省略 pw,则必须指定占位符“|”特点。

    主机名验证是一项功能,允许客户端检查它从服务器接收的证书是否包含带有客户端尝试连接的主机名的字段。这是供客户端应用程序使用的,例如 %Net.HttpRequest(),它想要验证服务器 X.509 证书是否包含与 URL 中的服务器名称匹配的完全合格的服务器 DNS 主机名,无论是在 subjectAltName 扩展名还是主题 CN 字段。这允许客户端检测中间人攻击使用错误域的有效证书的情况。

    服务器名称指示 (SNI) 是一项允许客户端向服务器提交其请求的主机名的功能。这允许处理多个域的服务器选择其多个证书之一返回。服务器可以选择一个匹配客户端主机名检查的。

以下是有效 /TLS 关键字参数的示例:

/TLS="Client"
/TLS="Client|password"
/TLS="Client||www.intersystems.com"
/TLS="Client|password|www.intersystems.com" 

TCP 设备的 OPEN-Only 命令关键字

下表描述了只能在 OPEN 命令中指定的用于控制 TCP 设备的关键字。还有一些额外的 OPEN/USE 关键字(在本章前面描述过)可以用 OPENUSE 命令指定。所有关键字参数都是可选的。

TCP 设备的 OPEN-only 命令关键字

以下示例显示了使用关键字语法打开的 TCP/IP 设备:

  SET dev="|TCP|"_123
  SET portnum=57345
  OPEN dev:(/PSTE:/HOSTNAME="128.41.0.73":/PORT=portnum)
11-18 14:44