如何:
为了使SSL在客户端和服务器之间工作,我只需要生成密钥库和信任库的生成,以便使用终端命令(Keytool和openssl)进行相互身份验证的分步指南.
它对我来说是新话题。我能够以明文形式连接。
public ManagedChannel getChannel(String serviceName){
TSServiceClientManager scm = TSServiceManagementFactory.getInstance().getServiceClientManager();
TSServiceConnectionInfo connInfo = scm.getServiceConnectionInfo(serviceName);
if(channel == null){
channel = ManagedChannelBuilder.forAddress(connInfo.getHost(), connInfo.getPort())
.usePlaintext(true) //need help here for SSL code
.build();
}
return channel;
}
Run Code Online (Sandbox Code Playgroud)
我被告知要启用客户端 SSL。我知道如何生成密钥库、信任库、pem、CA 等。我需要以下方面的帮助:
如何启用 SSL 而不是 .usePlaintext(true) 如上面的代码所示?
(考虑到证书文件、密钥库、信任库和 .pem 文件存在,请重写代码)
和
我想知道与服务器有什么关系才能使 SSL 连接正常工作?
我在 protobuf 文件中添加了以下新代码并编译以获取生成的 grpc_pb 文件。
service EchoService {
rpc Echo(EchoMessage) returns (EchoMessage) {
#-----New code start-----
option (google.api.http) = {
post: "/v1/echo"
body: "*"
};
#-----New code end------
}
}
Run Code Online (Sandbox Code Playgroud)
从在命令下面执行的 cURL 命令
curl -X POST -k https://localhost:10000/v1/echo -d '{"Key": "Value"}'
Run Code Online (Sandbox Code Playgroud)
提出上述请求后,无法得到正确的响应。
我的疑问是,准备将响应发送回调用者所需的任何服务器端代码更改?如果是这样,请建议我使用代码(Java)以及如何提出请求。如果没有,我们需要如何向grpc发出http请求?
工作示例非常感谢。