从倒立摆到无人机:手把手教你用LQR控制器搞定实际物理系统(附Simulink模型)
2026/5/5 8:53:28
mbedtls(前身 PolarSSL)是轻量级加密库,适配嵌入式 / 服务器端 TCP 通信场景,以下 7 步流程从环境搭建到安全加固,完整实现 TCP 服务器的 TLS 加密改造,兼顾易用性与安全性。
开始前,先搞清楚一个问题
哪些证书或随机数是客户端生成或需要的,哪些是服务端的,CA根证书属于哪端的?
豆包回答:
在基于 mbedtls 的 TLS 加密通信中,证书、私钥、随机数 的归属和职责划分清晰,核心遵循「CA 根证书做信任锚,服务端 / 客户端各有专属身份凭证,随机数双方独立生成」的原则,以下是详细拆解:
| 类型 | 归属方 | 生成 / 获取方式 | 核心作用 | 是否必需 |
|---|---|---|---|---|
| CA 根证书(ca_crt.pem) | 客户端 + 服务端 | 由 CA 机构签发(测试可自签名) | 作为「信任锚」,验证对方证书的合法性(客户端验服务器、服务端验客户端) | 客户端必需;服务端可选(双向认证时必需) |
| 服务器证书(server_crt.pem) | 服务端 | 由 CA 根证书签发(OpenSSL 生成) | 服务端向客户端证明身份,包含公钥、服务器域名 / IP、有效期等 | 服务端必需 |
| 服务器私钥(server_key.pem) | 服务端 | 服务端本地生成(OpenSSL genrsa) | 服务端解密客户端加密的预主密钥、签名握手信息,仅服务端持有,绝对保密 | 服务端必需 |
| 客户端证书(client_crt.pem) | 客户端 | 由 CA 根证书签发(可选) | 仅双向认证时使用,客户端向服务端证明身份 | 可选(单向认证无需) |
| 客户端私钥(client_key.pem) | 客户端 | 客户端本地生成(可选) | 仅双向认证时使用,客户端解密服务端加密信息、签名握手信息 | 可选(单向认证无需) |
| 熵源 / 随机数(entropy/ctr_drbg) | 客户端 + 服务端 | 本地实时生成(mbedtls 内置函数) | 生成会话密钥、握手随机数(ClientHello/ServerHello),防止重放 / 暴力破解 | 双方必需 |
openssl genrsa 生成(2048/4096 位),绝对不能对外泄露;entropy(熵源)+ ctr_drbg(随机数生成器)实时生成;