Programing

SSL 및 인증서 키 저장소

c10106 2022. 5. 16. 20:20
반응형

SSL 및 인증서 키 저장소

인증서가 들어 있는 키 저장소가 어디에 있는지 Java 프로그램이 어떻게 알 수 있는가?

또는 다음 중 하나:Java 프로그램에 키 저장소를 찾을 위치를 알려 주는 방법은?

Keystore를 어떤 방법으로 지정한 후, 서버에 대한 인증확인에 사용할 인증서를 지정하는 방법은?

SSL 속성은 시스템 속성을 통해 JVM 수준에서 설정된다.프로그램을 실행할 때 설정하거나(java -D....) 시스템을 수행하여 코드에서 설정할 수 있다는 의미.setProperty.

설정해야 하는 특정 키는 다음과 같다.

javax.net.properties.keystore- 응용 프로그램 프로세스의 자체 인증서 및 개인 키를 포함하는 Java keystore 파일의 위치.윈도우즈에서 지정된 경로 이름은 백슬래시 대신 / 앞으로 슬래시를 사용해야 한다.

javax.net.properties.keyStorePassword - javax.net.properties에서 지정한 키 저장소 파일에서 개인 키에 액세스하기 위한 암호.keystore.이 암호는 다음 두 번 사용됨:키 저장소 파일 잠금 해제(암호 저장) 및 키 저장소에 저장된 개인 키(키 암호)의 암호를 해독하려면 다음과 같이 하십시오.

javax.net.ssl.trustStore - 이 응용 프로세스(trust store)에서 신뢰하는 CA 인증서 컬렉션이 들어 있는 Java 키 저장소 파일의 위치.윈도우즈에서 지정된 경로 이름은 슬래시를 사용해야 하며,/, 백슬래시 대신,\.

이 속성을 사용하여 트러스트 저장소 위치를 지정하지 않은 경우 SunJSSE 구현은 다음 위치(순서에 따라)에서 키 저장소 파일을 검색하여 사용한다.

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

javax.net.ssl.trustStorePassword - 에서 지정한 키 저장소 파일(스토어 암호)을 잠금 해제하는 암호javax.net.ssl.trustStore.

javax.net.ssl.trustStoreType - (선택사항) Java keystore 파일 형식의 경우 이 속성은 jks(또는 JKS) 값을 갖는다.이 속성의 기본값은 이미 jks이므로 일반적으로 이 속성을 지정하지 마십시오.

javax.net.dll - SSL/TLS 계층에 대한 로깅을 켜려면 이 속성을 ssl로 설정하십시오.

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

한 마디 주의만 하면 된다.Java 9 이후에서 기존 JKS 키 저장소를 열려고 할 경우, "JKS"로서 값을 가진 다음 속성도 언급해야 한다.

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

그 이유는 Java.security 파일에 규정된 기본 keystore 유형이 Java 9 이상의 jk에서 pkcs12로 변경되었기 때문이다.

다음 명령을 사용하여 런타임의 경로를 언급할 수도 있다.-D아래와 같은 속성

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

내 아파치 스파크 애플리케이션에서, 나는 다음을 사용하여 인증서와 키 저장소의 경로를 제공하곤 했다.--conf옵션 및extraJavaoptions아래와 같이 불꽃이 튀어.

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

우선, 두 종류의 키스토어가 있다.

개인일반

응용 프로그램은 시스템의 시작 또는 기본값에 표시된 것을 사용한다.

JRE나 JDK가 실행 중이거나 개인 폴더나 "글로벌" 폴더를 확인하면 다른 폴더가 된다.

그것들은 또한 암호화되어 있다.

요컨대 그 길은 다음과 같을 것이다.

$JAVA_HOME/lib/security/cacerts"일반인"을 위해, 그는 당국의 모든 CA를 가지고 있고 꽤 중요한 사람이다.

참조URL: https://stackoverflow.com/questions/5871279/ssl-and-cert-keystore

반응형