Skip to content

安全通信:TLS 加密与认证

可用性:TLS 传输加密两个变体均支持;用户名密码认证为完整版(Full)专属, 精简版(Tiny)下相关声明在头文件中即被剔除,误用在编译期即报错——这是一条明确的能力 边界。

一、TLS 加密用法

TLS 传输加密为节点间链路启用 TLS,保护数据在传输中的机密性与完整性。两个变体均支持, 只需提供 CA 证书路径,配合启用 TLS 的端点(如 tls/host:port 形式的端点地址)即可让链路 走加密传输。

c
onepath_config_t cfg;
onepath_config_new(&cfg);
onepath_config_set_mode(cfg, "client");
onepath_config_add_endpoint(cfg, "tls/192.168.1.10:7447");  /* 加密端点 */
onepath_config_set_tls_ca(cfg, "/etc/onepath/ca.pem");      /* 校验对端证书 */

onepath_session_t s;
onepath_open_with_config(&s, cfg);
onepath_config_destroy(cfg);

二、用户名密码认证用法

完整版(Full)专属。 精简版下相关 API 在头文件中即被声明剔除,误用在编译期即报错 ——这是一条明确的能力边界。

用户名密码认证在建立连接时校验对端身份,拒绝未授权节点接入。设置凭据后与 TLS 叠加使用是 生产环境的推荐组合。

c
onepath_config_t cfg;
onepath_config_new(&cfg);
onepath_config_set_mode(cfg, "client");
onepath_config_add_endpoint(cfg, "tls/192.168.1.10:7447");
onepath_config_set_tls_ca(cfg, "/etc/onepath/ca.pem");      /* 加密 */
onepath_config_set_auth(cfg, "alice", "s3cr3t");            /* 认证(仅 Full) */

onepath_session_t s;
onepath_open_with_config(&s, cfg);
onepath_config_destroy(cfg);

加密与认证叠加使用

生产环境建议同时启用 TLS 加密与身份认证:TLS 保护链路上的数据不被窃听 / 篡改,认证 拒绝未授权节点接入。两者通过同一个配置构建器 onepath_config_t 设置,互不冲突。

三、限制

  • TLS 加密两个变体均支持;用户名密码认证仅完整版提供,精简版下相关 API 在头文件中即被 声明剔除。
  • onepath_open_with_config 内部拷贝配置,调用后 cfg 仍有效;无论是否传给过它,最终都 须 onepath_config_destroy 释放。

API 参考

onepath_config_set_tls_ca / onepath_config_set_auth 的函数签名、参数说明与返回值见 会话管理 · 安全配置

OnePath™ 是西安汉为信息技术有限公司的注册商标。