Я настраиваю своего собственного провайдера jce и уже имею рабочую настройку, расширяя классы SPI / engine
Я использовал Http1Protocol и смог получить псевдоним (я использую порт в качестве ALIAS)через keyManager.chooseServerAlias (keyType, принципал [], сокет), поскольку он имеет параметр сокета с ним
Но когда я изменил его на Http11NioProtocol, он теперь использует ChooseEngineServerAlias для получения псевдонима, и, к сожалению, менеджер ключей не имеет доступа к сокетукоторый я использую в качестве ссылки для получения порта / псевдонима,
Пожалуйста, сообщите
Я проверил ServerHandshaker.setupPrivateKeyAndChain, и он имеет следующую реализацию для получения движка
if(this.conn != null) {
var3 = var2.chooseServerAlias(var1, (Principal[])null, this.conn);
} else {
var3 = var2.chooseEngineServerAlias(var1, (Principal[])null, this.engine);
}
Насколько я понимаю, при использовании протоколов NIO он будет использовать SSLEngine, но при использовании протокола IO он использует SSLSocket.Кажется, я буду использовать соединитель NioProtocol на моем tomcat, теперь я не могу получить ссылку на номер порта.