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

Golang gRPC配置TLS遇"grpc: no transport security set"错误排查

问题:gRPC TLS配置未生效,客户端提示无安全传输设置

我正在Golang服务器中实现密码哈希加盐功能,完成后开始研究TLS配置。因为使用gRPC,所以参照官方文档添加TLS配置代码,但未生效。

为生成.cert和.key文件,我遵循了相关教程,编写了以下代码:

服务端代码

certFile, certFileErr := os.ReadFile("server.crt")

if certFileErr != nil {
    log.Fatalf("Failed to read cert file: %v", certFileErr)
}

keyFile, keyFileErr := os.ReadFile("server.key")

if keyFileErr != nil {
    log.Fatalf("Failed to read key file: %v", keyFileErr)
}

creds, _ := credentials.NewServerTLSFromFile(string(certFile), string(keyFile))
mServ := grpc.NewServer(grpc.Creds(creds))

lis, err := net.Listen("tcp", "localhost:50051")

客户端代码

certFile, certFileErr := os.ReadFile("server.crt")

if certFileErr != nil {
    log.Fatalf("Failed to read cert file: %v", certFileErr)
}

creds, _ := credentials.NewClientTLSFromFile(string(certFile), "")
conn, err := grpc.Dial("localhost:50051", grpc.WithTransportCredentials(creds))

if err != nil {
    log.Fatalf("did not connect: %v", err)
}

我不确定如何向gRPC传递文件引用,所以用了常规文件读取方式。服务端运行正常,但客户端报错:

grpc: no transport security set (use
grpc.WithTransportCredentials(insecure.NewCredentials()) explicitly or
set credentials)

这让我困惑,明明配置了安全连接却被提示未设置。这是我第一次实现登录安全机制,不清楚常规流程。

更新:经日志排查,发现代码无法找到.cert文件,尽管路径是IDE自动提示的。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:33:02