gpt4 book ai didi

java - 如何正确生成 grpc java auth 示例所需的 .pem 文件?

转载 作者:行者123 更新时间:2023-11-30 08:31:56 26 4
gpt4 key购买 nike

对于一些背景,我正在关注 this guide因为我正在使用 auth 构建一些 grpc 微服务。

我正在尝试运行非常基本的 java 示例,但我生成的 key 不允许 ssl 连接发生。

这是我的服务器代码。

server = NettyServer.forPort(8050)
.useTransportSecurity(
new File(serverCert)
new File(serverKey)
)
.addService(
new TestService(); // my implementation of the grpc service
)
.build();

server.start();

这是我的客户端代码

channel = NettyChannelBuilder.forAddress("localhost", 8050)
.sslContext(
GrpcSslContexts
.forClient()
.trustManager(
new File(serverCert)
).build()
).build();

现在,当我去生成 key 的时候

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

输入一些关于我自己的信息后,我得到了 2 个文件

>> ls 
key.pem cert.pem

在我上面的代码中,serverKey 指的是“key.pem”,serverCert 指的是“cert.pem”

我可以毫无问题地启动服务器。当我尝试连接客户端时,出现以下错误

INFO: [ManagedChannelImpl@6ddf90b0] Created with target localhost:8050
Nov 03, 2016 11:25:16 AM getapi.example.TestClient greet
INFO: Will try to greet world ...
Nov 03, 2016 11:25:17 AM getapi.example.TestClient greet
WARNING: RPC failed: Status{code=UNAVAILABLE, description=null, cause=javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem}
Nov 03, 2016 11:25:17 AM io.grpc.internal.ManagedChannelImpl maybeTerminateChannel
INFO: [ManagedChannelImpl@6ddf90b0] Terminated

最相关的行似乎是这个

javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem

我承认,除了对公钥密码学有非常基本的了解外,我基本上对 key /证书/pem 文件一无所知。

有人可以阐明如何正确生成 grpc 期望的 key 文件吗?

最佳答案

我错误地创建了我的 key 。这是 openssl 命令

openssl req -x509 -days 365 -nodes -newkey rsa:1024 -keyout key.pem -out cert.pem

当它询问通用名称时,我最初输入了我的 IP 地址。这是不正确的。

我不能代表所有的用例,但这里适当的做法是使用“localhost”

关于java - 如何正确生成 grpc java auth 示例所需的 .pem 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com