# dotNet.sslTunnel.client 库模块帮助文档

## dotNet.sslTunnel 成员列表 <a id="dotNet.sslTunnel" href="#dotNet.sslTunnel">&#x23;</a>

### dotNet.sslTunnel.client <a id="dotNet.sslTunnel.client" href="#dotNet.sslTunnel.client">&#x23;</a>
SSL 客户端隧道。  
将本地明文 TCP 转换为远程 SSL TCP。  
支持双向 TLS 认证（mTLS）。

### dotNet.sslTunnel.client() <a id="dotNet.sslTunnel.client" href="#dotNet.sslTunnel.client">&#x23;</a>
创建对象。  

[返回对象:dotNetSslTunnelClientObject](#dotNetSslTunnelClientObject)

## dotNetSslTunnelClientObject 成员列表 <a id="dotNetSslTunnelClientObject" href="#dotNetSslTunnelClientObject">&#x23;</a>

### dotNetSslTunnelClientObject.clearCertificate() <a id="dotNetSslTunnelClientObject.clearCertificate" href="#dotNetSslTunnelClientObject.clearCertificate">&#x23;</a>
清除已加载的客户端证书

### dotNetSslTunnelClientObject.close() <a id="dotNetSslTunnelClientObject.close" href="#dotNetSslTunnelClientObject.close">&#x23;</a>
关闭并释放

### dotNetSslTunnelClientObject.loadCertificate(certPath,password) <a id="dotNetSslTunnelClientObject.loadCertificate" href="#dotNetSslTunnelClientObject.loadCertificate">&#x23;</a>
从 PFX/P12 文件加载客户端证书。  
用于双向 TLS 认证（mTLS）场景。  

- 参数 @certPath 可指定文件路径或嵌入资源文件路径。  
- 可选用参数 @password 指定证书书密码。

### dotNetSslTunnelClientObject.loadCertificate(pfxData,password) <a id="dotNetSslTunnelClientObject.loadCertificate" href="#dotNetSslTunnelClientObject.loadCertificate">&#x23;</a>
从 PFX 字节数据加载证书。  

- 参数 @pfxData 必须指定 buffer 类型的证书数据。  
- 可选用参数 @password 指定证书书密码。

### dotNetSslTunnelClientObject.loadCertificateFromStore(thumbprint,storeName,storeLocation) <a id="dotNetSslTunnelClientObject.loadCertificateFromStore" href="#dotNetSslTunnelClientObject.loadCertificateFromStore">&#x23;</a>
从系统证书存储加载。  
thumbprint: 证书指纹  
storeName: 存储名称(默认 "My")  
storeLocation: "CurrentUser" 或 "LocalMachine"

### dotNetSslTunnelClientObject.localPort <a id="dotNetSslTunnelClientObject.localPort" href="#dotNetSslTunnelClientObject.localPort">&#x23;</a>
启动成功后为本地监听端口。

### dotNetSslTunnelClientObject.start(localPort,remoteHost,remotePort,sslHost,bindIp,ignoreCert) <a id="dotNetSslTunnelClientObject.start" href="#dotNetSslTunnelClientObject.start">&#x23;</a>
启动隧道

### dotNetSslTunnelClientObject.stop() <a id="dotNetSslTunnelClientObject.stop" href="#dotNetSslTunnelClientObject.stop">&#x23;</a>
停止

## dotNetSslTunnelClientObject 事件列表 <a id="dotNetSslTunnelClientObjectEvent" href="#dotNetSslTunnelClientObjectEvent">&#x23;</a>

### dotNetSslTunnelClientObject.onError(err) <a id="dotNetSslTunnelClientObject.onError" href="#dotNetSslTunnelClientObject.onError">&#x23;</a>

```aardio
dotNetSslTunnelClientObject.onError = function(err){
	/*SSL 隧道发生错误时回调此函数，err 为错误信息。*/
}
```

### dotNetSslTunnelClientObject.onLog(msg) <a id="dotNetSslTunnelClientObject.onLog" href="#dotNetSslTunnelClientObject.onLog">&#x23;</a>

```aardio
dotNetSslTunnelClientObject.onLog = function(msg){
	/*SSL 隧道启动时输出的信息（msg 参数）。*/
}
```

