【发布时间】:2018-07-18 22:01:19
【问题描述】:
有人可以告诉我如何在刷新/更新服务器证书而不重新启动 gRPC 服务器的情况下重新加载 SSLContext 吗?
我有这段代码来构建和启动 gRPC 服务器。 每当证书发生更改时,即我创建新的 SSL 上下文时,就会调用方法 certificateRefreshed(),但除非我重新启动 grpc 服务器,否则这不起作用。
public class ServerWithTls {
Server server;
SslContext sslContext;
public ServerWithTls() {
this.sslContext = getSslContext();
NettyServerBuilder serverBuilder = NettyServerBuilder
.forPort(settings.port())
.executor(executorService)
.addService(myService);
.sslContext(this.sslContext);
server = serverBuilder.build();
server.start();
}
public io.netty.handler.ssl.SslContext getSslContext() {
// returns ssl context based on cert and key
}
// gets notified when a server cert changes
public void certificateRefreshed() {
// create a new SSL context when cert changes
this.sslContext = getSslContext();
}
}
【问题讨论】:
-
目前不支持在不重启服务器的情况下刷新证书。
标签: ssl certificate netty grpc grpc-java