SSL에 대한 키 저장소 구성
키 저장소 구성을 사용하여 WebSphere® Application Server의 런타임이 SSL(Secure Sockets Layer) 구성에 대한 키 저장소 유형을 로드 및 관리하는 방법을 정의하십시오.
기본적으로 java.security.Security.getAlgorithms("KeyStore") 속성은 관리 콘솔에 사전 정의된 키 저장소 유형 목록을 표시하지 않습니다. 그 대신에 WebSphere Application Server는 java.security.KeyStore 오브젝트가 참조할 수 있는 모든 KeyStore 유형을 검색하며, 여기에는 하드웨어 비밀번호, z/OS® 플랫폼, IBM® i 플랫폼, IBM Java™ Cryptography Extension(IBMJCE) 및 Java 기반 CMS(Certificate Management Services) 제공자 키 저장소가 포함됩니다. java.security 파일에 키 저장소 제공자를 지정하거나 이를 제공자 목록에 프로그래밍 방식으로 추가하는 경우, WebSphere Application Sever는 사용자 정의 키 저장소도 검색합니다. 검색 목록은 해당 프로세스 및 프로세스의 java.security 구성에 따라 다릅니다.
IBMJCE 파일 기반 키 저장소(JCEKS, JKS, PKCS12)
<keyStores xmi:id="KeyStore_1" name="NodeDefaultKeyStore"
password="{xor}349dkckdd=" provider="IBMJCE"
location="${USER_INSTALL_ROOT}/config/cells/myhostNode01Cell
/nodes/myhostNode01/key.p12" type="PKCS12" fileBased="true"
hostList="" initializeAtStartup="true" readOnly="false"
description="Default key store for myhostNode01" usage="SSLKeys"
managementScope="ManagementScope_1"/>
기본 키 저장소 구성에 대한
자세한 정보는 SSL의 기본 체인 인증서 구성의 내용을 참조하십시오. 속성 이름 | Default | 설명 |
---|---|---|
xmi:id | 다름 | 구성의 다른 영역에서 키 저장소 참조를 위해 발생되는 값으로 예를 들어, SSL 구성입니다. 이 값이 security.xml 파일에서 고유해야 합니다. |
이름 | JSSE 키 저장소: CellDefaultKeyStore. JSSE 신뢰 저장소: CellDefaultTrustStore. | 보는 것으로 키 저장소를 식별하는 데 사용되는 이름. 이름은 키 저장소가 이름이 DefaultKeyStore 또는 DefaultTrustStore로 끝나는지 여부에 따라 기본 키 저장소인지를 판별할 수 있습니다. |
비밀번호 | 기본 키 저장소 비밀번호는 WebAS입니다. 이는 가능한 빨리 변경되도록 권장합니다. 자세한 정보는 스크립트를 사용하여 기본 키 저장소 비밀번호 업데이트의 내용을 참조하십시오. | 키 저장소 이름 액세스에 사용하는 비밀번호는 키 저장소 내에 키를 저장하는 데 사용하는 기본값입니다. |
설명 | 기본값 없음 | 키 저장소의 설명입니다. |
사용법 | 키 저장소가 사용되는 용도를 지정하는 속성. | 유효한 값: SSLKeys, KeySetKeys, RootKeys, DeletedKeys, DefaultSigners, RSATokenKeys. |
provider | 기본 제공자는 IBMJCE입니다. | 유형 속성을 구현하는 Java 제공자입니다(예: PKCS12 유형). 제공자는 지정 가능하며 지정된 키 저장소 유형을 구현하는 첫 번째 제공자가 사용됩니다. |
location | 기본값은 다르지만 일반적으로 구성 저장소의 노드 또는 셀 디렉토리에서 key.p12 파일이나 trust.p12 파일을 참조합니다. 이 파일은 PKCS12 유형의 키 저장소입니다. | 키 저장소 위치 참조. 키 저장소가 파일 기반인 경우, 위치는 키 저장소가 있는 노드의 파일 시스템의 모든 경로를 참조할 수 있습니다. 그렇지만 위치가 구성 저장소 밖이고 관리 콘솔이나 wsadamin 유틸리티에서 키 저장소를 원격으로 관리하려는 경우, 상주하는 노드의 호스트 이름이 포함된 hostList 속성을 지정하십시오. |
유형 | 기본 Java 비밀번호 사용 디바이스 키 저장소 유형은 PKCS12입니다. | 이 유형은 키 저장소를 지정합니다. 유효한 유형은 java.security.Security.getAlgorithms("KeyStore") 속성으로
리턴되는 유형입니다. 이 유형에는 다음과 같은 키 저장소 유형이 포함되며
가용성은 프로세스 및 플랫폼 java.security 구성에 따라 다릅니다.
|
fileBased | 기본값은 true입니다. | 이 옵션은 기본 키 저장소에 필요합니다. 이는 파일 시스템 키 저장소를 표시하기 때문에 키 저장소 로드 및 저장에 FileInputStream 또는 FileOutputStream을 사용할 수 있습니다. |
hostList | hostList 속성은 키 저장소의 원격 관리가 가능하도록 원격 호스트 이름을 지정하는 데 사용됩니다. 기본적으로 원격으로 관리되는 키 저장소는 없습니다. 모든 기본 키 저장소는 구성 저장소에서 로컬로 관리되고 각 노드에 동기화됩니다. | 옵션은 키 저장소를 원격으로 관리합니다. 키 저장소에 대해 유효한 노드의 호스트 이름을 설정할 수 있습니다. 관리 콘솔 또는 wsadmin 유틸리티를 사용하여 이 키 저장소의 인증서를 관리하는 경우 MBean 호출이 승인된 조작에 대한 키 저장소가 있는 노드에 대해 작성됩니다. 키 저장소 동기화 조작이 보장되지는 않지만 여러 개의 호스트를 지정할 수는 있습니다. 예를 들어, 나열된 호스트 중 하나는 특정 조작 수행 시 중지되었을 수 있습니다. 따라서 이 목록의 다중 호스트를 사용하십시오. |
initializeAtStartup | 기본값은 true입니다. | 이 옵션은 런타임에 시작 중 키 저장소 초기화를 지시합니다. 이 옵션은 하드웨어 비밀번호 사용 디바이스 가속화에 중요할 수 있습니다. |
readOnly | 기본값은 false입니다. | 이 옵션은 이 키 저장소에 기록할 수 없는 구성을 통지합니다. 즉, 키 저장소의
특정 업데이트 조작은 시도할 수 없으며 허용되지 않습니다. 읽기 전용 키 저장소 유형의 예는
z/OS 플랫폼의 JCERACFKS입니다.
이 유형은 WebSphere 인증서 관리 관점에서 읽기 전용이지만 RACF®에 대한 키 저장소 관리 기능을 사용해서도
업데이트할 수 있습니다.
|
managementScope | 기본 범위는 기본 애플리케이션 서버 환경의 노드 범위 및 네트워크 배치 환경의 셀 범위입니다. | 이 옵션은 이 키 저장소를 볼 수 있는 특정 관리 범위를 참조합니다. 예를 들어, 하드웨어 비밀번호 사용 디바이스가 실제로 특정 노드에 있는 경우 | 에서 토폴로지 보기에 해당 노드에 대한 링크에서 키 저장소를 작성하십시오. 관리 범위를 사용하여 키 저장소 참조를 분리할 수도 있습니다. 어떤 경우에는 특정 애플리케이션 서버만 키 저장소를 참조하도록 허용해야 할 수도 있습니다. 관리 범위는 해당 특정 서버의 범위입니다.
![[z/OS]](../images/ngzos.gif)
z/OS 키 저장소
WebSphere Application Server는 IBMJCE 파일 기반 키 저장소, Java Cryptography Extension Key Stores(JCEKS), Java Key Stores(JKS), 공개 키 비밀번호 표준 12(PKCS12), z/OS 특정 키 저장소를 지원합니다. z/OS의 IBMJCE 파일 기반 키 저장소 지원은 분산 플랫폼 지원과 완벽하게 호환되며 이와 유사합니다.
IBMJCECCA 제공자는 이전 릴리스에서의 IBMJCE4758 제공자를 확장하고 대체합니다. IBMJCECCA 제공자 및 IBMJCE4758 제공자는 기능상 동등합니다. IBMJCECCA 제공자는 네 개의 키 저장소인 JCECCAKS (JCE4758KS) 및 JCECCARACFKS (JCE4758RACFKS)를 지원합니다.
JCECCAKS 키 저장소는 z/OS 하드웨어에 저장되어 ICSF에서 관리되는 키를 사용합니다. JCECCARACFKS 키 저장소는 RACF 키링에 저장되고 관리되는 인증서를 처리하고 키는 z/OS 하드웨어에 저장됩니다. JCE4758KS 및 JCE4758RACFKS 키 저장소는 역호환성을 위해 포함되지만 더 이상 사용되지 않습니다. JCECCAKS 키 저장소는 JCE4758KS 키 저장소를 확장하고 대체합니다. JCECCARACFKS 키 저장소는 JCE4758RACFKS 키 저장소를 확장하고 대체합니다.
- JCECCAKS 키 저장소(JCE4758KS 대체)는 z/OS 하드웨어에 저장되는 키와 ICSF(Integrated Cryptographic Services Facility)에서 관리되는 키를 사용합니다.
- JCERACFKS 키 저장소는 Resource Access Control Facility(RACF) 키 저장소에 포함되는 키와 인증서를 지원하기 위해 사용되는 RACF 기반 키 저장소입니다. ICSF에 저장된 키 자료는 이 키 저장소 유형으로 지원됩니다.
- JCECCARACFKS(JCE4758RACFKS 확장 및 대체) 키 저장소는 RACF 기반의 키 저장소로 z/OS 하드웨어에 저장되는 키와 같이 RACF 키 저장소에 포함되는 인증서 지원에 사용됩니다. ICSF 옵션은 RACF RACDCERT와 같이 지정해야 합니다.
- 키 저장소 유형 IBMJCE 제공자용 JCERACFKS, IBMJCECCA 제공자용 JCECCARACFKS는 SAF가 사용 가능한 z/OS 플랫폼에서만 사용할 수 있습니다.
- 관리 콘솔을 사용하여 개인 인증서를 HFS에 Base64 인코드 ASCII 데이터 유형 또는 2진 DER 데이터 유형으로 추출할 수 있습니다. 그렇지만 SSL 구성의 키 저장소 유형이 JCERACFKS인 경우, 0바이트 파일이 HFS에 작성됩니다.
- 비밀번호를 요구하는 JCE 키 저장소와 호환되려면 JCERACFKS에는 비밀번호가 필요하지만 비밀번호는 password여야 합니다. 이 키 저장소의 보안은 다른 키 저장소 유형처럼 실제로 비밀번호로 보호되지는 않으며 RACF를 사용하는 보호에 대한 스레드 실행 ID를 기반으로 합니다. 이 비밀번호는 경로 필드에 지정한 키 저장소 파일용입니다.
IBMJCE 제공자는 이전에 나열된 z/OS 특정 키 저장소 세트에서 JCERACFKS 키 저장소만 지원합니다. IBMJCE 제공자는 JCECCAKS 또는 JCECCARACFKS 키 저장소가 하드웨어에 특정되기 때문에 이를 사용할 수 없습니다.
IBMJCECCA 제공자는 JCERACFKS, JKS, JCEK 키 저장소에 대한 소프트웨어 키 자료를 지원하며 하드웨어 가속화를 활용할 수 있습니다.
새 키 저장소 클래스인 JceRACFKeyStore가 IBMJCE 및 IBMJCECCA 제공자에 추가되었습니다. 이 키 저장소는 WebSphere Application Server가 키링에서 읽도록 허용하기 때문에 키링에서 인증서와 키링을 검색할 때 이 클래스를 사용하십시오. 그렇지만 서버가 키링에 데이터를 쓰려고 하면 IOException 예외가 처리됩니다. RACFInputStream이 모든 키 저장소에 대해 작동하기 때문에 서버가 JceRACFKeyStore 클래스가 아닌 다른 키 저장소를 사용하는 경우 RACF에 저장된 데이터가 HFS(Hierarchical File System) 파일에 실수로 기록될 수 있습니다.
- RACFInputStream을 직접 사용하여 새로 작성한 인스턴스를 JceRACFKeyStore 클래스에 전달하십시오.
- URLStreamHandler를 사용하여 RACFInputStream을 호출하고 인스턴스를 JceRACFKeyStore 클래스에 전달하십시오.
JceRACFKeyStore 및 RACFInputStream을 포함하여 모든 JAVA RACF 서비스에 대해 R_datalib(IRRSDL00) 서비스를 사용하여 RACF에서 인증서를 검색하십시오. 그렇지만 이 서비스를 사용하려면 임의 RACF 클래스를 사용하기 전에 R_datalib에 대한 권한을 확보해야 합니다. 필요한 권한 설정 방법에 대한 자세한 정보는 OS/390® 보안 서버 호출 가능 서비스 안내서를 참조하십시오.
CMS 키 저장소
일부 제공자 특정 속성을 CMS 키 저장소에 설정할 수 있습니다.
![[z/OS]](../images/ngzos.gif)
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
<keyStores xmi:id="KeyStore_1132071489571" name="CMSKeyStore"
password="{xor}HRYNFAtrbxEwOzpvbhw6MzM=" provider="IBMCMSProvider"
location="${USER_INSTALL_ROOT}\profiles\AppSrv01/config/cells/myhostCell01
/nodes/myhostNode01/servers/webserver1/plugin-key.kdb" type="CMSKS"
fileBased="true" createStashFileForCMS="true"
managementScope="ManagementScope_1132071489569"/>
<keyStores xmi:id="KeyStore_1132071489571" name="CMSKeyStore"
password="{xor}HRYNFAtrbxEwOzpvbhw6MzM=" provider="IBMi5OSJSSEProvider"
location="${USER_INSTALL_ROOT}\profiles\AppSrv01/config/cells/myhostCell01
/nodes/myhostNode01/servers/webserver1/plugin-key.kdb" type="IBMi5OSKeyStore"
fileBased="true" createStashFileForCMS="true"
managementScope="ManagementScope_1132071489569"/>
![[IBM i]](../images/iseries.gif)
![[IBM i]](../images/iseries.gif)
하드웨어 비밀번호 키 저장소
비밀번호를 사용하는 디바이스 구성인 경우 암호화 사용을 위한 키 관리의 내용을 참조하십시오.
사용자 정의 특성 com.ibm.ssl.keyStoreSlot 또는 구성 속성 slot="0"으로 슬롯을 추가해야 합니다. 사용자 정의 특성은 역호환성을 위해 속성 전에 읽습니다.