Настройка хранилища доверенных сертификатов SSL и хранилища ключей при весенней загрузке последней версииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Настройка хранилища доверенных сертификатов SSL и хранилища ключей при весенней загрузке последней версии

Сообщение Anonymous »

Я хочу использовать метод https в своем проекте весенней загрузки. Я знаю, что мне нужно использовать SSL. Я хочу настроить хранилище ключей SSL и хранилище доверенных сертификатов программно в JAVA, а не с помощью application.properties.
Ранее я использовал Spring 3.1.3, в котором я использовал SslStoreProvider для установки свойств. Но теперь весной 3.2.3 он устарел, а начиная с весны 3.3.3 удален. В документации показано, что вы можете использовать sslbundle.
Я хочу использовать sslbundle для программной установки хранилища ключей и хранилища доверенных сертификатов. Не с помощью application.properties.
Вот моя старая реализация SslStoreProvider:

Код: Выделить всё

@Bean
public JettyServletWebServerFactory jettyConfigBean() {

JettyServletWebServerFactory jef = new JettyServletWebServerFactory();
System.out.println("JettyServletWebServerFactory");

System.out.println("Exec Prakrath code!");
jef.setSslStoreProvider(new SslStoreProvider() {
char[] password = "changeit".toCharArray();

@Override
public KeyStore getKeyStore() throws Exception {
System.out.println("downloadCerts and copyCerts initial load");
System.out.println("SslStoreProvider getKeyStore is called");
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream("/Users/prakrath/personal/teluskojava/servletjetty/src/main/resources/keystore.jks"), password);
return keyStore;
}
@Override
public KeyStore getTrustStore() throws Exception {
System.out.println("SslStoreProvider getTrustStore is called");
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(new FileInputStream("/Users/prakrath/personal/teluskojava/servletjetty/src/main/resources/keystore.jks"), password);
return trustStore;
}
});

return jef;
}
Это работает абсолютно нормально, но мне нужно перейти на sslbundle
Вот моя реализация SSLBundles

Код: Выделить всё

@Bean
public JettyServletWebServerFactory jettyConfigBean() {

JettyServletWebServerFactory jef = new JettyServletWebServerFactory();
System.out.println("JettyServletWebServerFactory");

System.out.println("Exec Prakrath code!");
jef.setSslStoreProvider(new SslStoreProvider() {
char[] password = "changeit".toCharArray();

@Override
public KeyStore getKeyStore() throws Exception {
System.out.println("downloadCerts and copyCerts initial load");
System.out.println("SslStoreProvider getKeyStore is called");
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream("/Users/prakrath/personal/teluskojava/servletjetty/src/main/resources/keystore.jks"), password);
return keyStore;
}
@Override
public KeyStore getTrustStore() throws Exception {
System.out.println("SslStoreProvider getTrustStore is called");
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(new FileInputStream("/Users/prakrath/personal/teluskojava/servletjetty/src/main/resources/keystore.jks"), password);
return trustStore;
}
});

jef.setSslBundles(new SslBundles() {
@Override
public SslBundle getBundle(String name) throws NoSuchSslBundleException {
char[] password = "changeit".toCharArray();
System.out.println("Inside SSL BUNDLE prakrath code!");
return SslBundle.of(SslStoreBundle.of(
getKeyStore(password),
new String(password),
getTrustStore(password)

));
}

private KeyStore getKeyStore(char[] password) {
System.out.println("downloadCerts and copyCerts initial load");
System.out.println("SslStoreProvider getKeyStore is called");
try {
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream("/Users/prakrath/personal/teluskojava/servletjetty/src/main/resources/keystore.jks"),  password);
return keyStore;
} catch (Exception e) {
throw new RuntimeException(e);
}
}

private KeyStore getTrustStore(char[] password) {
System.out.println("SslStoreProvider getTrustStore is called");
try {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(new FileInputStream("/Users/prakrath/personal/teluskojava/servletjetty/src/main/resources/keystore.jks"), password);
return trustStore;
} catch (Exception e) {
throw new RuntimeException(e);
}
}

@Override
public void addBundleUpdateHandler(String name, Consumer updateHandler) throws NoSuchSslBundleException {

}
});
return jef;
}
Но это не работает, я не могу отправить https-запрос. В Интернете нет кода для использования sslbundles или любого другого способа установки хранилища ключей и хранилища доверенных сертификатов в коде JAVA.

Подробнее здесь: https://stackoverflow.com/questions/790 ... st-version
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»