Я пытаюсь добавить SSL в мои узлы клиент / сервер, но я получаю "Время ожидания рукопожатия" со стороны клиента и " Не удалось обработать ключ выбора " " Закрытие сеанса NIO из-за необработанного исключения"на стороне сервера. Я не знаю, правильно ли я все делаю ... Я использую java 11 + ignite 2.7.6 + gridgain 8.7.6
Для создания хранилища ключей: keytool -genkey -alias сервер-псевдоним -keyalg RSA-пароль доступа-пароля-пароль восстановления -kystore serverkeystore.jks
keytool -genkey -alias клиента-псевдонима -keyalg RSA-пароль доступа-пароля пароля хранилища -keystore clientkeystore.jks
Экспорт сертификата в собственный файл: keytool -export -alias server-alias -storepass пароль -file server.cer -keystore serverkeystore.jks
keytool -export - псевдоним client-alias -storepass пароль -file client.cer -keystore clientkeystore.jks
Добавить сертификаты в хранилище доверенных сертификатов сервера keytool -import -v -trustcacerts -alias server-alias - файл server.cer -keystore publicserverkeystore.jks -ключевой пароль -стопный пароль
keytool -import -v -trustcacerts -alias client-alias -file client.cer -keystore publicserverkeystore.jks -keypas s пароль -переохранить пароль
Добавить сертификаты в хранилище доверенных сертификатов клиента keytool -import -v -trustcacerts -alias client-alias -file client.cer -keystore publicclientkeystore.jks -keypass password -storepass пароль
keytool -import -v -trustcacerts -alias server-alias -file server.cer -keystore publicclientkeystore.jks -keypass пароль -storepass пароль
Теперь в java сторона клиентского узла:
ClientConnectorConfiguration cliConnCfg = new ClientConnectorConfiguration();
cliConnCfg.setJdbcEnabled(false);
cliConnCfg.setOdbcEnabled(false);
cliConnCfg.setThinClientEnabled(false);
cliConnCfg.setSslEnabled(true);
cliConnCfg.setSslClientAuth(true);
igniteConfiguration.setClientConnectorConfiguration(cliConnCfg);
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStoreFilePath("C:\\Program Files\\Java\\jdk-11.0.2\\lib\\security\\clientkeystore.jks");
sslContextFactory.setKeyStorePassword("password".toCharArray());
sslContextFactory.setTrustStoreFilePath("C:\\Program Files\\Java\\jdk-11.0.2\\lib\\security\\publicclientkeystore.jks");
sslContextFactory.setTrustStorePassword("password".toCharArray());
igniteConfiguration.setSslContextFactory(sslContextFactory);
Теперь на стороне java серверного узла:
ClientConnectorConfiguration cliConnCfg = new ClientConnectorConfiguration();
cliConnCfg.setJdbcEnabled(false);
cliConnCfg.setOdbcEnabled(false);
cliConnCfg.setThinClientEnabled(false);
cliConnCfg.setSslEnabled(true);
cliConnCfg.setSslClientAuth(true);
igniteConfiguration.setClientConnectorConfiguration(cliConnCfg);
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStoreFilePath("C:\\Program Files\\Java\\jdk-11.0.2\\lib\\security\\serverkeystore.jks");
sslContextFactory.setKeyStorePassword("password".toCharArray());
sslContextFactory.setTrustStoreFilePath("C:\\Program Files\\Java\\jdk-11.0.2\\lib\\security\\publicserverkeystore.jks");
sslContextFactory.setTrustStorePassword("password".toCharArray());
igniteConfiguration.setSslContextFactory(sslContextFactory);