关于安全

通常在不使用 TLS 证书认证时,gRPC 客户端与服务端之间进行的是明文通信,信息易被第三方监听或篡改。所以大多数情况下均推荐使用 SSL/TLS 保护 gRPC 服务。目前atest已实现服务端 TLS,双向 TLS(mTLS) 需等待后续实现。

默认情况下atest不使用任何安全策略,等价于spec.secure.insecure = true。启用 TLS 仅需 yaml 中添加以下内容:

spec:
  secure:
    cert: server.pem
    serverName: atest

字段说明

secure共有以下五个字段:

字段名类型是否可选
certstringx
castring
keystring
serverNamestringx
insecurebool

cert为客户端需要配置的证书的文件路径,格式为PEM

serverName为 TLS 所需的服务名,通常为签发证书时使用的 x509 SAN。

ca为 CA 证书的路径,key为与cert对应的私钥,这两项填写后代表启用 mTLS。(mTLS 尚未实现)

insecurefalse时,certserverName为必填项。