как использовать .pem ssl сертификат для остальных API, разработанных в качестве приложения весенней загрузки - PullRequest
0 голосов
/ 10 октября 2019

У нас есть весеннее загрузочное приложение для остальных веб-сервисов, которое находится в стадии разработки. И сейчас мы используем самозаверяющий сертификат.

Теперь он будет развернут в системе вместе с еще одним уже разработанным приложением. Это уже существующее приложение по умолчанию использует самозаверяющий сертификат, но дает клиенту возможность загружать сертификаты CA, если они этого хотят. Теперь мы хотим использовать тот же сертификат для этого нового приложения.

По сути, мы хотим, чтобы клиент использовал 1 сертификат для 2 приложений, работающих в 1 системе.

Теперь у этого существующего приложения есть файлы сертификатов, такие как .pem и .cer. Теперь, как я могу использовать этот сертификат в моем весеннем загрузочном приложении, которое использует сертификат в формате jks.

И, конечно же, в случае любого обновления сертификат должен быть доступен обоим приложениям.

Ответы [ 2 ]

2 голосов
/ 10 октября 2019

PEM - это широко известный формат файлов, когда речь идет о сертификатах. За исключением случаев, когда речь идет о Java. Поскольку Java использует только JKS (только для Java, двоичное хранилище ключей) или PKCS12 для ключей и сертификатов. Таким образом, мы должны преобразовать сертификаты PEM в JKS или PKCS12, чтобы Java могла их использовать. Но это может быть некрасиво во многих ситуациях.

вы можете использовать ниже зависимости в вашем приложении весенней загрузки.

<dependency>
  <groupId>de.dentrassi.crypto</groupId>
  <artifactId>pem-keystore</artifactId>
  <version>2.0.0</version>
</dependency>

, затем добавьте

KeyStore keyStore = KeyStore.getInstance("PEM");

для получения дополнительной информации

https://github.com/ctron/pem-keystore

application.properties

 server.ssl.enabled=true
 server.ssl.key-store=/path/to/keystore.properties
 server.ssl.key-store-type=PEMCFG
 server.ssl.key-store-password=dummy
 server.ssl.key-alias=keycert

А затем вы создаете файл keystore.properties:

alias=keycert
source.cert=/etc/…/fullchain.pem
source.key=/etc/…/privkey.pem
0 голосов
/ 10 октября 2019

для тестирования защищенного API вы можете использовать Fiddler инструмент для обхода или подделки SSL.

(ИЛИ)

вы можете настроить свойства приложения, как показано ниже.

server.port: 8443
security.require-ssl=true
server.ssl.key-store:/etc/letsencrypt/live/seeld.eu/keystore.p12
server.ssl.key-store-password: <your-password>
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat
...