Как создать хранилище ключей и доверительное хранилище с использованием самозаверяющего сертификата?

У нас есть JAVA-сервер и клиент, которые связывают сеть через SSL. Сервер и клиент взаимно аутентифицируют друг друга с помощью сертификатов. Тип хранилища ключей, используемый сервером и клиентом, – JKS. Сервер и клиент загружают файлы хранилища ключей и доверенных хранилищ. Имена файлов хранилища ключей и доверенных имен: server.keystore, server.truststore, client.keystore и client.truststore. Я использую самоподписанные сертификаты только для тестирования.

Вопросов:

Q1. Я хотел бы знать, почему мне нужно добавить собственные сертификаты сервера и клиента в их соответствующие магазины доверия на шаге 6.

Q2. Могу ли я уменьшить число шагов для достижения того же? Если да, то как?

Шаги по созданию ключа RSA, самозаверяющих сертификатов, хранилища ключей и доверительного хранилища для сервера

  1. Создание частного ключа RSA

    openssl genrsa -out diagserverCA.key 2048 
  2. Создайте сертификат x509

     openssl req -x509 -new -nodes -key diagserverCA.key \ -sha256 -days 1024 -out diagserverCA.pem 
  3. Создайте хранилище ключей PKCS12 из закрытого ключа и открытого сертификата.

     openssl pkcs12 -export -name server-cert \ -in diagserverCA.pem -inkey diagserverCA.key \ -out serverkeystore.p12 
  4. Преобразование хранилища ключей PKCS12 в хранилище JKS

     keytool -importkeystore -destkeystore server.keystore \ -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert 
  5. Импортируйте сертификат клиента в хранилище доверия сервера.

     keytool -import -alias client-cert \ -file diagclientCA.pem -keystore server.truststore 
  6. Импортируйте сертификат сервера в хранилище доверия сервера.

     keytool -import -alias server-cert \ -file diagserverCA.pem -keystore server.truststore 

Шаги по созданию секретного ключа RSA, самозаверяющего сертификата, хранилища ключей и доверия для клиента

  1. Создание секретного ключа

     openssl genrsa -out diagclientCA.key 2048 
  2. Создайте сертификат x509

     openssl req -x509 -new -nodes -key diagclientCA.key \ -sha256 -days 1024 -out diagclientCA.pem 
  3. Создайте хранилище ключей PKCS12 из закрытого ключа и открытого сертификата.

     openssl pkcs12 -export -name client-cert \ -in diagclientCA.pem -inkey diagclientCA.key \ -out clientkeystore.p12 
  4. Преобразование хранилища ключей PKCS12 в хранилище ключей JKS

     keytool -importkeystore -destkeystore client.keystore \ -srckeystore clientkeystore.p12 -srcstoretype pkcs12 \ -alias client-cert 
  5. Импортируйте сертификат сервера в хранилище доверия клиента.

     keytool -import -alias server-cert -file diagserverCA.pem \ -keystore client.truststore 
  6. Импортируйте сертификат клиента в хранилище доверия клиента.

     keytool -import -alias client-cert -file diagclientCA.pem \ -keystore client.truststore