ssl 如何在NettyServerBuilder中配置crl列表?

lvjbypge  于 2024-01-08  发布在  其他
关注(0)|答案(1)|浏览(237)

NettyServerBuilder支持配置crl列表以及如何配置crl列表。
版本grpc-netty:1.44.1
我找不到介绍如何配置crl列表的文档。
我只是通过SslContextBuilder.keyManager和SslContextBuilder.trustManager找到了如何配置keyManager和trustCert

fafcakar

fafcakar1#

  1. sslHandler.handshakeFuture().addListener(new MyGenericFutureListener(sslHandler,crlPath));

字符串
我的通用未来:

  1. public class MyGenericFutureListener implements GenericFutureListener<DefaultPromise<Channel>> {
  2. SslHandler sslHandler;
  3. String crlPath;
  4. public MyGenericFutureListener(SslHandler sslHandler, String crlPath) {
  5. this.sslHandler = sslHandler;
  6. this.crlPath = crlPath;
  7. }
  8. @Override
  9. public void operationComplete(DefaultPromise<Channel> channelFuture) throws Exception {
  10. if (channelFuture.isSuccess()) {
  11. SSLSession sslSession = sslHandler.engine().getSession();
  12. X509Certificate cert = (X509Certificate) sslSession.getPeerCertificates()[0];
  13. if (isCertificateRevoked(cert)) {
  14. log.error("Certificate revoked");
  15. //channelFuture.get().close();
  16. }
  17. }
  18. }
  19. @SneakyThrows
  20. private boolean isCertificateRevoked(X509Certificate cert) {
  21. X509CRL crl = (X509CRL) CertificateFactory.getInstance("X.509").generateCRL(new FileInputStream(crlPath));
  22. return crl.isRevoked(cert);
  23. }

展开查看全部

相关问题