키 저장소
Liberty는 JKS(Java™ Keystore)의 키 저장소 유형만 작성할 수 있습니다. Liberty에서 다른 유형의 키 저장소에 대한 지원은 기본 JRE(Java Runtime Environment)에서 지원하는 사항에 따라 다를 수 있습니다.
keystore 요소의 구성 속성에 대한 자세한 정보는 SSL 구성 속성의 내용을 참조하십시오.
JKS 및 JCEKS
JKS(Java Keystore) 및 JCEKS(Java Cryptography Extensions Keystore)는 IBM JRE와 Oracle JRE 사이의 공통 부분이며, 하나의 JRE를 사용하여 동일하게 구성될 수 있습니다. JKS는 Liberty의 기본 키 저장소 유형이며, Liberty가 작성할 수 있는 유일한 키 저장소 유형입니다. 구성에서 키 저장소 유형이 지정되자 않은 경우 JKS가 사용됩니다.
JKS 키 저장소 구성의
예제는 다음과 같습니다.
<keyStore id="sampleJKSKeyStore"
location="MyKeyStoreFile.jks"
type="JKS" password="myPassword" />
JCEKS 키 저장소
구성의 예제는 다음과 같습니다.
<keyStore id="sampleJCEKSKeyStore"
location="MyKeyStoreFile.jceks"
type="JCEKS" password="myPassword" />
PKCS11 키 저장소
암호화 토큰 지원을 제공하는 데 Liberty 서버를 사용할 수 있도록 하드웨어 암호화 키 저장소를 구성할 수 있습니다.
사용자는 하드웨어 디바이스 특정 구성 파일을 제공해야 합니다. 이 구성 파일은
attribute = value 형식의 항목이 포함된 텍스트 파일입니다.
이 파일은 최소한 name 및 library 속성을 포함해야 합니다. 예를 들어 다음과 같습니다.
name = HWDevice
library = /opt/foo/lib/libpkcs11.so
name 속성은 디바이스의 이 인스턴스에 제공 중인 이름입니다. library 속성에는 디바이스에 액세스하기 위해 하드웨어 디바이스가 제공하는 라이브러리의 경로가 포함되어 있습니다. 구성 파일에는 하드웨어 디바이스에 고유한 구성 데이터도 포함될 수 있습니다.
Liberty에서 PKCS11 키 저장소를 구성하려면 keystore 요소에 다음과 같은 필드가 포함되어 있어야 합니다.
- id - 구성에서 keystore 요소를 고유하게 식별합니다.
- location - 하드웨어 디바이스 특정 구성 파일의 경로입니다.
- type - PKCS11이 키 저장소 유형으로 지정되어야 합니다.
- fileBased - 키 저장소를 디바이스로 식별하려면 false여야 합니다.
- password - 디바이스에서 키에 액세스하기 위해 필요한 비밀번호입니다.
- provider - 필요한 제공자입니다. IBM® JRE의 경우에는 값이 IBMPKCS11Impl이어야 하고 Oracle JRE의 경우에는 값이 SunPKCS11이어야 합니다.
예제 구성은 다음과 같습니다.
<keyStore id="hwKeyStore"
location="${server.config.dir}/HWCrypto.cfg"
type="PKCS11"
fileBased="false"
password="{xor}Lz4sLCgwLTs="
provider="IBMPKCS11Impl"/>
PKCS12 키 저장소
공개 키 암호 표준 #12(PKCS12) 키 저장소를 사용할 수 있지만, IBM JRE를
사용할 때 Liberty에 의해 작성되지 않습니다. PKCS12 키 저장소 구성의 예제는 다음과 같습니다.
<keyStore id="samplePKCS12KeyStore"
location="MyKeyStoreFile.p12"
type="PKCS12" password="myPassword" />
CMS 키 저장소
CMS 키 저장소는 IBM JRE를 사용할 때 Liberty에 의해 구성될 수 있지만 작성될 수는 없지만 몇 가지 특수 구성이 필요합니다. CMS 제공자는 IBM JRE에서 기본적으로 사용할 수 없으므로 IBM JRE의 java.security 파일에 있는 제공자 목록에 추가해야 합니다.
다음 예제에서 com.ibm.security.cmskeystore.CMSProvider
클래스가 목록의 끝에 추가됩니다. 제공자 목록에서 제공자 번호가
올바른지 확인하십시오. Liberty는 CMS 키 저장소 숨김 파일을 사용하여 키 저장소에 대한 액세스를 확보하지 않습니다.
security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.3=com.ibm.security.jgss.IBMJGSSProvider
security.provider.4=com.ibm.security.cert.IBMCertPath
security.provider.5=com.ibm.security.sasl.IBMSASL
security.provider.6=com.ibm.xml.crypto.IBMXMLCryptoProvider
security.provider.7=com.ibm.xml.enc.IBMXMLEncProvider
security.provider.8=org.apache.harmony.security.provider.PolicyProvider
security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
security.provider.10=com.ibm.security.cmskeystore.CMSProvider
CMS 키 저장소를 사용하려면 server.xml
파일의 구성은 다음과 같습니다.
<keyStore id="sampleCMSKeyStore"
password="myPassword"
location="MyKeyStoreFile.kdb"
provider="IBMCMSProvider"
type="CMSKS"/>