在我当前基于netty(3.5.2)的服务器中,我能够使用TLS重新协商向客户端请求证书。根据资源的类型,我想向客户端请求一组不同的证书。这可以通过服务器发送TLS CertificateRequest信号并正确设置Certificate_Authorities
字段来完成。我想在我的服务器上区分的两组资源是:
X509TrustManager
在Java,受信任的CA列表由X509TrustManager.getAcceptedissuers()方法设置。但一旦设置了SSLContext,似乎就没有办法改变这一点了。我希望SSLParameters类中有一些可用的选项,但没有任何方法允许至少设置nullCertificate_Authorities
列表。
允许这种情况的一种不令人满意的方法是为null请求的证书颁发机构打开一个新的端口,从而通过将资源分离到这些不同的端口来区分资源。有没有人知道有一种方法可以避免开新的港口?
您需要安装自己的TrustManager。有关详细信息,请参阅JSSE参考指南。