一旦存在有效的候选对(双方都能连接并在它们之间交换数据),就需要使连接变得安全。DTLS 是一种加密协议,用于加密数据,防止对所交换数据内容的检查或修改。
DTLS 需要 OpenSSL 库(OpenSSL 1.1 及以上)。
DTLS 的配置位于 TsgcRTCPeerConnection 的 RTCOptions.DTLSOptions 属性中。要启用 DTLS,请将 RTCOptions.DTLS 属性设置为 True。以下是主要属性:
RootCertFile:用于验证对端的信任存储的路径,通常是保存证书颁发机构的文件。该属性在 TLS 和 QUIC 传输上具有相同的含义。它不是本端自身的证书;如果配置中设置了 RootCertFile 和 KeyFile 而将 CertFile 留空,连接启动时将引发错误。
CertFile:本端证书文件的路径。该文件可以同时包含证书及其中间证书,因此证书链文件也可以使用。
KeyFile:证书密钥文件的路径。
VerifyCertificate:如果必须验证对端的证书链,请启用此属性。WebRTC 通过 SDP 中携带的指纹而不是证书链来认证对端,因此保持该属性禁用才是通常的 WebRTC 配置,它也不受 DTLS 传输上现已强制执行的证书链验证的影响。
VerifyDepth: 是一个整数属性,表示验证时允许的最大链接数,也就是验证对端证书时允许的最大证书链深度。
OpenSSL_Options:OpenSSL 库的配置。
APIVersion: 允许定义将使用的 OpenSSL API。仅 openSSL API 1.1 及以上版本支持 DTLS。
oslAPI_1_1:使用 OpenSSL API 1.1,需要我们定制的 Indy 库,并支持 OpenSSL 1.1.1 库(含 TLS 1.3 支持)。
oslAPI_3_0:使用 API 3.0 OpenSSL,需要我们的自定义 Indy 库,并允许使用 OpenSSL 3.0.0 库(支持 TLS 1.3)。
LibPath: 在此处您可以配置 openSSL 库的位置
oslpNone:这是默认值,OpenSSL 库应与二进制文件位于同一文件夹中,或位于已知路径中。
oslpDefaultFolder:自动设置所有 IDE 版本应查找 OpenSSL 库的路径。
oslpCustomFolder: 如果选择此选项,请在属性 LibPathCustom 中定义完整路径。
LibPathCustom:当 LibPath = oslpCustomFolder 时,在此处定义 openSSL 库所在的完整路径。
UnixSymLinks: 启用或禁用在 Unix 系统下加载符号链接(默认启用,OSX64 除外):
oslsSymLinksDefault: 默认情况下启用,但在 OSX64 下除外(MacOS Monterey 之后,不带版本号尝试加载库会失败)。
oslsSymLinksLoadFirst:先加载符号链接,然后再尝试加载版本库。
oslsSymLinksLoad: 在尝试加载版本库后加载符号链接。
oslsSymLinksDontLoad:不加载符号链接。