키 저장소

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 형식의 항목이 포함된 텍스트 파일입니다. 이 파일은 최소한 namelibrary 속성을 포함해야 합니다. 예:
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 키 저장소

IBM JRE를 사용할 때 공개 키 암호 표준 #12(PKCS12) 키 저장소가 사용될 수 있지만, 이는 Liberty에 의해 작성되지 않습니다. PKCS12 키 저장소 구성의 예제는 다음과 같습니다.
    <keyStore id="samplePKCS12KeyStore"
     location="MyKeyStoreFile.p12"
     type="PKCS12" password="myPassword" />

CMS 키 저장소

IBM JRE를 사용 중이지만 일부 특수 구성이 필요할 때 CMS 키 저장소가 구성될 수 있지만, 이는 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"/>

주제의 유형을 표시하는 아이콘 참조 주제

파일 이름: rwlp_sec_keystores.html