Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gRPC sslcontext配置 我是gRPC的新手。 我试图做的是从客户端向服务器发送ssl gRPC调用。 我的问题是以下代码中的“证书文件”是客户端证书还是服务器证书? 如果是客户端证书,我是否需要将服务器证书添加到我的信任列表中,还是需要在打电话之前将客户端证书添加到服务器的信任列表中? 谢谢你的帮助。 SslContext sslcontext = GrpcSslContexts.forClient() .trustManager(caFile) .keyManager(certFile, keyFile) .build();_Ssl_Grpc_Grpc Java - Fatal编程技术网

gRPC sslcontext配置 我是gRPC的新手。 我试图做的是从客户端向服务器发送ssl gRPC调用。 我的问题是以下代码中的“证书文件”是客户端证书还是服务器证书? 如果是客户端证书,我是否需要将服务器证书添加到我的信任列表中,还是需要在打电话之前将客户端证书添加到服务器的信任列表中? 谢谢你的帮助。 SslContext sslcontext = GrpcSslContexts.forClient() .trustManager(caFile) .keyManager(certFile, keyFile) .build();

gRPC sslcontext配置 我是gRPC的新手。 我试图做的是从客户端向服务器发送ssl gRPC调用。 我的问题是以下代码中的“证书文件”是客户端证书还是服务器证书? 如果是客户端证书,我是否需要将服务器证书添加到我的信任列表中,还是需要在打电话之前将客户端证书添加到服务器的信任列表中? 谢谢你的帮助。 SslContext sslcontext = GrpcSslContexts.forClient() .trustManager(caFile) .keyManager(certFile, keyFile) .build();,ssl,grpc,grpc-java,Ssl,Grpc,Grpc Java,trustManager和keyManager在客户端/服务器之间是相互的;客户端的信任管理器需要信任服务器的密钥管理器,服务器的信任管理器需要信任客户端的密钥管理器(如果使用客户端证书)。客户端和服务器之间的唯一区别是服务器必须具有密钥管理器,客户端必须具有信任管理器。如果未为客户端指定信任管理器,将使用默认值 信任管理器基本上是受信任的证书颁发机构(独立于客户端或服务器)。密钥管理器包含身份证书和用于证明该身份的私钥 因此,客户端上的keyManager用于客户端证书。您需要在服务器端配置t

trustManager
keyManager
在客户端/服务器之间是相互的;客户端的信任管理器需要信任服务器的密钥管理器,服务器的信任管理器需要信任客户端的密钥管理器(如果使用客户端证书)。客户端和服务器之间的唯一区别是服务器必须具有密钥管理器,客户端必须具有信任管理器。如果未为客户端指定信任管理器,将使用默认值

信任管理器基本上是受信任的证书颁发机构(独立于客户端或服务器)。密钥管理器包含身份证书和用于证明该身份的私钥

因此,客户端上的
keyManager
用于客户端证书。您需要在服务器端配置
trustManager
以信任该证书:包括证书本身,或者更好的是,包括签署客户端证书的证书颁发机构。您通常可以将客户的信任管理器保留为默认值

请注意,只有在服务器请求时,客户端才会发送其证书。因此,您需要将服务器配置为
可选
ly或
需要
客户端证书:

sslContextBuilder.clientAuth(clientAuth.REQUIRE);

这真的很有帮助,你救了我一天。还有一个问题,假设客户端证书由一个名为aaa.com的CA颁发,服务器证书由另一个名为bbb.com的CA颁发。客户端上的ca文件应该是bbb.com的ca文件,对吗?是的,在客户端上使用bbb.com的ca。一方的“密钥”需要与另一方的“信任”匹配。密钥和信任不在同一台机器上交互服务器不需要信任自己,客户端也不需要信任自己。