You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BuildGrid与Bazel TLS通信配置问题求助

解决BuildGrid与Bazel TLS通信配置问题

核心问题分析

你遇到的File does not contain valid private key: 'client.key'错误,根源是BuildGrid文档生成的客户端私钥格式与Bazel的TLS要求不兼容:BuildGrid用-nodes参数生成的是传统RSA私钥格式,而Bazel期望PKCS#8格式的私钥。此外,客户端证书需由服务器信任的CA(这里复用你的server.crt作为CA)签署,而非自签名。

步骤1:重新生成兼容的TLS证书/密钥

1.1 生成服务器端证书(已存在可跳过)

openssl req -new -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -batch -subj "/CN=localhost" -out server.crt -keyout server.key

1.2 生成客户端证书与Bazel兼容的私钥

# 生成客户端RSA私钥
openssl genrsa -out client.key 4096

# 将私钥转换为PKCS#8格式(Bazel要求的标准格式)
openssl pkcs8 -topk8 -inform PEM -outform PEM -in client.key -out client.p8 -nocrypt

# 生成证书签名请求(CSR)
openssl req -new -key client.key -out client.csr -batch -subj "/CN=client"

# 用服务器证书作为CA签署客户端证书
openssl x509 -req -in client.csr -CA server.crt -CAkey server.key -CAcreateserial -out client.crt -days 3650 -sha256

步骤2:配置BuildGrid Server

确保配置文件中TLS路径指向正确:

tls-server-key: /path/to/server.key
tls-server-cert: /path/to/server.crt
tls-client-certs: /path/to/client.crt  # 可直接指定客户端证书文件,或信任证书的存放目录

重启BuildGrid Server,确认日志无TLS错误且BuildGrid Bot能正常连接。

步骤3:配置Bazel启动参数

使用转换后的PKCS#8私钥,同时指定信任服务器证书:

bazel build //your-target \
  --tls_certificate=server.crt \
  --tls_client_certificate=client.crt \
  --tls_client_key=client.p8

关于Bazel官方脚本生成证书的注意事项

若使用Bazel官方脚本生成证书,需确保:

  • 服务器端使用脚本生成的server.crt和server.key
  • 客户端私钥需转换为PKCS#8格式后再给Bazel使用
  • Bazel的--tls_certificate指向脚本生成的CA证书,确保Bazel信任服务器证书的签署方

内容的提问来源于stack exchange,提问作者GeekyKayaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:22:46