Доступ к REST API в Apache Ignite с использованием HTTPS - PullRequest
0 голосов
/ 30 апреля 2020

Я использую Apache Ignite 2.8.0. Это моя конфигурация сервера,

<property name="sslContextFactory">
    <bean class="org.apache.ignite.ssl.SslContextFactory">
        <property name="keyStoreFilePath" value="C:\\ignite\\apache-ignite-2.8.0-bin\\keystore.jks"/>
        <property name="keyStorePassword" value="1234567"/>
        <property name="trustStoreFilePath" value="C:\\ignite\\\\apache-ignite-2.8.0-bin\\\\trust.jks"/>
        <property name="trustStorePassword" value="123456"/>
    </bean>
</property> 
<property name="connectorConfiguration">

              <bean class="org.apache.ignite.configuration.ConnectorConfiguration">

                    <property name="jettyPath" value="C:\apache-ignite-2.8.0-bin\examples\config\jetty-config.xml" />

              </bean>

        </property>

И это мой джет-конфиг. xml, https://apacheignite.readme.io/docs/rest-api (копия вставлена)

Тем не менее, он работает только с HTTP. Он не работает с HTTPS. Что со мной не так? Как я могу включить HTTPS на Rest API?

1 Ответ

0 голосов
/ 30 апреля 2020

К сожалению, фрагмент документации не завершен.

Вам также необходимо определить sslContextFactory в конфигурации Jetty :

<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
    <Set name="keyStorePath">src/test/keystore/server.jks</Set>
    <Set name="keyStorePassword">123456</Set>
    <Set name="keyManagerPassword">123456</Set>
    <Set name="trustStorePath">src/test/keystore/trust-one.jks</Set>
    <Set name="trustStorePassword">123456</Set>
</New>

Вы также нужен другой сконфигурированный соединитель:

<Call name="addConnector">
    <Arg>
        <New class="org.eclipse.jetty.server.ServerConnector">
            <Arg><Ref refid="Server"/></Arg>
            <Arg>
                <Array type="org.eclipse.jetty.server.ConnectionFactory">
                    <Item>
                        <New class="org.eclipse.jetty.server.SslConnectionFactory">
                            <Arg><Ref refid="sslContextFactory"/></Arg>
                            <Arg>http/1.1</Arg>
                        </New>
                    </Item>
                    <Item>
                        <New class="org.eclipse.jetty.server.HttpConnectionFactory">
                            <Arg><Ref refid="httpCfg"/></Arg>
                        </New>
                    </Item>
                </Array>
            </Arg>
  ...

Вам также необходимо хранилище доверенных сертификатов и подписанный ключ сервера. Создание таких, особенно тех, которые могут быть приняты веб-браузерами, является выходом за рамки этого ответа. Попробуйте letsencrypt для генерации, возможно.

...