Может ли кто-нибудь сказать мне, как перезагрузить SSLContext при обновлении / обновлении сертификата сервера без перезапуска сервера gRPC?
У меня есть этот код для создания и запуска сервера gRPC. Метод certificateRefreshed () вызывается всякий раз, когда сертификат изменяется, когда я создаю новый контекст SSL, но это не сработает, если я не перезапущу сервер 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();
}
}