java SSL и хранилище ключей cert



Как моя программа java знает, где находится мое хранилище ключей, содержащее сертификат? Или как мне сказать моей Java-программы, где искать хранилище?



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

972   5  

5 ответов:

System.setProperty("javax.net.ssl.trustStore",path_to_your_cacerts_file);

свойства SSL устанавливаются на уровне JVM через Свойства системы. Это означает, что вы можете либо установить их при запуске программы (java-D....) Или вы можете установить их в коде, делая систему.методов-setproperty.

конкретные ключи, которые вы должны установить ниже:

класса javax.чистая.протокол SSL.хранилища ключей- расположение файл хранилища ключей Java, содержащий собственный сертификат процесса подачи заявки и закрытый ключ. На Windows указанный путь должен использовать вперед косые черты,/, вместо обратных косых черт.

класса javax.чистая.протокол SSL.keystorepassword системное - пароль чтобы получить доступ к закрытому ключу из файл хранилища ключей, указанный класса javax.чистая.протокол SSL.хранилище ключей. Этот пароль используется дважды: для разблокировки хранилища ключей файл (пароль магазина), и расшифровать закрытый ключ, хранящийся в хранилище ключей (ключ, пароль).

класса javax.чистая.протокол SSL.хранилище - расположение файл Java keystore, содержащий коллекция доверенных сертификатов ЦС по этому процессу подачи заявки (доверие хранить.) На Windows, указанный путь должен использовать косую черту,/, вместо обратной косой черты,\.

если расположение хранилища доверия не является указанный с помощью этого свойства, Поиски реализации у sunjsse для и использует файл хранилища ключей в следующие локации (по порядку):

  1. $JAVA_HOME/lib/security/jssecacerts
  2. $JAVA_HOME/lib/security/cacerts

класса javax.чистая.протокол SSL.trustStorePassword - Пароль для разблокировки файла хранилища (сохранить пароль), указанные javax.net.ssl.trustStore.

класса javax.чистая.протокол SSL.trustStoreType (опционально) Для формата файла хранилища ключей Java это свойство имеет значение jks (или JKS). Обычно вы не указываете это собственность, потому что его значение по умолчанию уже следующих.

класса javax.чистая.отладка - для переключения на входе в систему для Уровень SSL / TLS, набор это свойство для ssl.

во-первых, есть два вида хранилищ ключей.

отдельные и общие

приложение будет использовать тот, который указан в запуске или по умолчанию системы.

это будет другая папка, если JRE или JDK работает, или если вы проверяете личную или "глобальную".

они тоже зашифрованы

короче говоря, путь будет выглядеть так:

$JAVA_HOME/lib/security/cacerts для "генерал один", который имеет все CA для властей и довольно важен.

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

-Djavax.net.ssl.trustStore=/home/user/SSL/my-cacerts 
-Djavax.net.ssl.keyStore=/home/user/SSL/server_keystore.jks

в моем приложении apache spark я использовал для предоставления пути сертификатов и хранилища ключей с помощью и extraJavaoptions в spark-отправить, как показано ниже

--conf 'spark.driver.extraJavaOptions= 
-Djavax.net.ssl.trustStore=/home/user/SSL/my-cacerts 
-Djavax.net.ssl.keyStore=/home/user/SSL/server_keystore.jks' 

просто слово предостережения. Если вы пытаетесь открыть существующее хранилище ключей JKS в Java 9 и далее, вам нужно убедиться, что вы также упоминаете следующие свойства со значением "JKS":

javax.net.ssl.keyStoreType
javax.net.ssl.trustStoreType

причина в том, что тип хранилища ключей по умолчанию, как указано в java.файл безопасности был изменен на pkcs12 из jks с Java 9 и далее.

Comments

    Ничего не найдено.