Liberty의 SSL 기본값
Liberty의 기본 SSL 인증서, 키 저장소, 구성을 지정합니다.
기본 인증서 및 키 저장소
개발자가 구동 및 실행하는 데 도움이 되는 편리한 도구로서, 사용자는 securityUtility 명령에서 createSSLCertificate 매개변수를 사용하여 자체 서명된 인증서를 작성할 수 있습니다. 사용자는 명령행에서 직접 도구를 호출할 수 있습니다. 또는 서버가 이를 호출하여 서버 시작 시에 기본 인증서와 키 저장소를 작성하도록 할 수도 있습니다.
<keyStore id="defaultKeyStore" password="yourPassword" />
defaultKeyStore의 키 저장소 구성이 제 위치에 있고 서버를 시작할 때 키 저장소가 존재하지 않는 경우 서버가 createSSLCertificate 매개변수를 호출합니다. 이 매개변수는 구성에 지정된 비밀번호로 키 저장소를 작성합니다.
- 위치: 키 저장소 파일은 key.jks라고 불리며, 서버 또는 클라이언트 resources/security 디렉토리에 있습니다.
- 키 저장소 유형: 키 저장소 유형은 JKS입니다.
- 비밀번호: 구성에서 제공되는 비밀번호입니다.
- 유형: 인증서는 자체 서명 인증서입니다.
- 크기: 기본 인증서 크기는 2048입니다.
- 서명 알고리즘: 인증서의 서명 알고리즘은 SHA256WITHRSA입니다.
- 유효성: 인증서는 365일 동안 유효합니다.
- SubjectDN: 인증서는 CN=<hostname>,OU=<client or server name>,O=ibm,C=US as the SubjectDN으로 작성됩니다.
사용자가 인증서를 사용자 정의하고자 하는 경우, createSSLCertificate 매개변수가 명령행에서 호출될 수 있습니다.
기본 SSL 구성
SSL에 필요한 최소 구성은 defaultKeyStore라고 하는 단일 키 저장소 요소입니다. defaultKeyStore가 구성에 존재하는 경우 런타임은 주변에 defaultSSLConfig라고 하는 SSL 구성을 빌드합니다.
defaultSSLConfig 세부사항:
- 프로토콜: IBM® JRE가 사용되는 경우, 프로토콜은 기본적으로 SSL_TLSv2로 설정됩니다. Oracle JRE가 사용되는 경우 SSL이 프로토콜로 사용됩니다.
- 암호: 암호 목록은 기본 JRE에서 지원되는 암호의 목록을 가져옴으로써 빌드됩니다. 기본적으로 목록은 128비트 이상 또는 3DES인 모든 암호로 축소됩니다. RC4는 사용으로 설정하면 안전하지 않은 것으로 간주되므로 삭제됩니다. 지원하지 않는 서버로 이동하는 경우 오류가 발생할 수 있으므로 ECDHE 암호가 제거됩니다. 이를 포함하도록 암호 목록을 사용자 정의할 수 있습니다.
- 클라이언트 인증: 기본적으로, clientAuthentication 및 clientAuthenticationSupported는 사용되지 않습니다.
- 키 저장소: 기본 구성에서 defaultKeyStore는 키 및 신뢰 저장소 모두로 사용됩니다.
SSL 구성 특성의 사용자 정의를 위해 defaultSSLConfig라고 하는 SSL 요소를 server.xml 파일에 입력할 수 있습니다. defaultSSLConfig라고 하는 사용자 정의된 ssl 요소는 다른 SSL 구성이 기본값으로 식별되지 않으면 계속해서 기본 SSL 구성처럼 처리됩니다. 자세한 정보는 SSL 구성 속성을 참조하십시오.
<sslDefault sslRef="customSSLConfiguration" />
Liberty 기본 SSL 구성의 속성은 SSLContext를 작성하는 데 사용됩니다. 이 SSLContext는 Java™ API SSLContext.setDefault()를 사용하여 기본 SSLContext로서 프로세스에서 설정됩니다. 애플리케이션이 https URL과 함께 httpURLConnection()과 같은 API를 호출하고 SSL 정보를 제공하지 않는 경우, 애플리케이션은 프로세스의 기본 SSLContext를 선택합니다. 이 경우에는 Liberty 기본 SSL 구성으로 작성되는 SSLContext입니다.
기본 SSL 구성이 Liberty에서 설정되지 않으면 Liberty는 JSSE의 기본 SSLContext를 사용합니다. JSSE의 기본 SSLContext는 키 저장소 및 신뢰 저장소에 대해 cacerts 파일을 사용합니다. SSL 기능이 정의되지 않았거나 존재하는 SSL 구성이 기본적으로 식별되지 않는 경우 Liberty에 기본 SSL 구성이 없습니다. 기본 구성이 호출된 defaultSSLConfig(defaultKeyStore가 정의된 경우 이는 내재적일 수 있음)이거나 sslDefault 요소를 사용하여 대체 SSL 구성을 지정할 수도 있습니다.
javax 시스템 특성(javax.net.ssl.keystore)은 기본 SSL 컨텍스트에 대한 키 저장소 및 신뢰 저장소 정보를 설정하는 데 사용되며 사용되지 않아야 합니다. 특성이 프로세스에서 설정된 경우에는 SSLContext.setDefault()에 대한 호출이 이를 제거합니다.