У меня есть приложение весенней загрузки, которое вызывает службу отдыха с поддержкой ssl, требующую взаимной аутентификации ssl.Мне нужно указать хранилище ключей и хранилище доверенных сертификатов, чтобы сделать вызов в этом клиентском приложении.
Когда я указываю информацию о хранилище ключей и доверенном хранилище (пути, типы и пароли как файлов ключей, так и хранилищ доверенных сертификатов) внутрикод Java, как показано ниже, вызов работает.
public static void main(String[] args) throws Exception {
System.setProperty("javax.net.ssl.trustStore", "/path/to/tmnt-truststore");
System.setProperty("javax.net.ssl.keyStore", "/path/to/donatello.p12");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStorePassword", "donatellopass");
Но как мне указать, что в application.yaml.
Я попытался с помощью следующего шаблона указатьinttore keystore, truststore, key итипы доверенных хранилищ и пароли, в точности вся информация, которую я указал с помощью System.setProperty.
javax:
net:
ssl:
trust-store: /path/to/tmnt-truststore
Но не работает.Я получаю сообщение об ошибке
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Попытка указать оба шаблона trust-store
и trustStore
для хранилища ключей и хранилища доверия.
Это клиентское приложение также предоставляет конечную точку отдыха, и эта информацияуказано в том же файле yaml, что и
server:
context-path: /my-context
port: 8200
spring:
application:
name: mhapp
Эта информация, похоже, воспринимается приложением.Но не javax.net.ssl.keyStore и т. Д.
Как мне указать это в application.yaml
и нужно ли делать что-то еще, например, добавлять аннотации, чтобы загрузить эту информацию?