null KeyManager 배열을 사용하여 SSLContext를 초기화하고 있습니다.
키 관리자는 (서버 측에서) 서버 인증서를 처리하는 역할을 하며, 이것이 바로 아마도 javax.net.ssl.keyStore를 사용할 때 설정을 목표로 하고 있을 것입니다.
그러나 JSSE 참조 가이드에 설명된 대로 첫 번째 매개변수에 null을 사용하면 생각하는 대로 작동하지 않습니다. :
KeyManager[] 매개변수가 null이면 이 컨텍스트에 대해 빈 KeyManager가
정의됩니다. TrustManager[] 매개변수가 null인 경우
설치된 보안 공급자는
TrustManagerFactory의 우선순위가 가장 높은 구현을 검색하여
적절한 TrustManager를 얻습니다. 마찬가지로
SecureRandom 매개변수는 null일 수 있으며, 이 경우 기본
구현이 사용됩니다.
빈 KeyManager에는 RSA 또는 DSA 인증서가 포함되어 있지 않습니다. 따라서 해당 인증서를 사용하는 모든 기본 암호화 제품군은 비활성화됩니다. 이것이 바로 "사용할 수 없는 암호 모음 무시" 메시지가 모두 표시되는 이유이며, 결과적으로 "공통 암호 모음 없음" 메시지가 표시되는 것입니다.
키 저장소를 키 저장소로 사용하려면 이를 로드하고 이를 사용하여 KeyManagerFactory를 초기화해야 합니다.
KeyStore ks = KeyStore.getInstance("JKS");
InputStream ksIs = new FileInputStream("...");
try {
ks.load(ksIs, "password".toCharArray());
} 마침내 {
if (ksIs != null) { ksIs.close(); }
}
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory
.getDefaultAlgorithm());
kmf.init(ks , "keypassword".toCharArray());
SSLContext.init()의 첫 번째 매개변수로 kmf.getKeyManagers()를 사용합니다.
다른 두 매개변수의 경우 클라이언트 인증서 인증을 요청하지 않는 경우 취약점의 잠재적 원인이 되는 신뢰 관리자를 복사/붙여넣기하는 대신 신뢰 관리자를 기본값(null)으로 유지해야 하며 기본 null SecureRandom을 사용할 수도 있습니다.
위 내용은 null KeyManager 배열과 함께 `SSLContext.init`을 사용할 때 '사용할 수 없는 암호 모음 무시' 및 '공통 암호 모음 없음' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!