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 구현은 다음 위치(순서에 따라)에서 키 저장소 파일을 검색하여 사용한다.
$JAVA_HOME/lib/security/jssecacerts
$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
'Programing' 카테고리의 다른 글
내 변수는 C에 저장되어 있는 메모리 내의 위치 (0) | 2022.05.16 |
---|---|
Java 8에서 지수를 사용하여 스트림을 반복하는 간결한 방법이 있는가? (0) | 2022.05.16 |
Java.lang의 원인.호환되지 않는ClassChangeError? (0) | 2022.05.16 |
이렇게 하면 Vue 구성 요소를 가져오거나 등록하는 것이 올바른 방법인가? (0) | 2022.05.16 |
Vue.js의 문서 요소에서 값 가져오기 (0) | 2022.05.16 |