第二十三章 TCP 客戶端 服務(wù)器通信 - SSL TLS組件
SSL / TLS
組件
TCP
設(shè)備的OPEN
或USE
/SSL
或/TLS
關(guān)鍵字參數(shù)的值為帶引號(hào)的字符串炕贵。這個(gè)字符串可以有一個(gè)侥涵、兩個(gè)或三個(gè)組件补君,由'|
'字符分隔:
cfg
- 用于此連接的SSL
配置的名稱滑沧。該組件是必需的。pw
- 可選 — 本地私鑰文件的密碼涯肩。這僅適用于交互式應(yīng)用程序屡江,當(dāng)提示用戶在運(yùn)行時(shí)輸入密碼時(shí)。它不應(yīng)與永久存儲(chǔ)的密碼一起使用岔擂。使用Security.SSLConfigs.PrivateKeyPassword
屬性進(jìn)行持久存儲(chǔ)位喂。-
DNShost
- 可選 — 僅適用于 SSL
客戶端。指定服務(wù)器選擇的證書(shū)(用于主機(jī)名驗(yàn)證)或特定服務(wù)器的完全限定DNS
主機(jī)名(用于服務(wù)器名稱指示)乱灵。如果省略pw
塑崖,則必須指定占位符“|
”特點(diǎn)。主機(jī)名驗(yàn)證是一項(xiàng)功能痛倚,允許客戶端檢查它從服務(wù)器接收的證書(shū)是否包含帶有客戶端嘗試連接的主機(jī)名的字段规婆。這是供客戶端應(yīng)用程序使用的,例如
%Net.HttpRequest()
蝉稳,它想要驗(yàn)證服務(wù)器X.509
證書(shū)是否包含與URL
中的服務(wù)器名稱匹配的完全合格的服務(wù)器DNS
主機(jī)名抒蚜,無(wú)論是在subjectAltName
擴(kuò)展名還是主題CN
字段。這允許客戶端檢測(cè)中間人攻擊使用錯(cuò)誤域的有效證書(shū)的情況耘戚。服務(wù)器名稱指示 (
SNI
) 是一項(xiàng)允許客戶端向服務(wù)器提交其請(qǐng)求的主機(jī)名的功能嗡髓。這允許處理多個(gè)域的服務(wù)器選擇其多個(gè)證書(shū)之一返回。服務(wù)器可以選擇一個(gè)匹配客戶端主機(jī)名檢查的收津。
以下是有效 /TLS
關(guān)鍵字參數(shù)的示例:
/TLS="Client"
/TLS="Client|password"
/TLS="Client||www.intersystems.com"
/TLS="Client|password|www.intersystems.com"
TCP
設(shè)備的 OPEN-Only
命令關(guān)鍵字
下表描述了只能在 OPEN
命令中指定的用于控制 TCP
設(shè)備的關(guān)鍵字饿这。還有一些額外的 OPEN/USE
關(guān)鍵字(在本章前面描述過(guò))可以用 OPEN
或 USE
命令指定。所有關(guān)鍵字參數(shù)都是可選的撞秋。
TCP
設(shè)備的OPEN-only
命令關(guān)鍵字
Keyword | Default | Description |
---|---|---|
/BINDTO[=address] |
綁定到啟動(dòng)連接時(shí)使用的指定本地地址长捧。對(duì)于客戶端,這是從 IRIS 打開(kāi) TCP/IP 連接時(shí)使用的源地址部服。對(duì)于服務(wù)器唆姐,這是 IRIS 進(jìn)程在打開(kāi) TCP/IP 連接時(shí)接受連接的 IP 地址。 /BINDTO=address 用于控制連接將使用哪個(gè)網(wǎng)絡(luò)接口廓八。 /BINDTO 或 /BINDTO=”“ 刪除以前指定的地址奉芦。如果指定的地址不存在,則 OPEN 命令將超時(shí)剧蹂。 |
|
/CLOSELISTEN |
(僅限服務(wù)器)防止多個(gè)遠(yuǎn)程連接到偵聽(tīng)端口声功。如果指定,則在接受第一個(gè)連接后關(guān)閉偵聽(tīng)套接字宠叼。嘗試連接的其他客戶端將在 OPEN 命令上超時(shí)先巴。 |
|
/CONNECTIONS=n or /CON=n |
5 |
對(duì)應(yīng)于 queuesize 位置參數(shù)其爵,它確定有多少客戶端作業(yè)可以排隊(duì)等待與服務(wù)器的連接八酒。 |
/HOSTNAME=str or /HOS=str |
無(wú)默認(rèn) | 對(duì)應(yīng)于 hostname 位置參數(shù)侨歉,它可以是 IP 主機(jī)的名稱,也可以是 IPv4 或 IPv6 地址格式的 IP 地址错蝴〖劣剩可以使用 /USEIPV6 關(guān)鍵字來(lái)指定要使用的協(xié)議摇幻。 |
/IBUFSIZE=n or /IBU[=n] |
1024 |
對(duì)應(yīng)于 ibufsiz 位置參數(shù),它指定 TCP 輸入緩沖區(qū)的大小挥萌,該緩沖區(qū)保存從網(wǎng)絡(luò)讀取但尚未交付給應(yīng)用程序的數(shù)據(jù)绰姻。 |
/OBUFSIZE=n or /OBU[=n] |
1024 |
對(duì)應(yīng)于 obufsiz 位置參數(shù),它指定 TCP 輸出緩沖區(qū)的大小引瀑,該緩沖區(qū)包含在連續(xù)“SEND ”操作之間保存的數(shù)據(jù)狂芋。 |
/PORT=n |
無(wú)默認(rèn) | 對(duì)應(yīng)于端口位置參數(shù),它是用于連接的 TCP 端口號(hào)或服務(wù)名稱憨栽。 |
/SOCKET=n or /SOC=n |
無(wú)默認(rèn) | 對(duì)應(yīng)于“G ”模式參數(shù)字符帜矾,這導(dǎo)致端口位置參數(shù)被解釋為已打開(kāi)數(shù)據(jù)套接字的套接字描述符。此關(guān)鍵字將套接字描述符作為其值徒像,并用于代替 /PORT=n 關(guān)鍵字黍特。 (使用 IRIS 調(diào)用或調(diào)用機(jī)制,將套接字描述符從另一個(gè)編程環(huán)境(例如 C )傳遞到 ObjectScript 锯蛀。) |
/USEIPV6 |
無(wú)默認(rèn) | 如果指定 /USEIPV6 或 /USEIPV6=1 ,則對(duì)入站和出站連接使用 IPv6 地址次慢,覆蓋 IPV6 系統(tǒng)開(kāi)關(guān)旁涤。如果指定 /USEIPV6=0 ,則對(duì)入站和出站連接使用 IPv4 地址迫像,覆蓋 IPv6 系統(tǒng)開(kāi)關(guān)劈愚。如果未指定 /USEIPV6 ,則 IPV6 系統(tǒng)開(kāi)關(guān)控制行為闻妓。使用 IPV6 系統(tǒng)開(kāi)關(guān)設(shè)置菌羽,出站連接首先嘗試連接 IPv4 地址;如果失敗由缆,它會(huì)嘗試連接 IPv6 地址注祖。對(duì)于入站連接,TCP 設(shè)備會(huì)同時(shí)偵聽(tīng) IPv4 和 IPv6 連接均唉。在未設(shè)置 IPV6 的情況下是晨,只有 IPv4 地址用于入站和出站連接。 |
以下示例顯示了使用關(guān)鍵字語(yǔ)法打開(kāi)的 TCP/IP
設(shè)備:
SET dev="|TCP|"_123
SET portnum=57345
OPEN dev:(/PSTE:/HOSTNAME="128.41.0.73":/PORT=portnum)