Получение ошибки после добавления конфигурации SSL [Apache Ignite] - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь добавить 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);
...