SSL에 기본 체인된 인증서 구성
WebSphere® Application Server 프로세스가 처음 시작될 때 SSL(Secure Sockets Layer) 런타임은 SSL 구성에 지정된 기본 키 저장소와 신뢰 저장소를 초기화합니다.
프로파일 작성 중에 작성된 체인된 인증서에는 기본적으로 1년의 사용 주기가 지정됩니다. 서명자에게 사용되는 기본 루트 인증서 및 기본 체인된 인증서의 사용 주기는 15년입니다. 기본 및 루트 인증서의 사용 주기는 프로파일 작성 중에 사용자 정의할 수 있습니다. 이 유형의 체인된 인증서의 장점은 루트 인증서의 서명자만 신뢰를 설정해야 한다는 점입니다. 체인된 인증서가 동일한 루트 인증서로 다시 생성되면 신뢰에 대해 해당 루트 서명자 인증서를 사용하는 클라이언트는 해당 신뢰를 잃지 않습니다.
- 기본 키 저장소 및 신뢰 저장소 특성
- WebSphere Application Server에서는 key.p12 기본
키 저장소 파일과 trust.p12 기본 신뢰 저장소 파일을 프로파일 작성 중에 작성합니다.
기본 체인된 인증서도 key.p12 파일에서 작성됩니다. 체인된 인증서의 루트 서명자 또는 공용 키는
key.p12 파일에서 추출되어 trust.p12 파일에 추가됩니다. 파일이 프로세스 시작에 없는 경우 시작 중에 다시 작성됩니다.
키 저장소와 신뢰 저장소의 기본값은 해당 접미부인 DefaultKeyStore 및 DefaultTrustStore로 식별 가능합니다. 또한, SSL 구성에서 fileBased 속성을 true로 설정하여 런타임 환경이 기본 키 저장소와 신뢰 저장소만 사용하도록 해야 합니다.
기본 애플리케이션 서버에서 기본 키와 신뢰 저장소는 구성 저장소의 노드 디렉토리에 저장됩니다. 예를 들어, 기본 key.p12 및 trust.p12 저장소는기본
AppSrv01 프로파일 이름, myhostNode01Cell 이름, myhostNode01 노드 이름으로 작성됩니다. 키 저장소와 신뢰 저장소는 다음 디렉토리에 있습니다.
C:\WebSphere\AppServer\profiles\AppSrv01\config\cells\myhostNode01Cell \nodes\myhostNode01\key.p12
C:\WebSphere\AppServer\profiles\AppSrv01\config\cells\myhostNode01Cell \nodes\myhostNode01\trust.p12
${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell/nodes/myhostNode01/key.p12
${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell/nodes/myhostNode01/trust.p12
기본 비밀번호는 WebSphere Application Server에서 생성되는 모든 기본 키 저장소에 대해 WebAS입니다. 더 안전한 환경에 대한 초기 구성 후에 기본 비밀번호를 변경하십시오.
- 기본 체인된 인증서
- 기본 체인된 인증서 서명에 사용되는 루트 자체 서명 인증서와 같이 서버의 기본 체인된 인증서는
프로파일 작성 중에 작성됩니다. 루트 인증서 특성
Information 값 유형 자체 서명 크기 2048 서명 알고리즘 SHA256withRSA SubjectDN cn=${hostname},ou=Root Certificate, ou=<node name>, ou= <cell name>,o=IBM,c=US 사용 주기 15년 기본 인증서 특성:Information 값 유형 체인됨(루트 인증서로 서명) 크기 2048 서명 알고리즘 SHA256withRSA SubjectDN cn=${hostname},ou=<node name>,ou=<cell name>,o=IBM,c=US 사용 주기 1년 *.p12 파일을 /config 및 /etc에서 간단히 삭제하여 다른 정보를 사용해서 인증서를 다시 작성할 수 있습니다. 다음 코드 예에서 4개의 특성을 인증서가 포함하려는 값으로 변경하고 프로세스를 다시 시작하십시오. 그러면 /config의 서버 인증서와 /etc의 클라이언트 인증서가 서로 달라집니다.
다음 코드 예의 인증서 특성은 ssl.client.props 파일에 있지만 서버 구성에는 없습니다. 그렇지만 서버 구성에서 이 값을 관리 콘솔에서 사용자 정의 보안으로 추가하여 사용할 수 있습니다. 보안 > 글로벌 보안 > 사용자 정의 특성을 클릭하여 다음 특성을 변경하십시오.com.ibm.ssl.defaultCertReqAlias=default_alias com.ibm.ssl.defaultCertReqSubjectDN=cn=${hostname},ou=myhostNode01,ou=myhostNode01Cell,o=IBM,c=US com.ibm.ssl.defaultCertReqDays=365 com.ibm.ssl.defaultCertReqKeySize=1024 com.ibm.ssl.rootCertSubjectDN=cn=${hostname},ou=Root Certificate, ou=myhostNode01, ou=myhostNode01Cell,o=IBM,c=US com.ibm.ssl.rootCertValidDays=7300 com.ibm.ssl.rootCertAlias=root com.ibm.ssl.rootCertKeySize=1024
특성 변경 후에 다음 조치를 완료하십시오.- 배치 관리자에 대해 기본 체인된 인증서를 포함하는 기본 key.p12 키 저장소와 trust.p12 신뢰 저장소 파일을 삭제하십시오. 키 저장소와 신뢰 저장소가 없으면 WebSphere Application Server는 자동으로 이를 생성하고 이전에 나열된 특성 값으로 새 기본 인증서를 작성합니다.
- root-key.p12 파일인 루트 키 저장소를 삭제하여 이전에 나열된 특성으로 루트 인증서를 다시 생성하십시오.
- 배치 관리자, 해당 노드, 모든 서버를 다시 시작하십시오.
- 루트 인증서를 사용하여 각 노드에 서명하십시오.
- 노드가 연합되지 않으면 각 노드를 addNode 명령으로 배치 관리자에 연합하십시오. 노드의 기본 인증서는 셀의 루트 인증서를 사용하여 다시 생성됩니다.
- 노드가 연합되면 셀의 루트 인증서를 사용하여 각 노드에 대한 인증서를 갱신하십시오. 관리 콘솔 또는 renewCertificate 명령으로 인증서를 갱신할 수 있습니다. 자세한 정보는 인증서 갱신 및 renewCertificate 명령 문서를 참조하십시오.
default_alias 값이 이미 있으면 런타임은 _#을 추가하며 숫자 부호 (#)는 키 저장소에 고유해질 때까지 늘어나는 숫자입니다. ${hostname}은 원래 작성된 호스트 이름으로 해결되는 변수입니다. 체인된 인증서의 기본 만기 날짜는 작성일로부터 1년입니다.
런타임은 인증서 만기 모니터를 사용하여 체인된 인증서의 만기 날짜를 모니터합니다. 이 체인된 인증서는 모든 서명자 인증서로 대체되며 이는 만기 전까지 일반적으로 30일인 만기 임계값 내에 인증서가 있는 경우입니다. Java™ 런타임 환경 정책 파일이 제한되지 않는 경우에만(즉, 내보내지 않는 경우) 1024비트 이상으로 기본 키 크기를 늘릴 수 있습니다. 자세한 정보는 SSL에서 인증서 만기 모니터링의 내용을 참조하십시오.
- 새 기본 애플리케이션 서버 프로세스에 대한 기본 키 저장소와 신뢰 저장소 구성
- 다음 샘플 코드는
기본 Application Server의 기본 SSL 구성을 보여 줍니다.
기본 키 저장소와 신뢰 저장소 파일의 참조는 강조표시됩니다.
<repertoire xmi:id="SSLConfig_1" alias="NodeDefaultSSLSettings" managementScope="ManagementScope_1"> <setting xmi:id="SecureSocketLayer_1" clientAuthentication="false" securityLevel="HIGH" enabledCiphers="" jsseProvider="IBMJSSE2" sslProtocol="SSL_TLS" keyStore="KeyStore_1" trustStore="KeyStore_2" trustManager="TrustManager_1" keyManager="KeyManager_1"/> </repertoire>
- 기본 키 저장소
- 다음 샘플 코드에서 기본 키 저장소를 나타내는
키 저장소 오브젝트는 XML 오브젝트와 유사합니다.
<keyStores xmi:id="KeyStore_1" name="NodeDefaultKeyStore" password="{xor}349dkckdd=" provider="IBMJCE" location="${WAS_INSTALL_ROOT}/config /cells/myhostNode01Cell/nodes/myhostNode01/key.p12" type="PKCS12" fileBased="true" hostList="" initializeAtStartup="true" managementScope="ManagementScope_1"/>
NodeDefaultKeyStore 키 저장소에는 안전 엔드포인트의 ID를 나타내는 개인용 인증서가 포함됩니다. 모든 키 저장소 참조는 ${WAS_INSTALL_ROOT} 변수를 사용할 수 있으며 이는 런타임으로 확장됩니다. PKCS12 기본 키 저장소 유형은 대부분의 브라우저로 가져올 수 있음을 의미하는 가장 상호 운용 가능한 형식입니다. myhostNode01Cell 비밀번호는 인코딩됩니다. 관리 범위는 다음 코드 샘플에서 보여지는 것처럼 메모리로 키 저장소 구성을 로드할 수 있는 서버 런타임을 판별합니다.<managementScopes xmi:id="ManagementScope_1" scopeName=" (cell):myhostNode01Cell:(node):myhostNode01" scopeType="node"/>
관리 범위가 현재 프로세스 범위 밖인 security.xml 파일에 저장되는 모든 구성 오브젝트는 현재 프로세스에 로드되지 않습니다. 대신 관리 범위는 myhostNode01 노드 내에 포함되는 서버로 로드됩니다. 특정 노드에 있는 모든 애플리케이션 서버는 키 저장소 구성을 볼 수 있습니다.
key.p12 파일 컨텐츠를 나열하여 체인된 인증서를 표시하는 경우 식별 이름(DN)의 공통 이름(CN)이 상주 머신의 호스트 이름입니다. 이 목록을 사용하여 해당 URL 연결별로 호스트 이름을 확인할 수 있습니다. 또한, 사용자 정의 신뢰 관리자에서 호스트 이름을 확인할 수도 있습니다. 자세한 정보는 X.509 인증서 신뢰 의사결정에 대한 신뢰 관리자 제어의 내용을 참조하십시오.
- 기본 키 저장소 컨텐츠
- 다음 샘플 코드는 keytool 목록의 기본 key.p12 파일 컨텐츠를 표시합니다.
keytool -list -v -keystore c:\WebSphere\AppServer\profile\AppSrv01\profiles\config \cells\myhostNode01Cell\nodes\myhostNode01\key.p12 -storetype PKCS12 -storepass *****
${profile_root}\config\cells\${cellname}\nodes\${nodename}> keytool -list -v -keystore ${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell /nodes/myhostNode01/key.p12 -storetype PKCS12 -storepass *****
Keystore type: PKCS12 Keystore provider: IBMJCE Your keystore contains 1 entry Alias name: default Creation date: Dec 31, 1969 Entry type: keyEntry Certificate chain length: 2 Certificate[1]: Owner: CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Serial number: 4e48f29aafea6 Valid from: 2/7/08 1:03 PM until: 2/6/09 1:03 PM Certificate fingerprints: MD5: DB:FE:65:DB:40:13:F4:48:A4:CE:2F:4F:60:A5:FF:2C SHA1: A1:D4:DD:4B:DE:7B:45:F7:4D:AA:6A:FC:92:38:78:53:7A:99:F1:DC Certificate[2]: Owner: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Serial number: 4e48e5fd4eae3 Valid from: 2/7/08 1:03 PM until: 2/2/28 1:03 PM Certificate fingerprints: MD5: A5:9B:05:78:CF:AB:89:94:C9:2E:F1:87:34:B3:FC:75 SHA1: 43:74:B6:C7:FA:C1:0F:19:F2:51:2B:17:60:0D:34:93:55:BF:D5:D2 ******************************************* *******************************************
기본 별명과 keyEntry 항목 유형은 개인 키가 전체 개인 인증서를 표시하는 공개 키와 같이 저장되도록 표시합니다. 인증서는 CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US로 소유되며 기본 루트 인증서 CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US로 발행됩니다. 기본적으로 인증서는 작성일로부터 1년 동안 유효합니다.
또한, 일부 서명자 교환 상황에서 인증서 지문으로 전송된 인증서가 수정되지 않도록 합니다. 인증서에 대한 해시 알고리즘 출력인 지문은 클라이언트 측에서 자동 서명자 교환 중에 WebSphere Application Server 런타임으로 표시됩니다. 클라이언트 지문은 서버에서 표시되는 지문과 일치해야 합니다. 일반적으로 런타임은 SHA1 해시 알고리즘을 사용하여 인증서 지문을 생성합니다.
- 기본 신뢰 저장소
- 다음 샘플 코드에서 키 저장소 오브젝트는 기본 trust.p12
신뢰 저장소를 나타냅니다. 신뢰 저장소에는 신뢰 의사결정을 작성할 때 필요한
서명자 인증서가 포함됩니다.
<keyStores xmi:id="KeyStore_2" name="NodeDefaultTrustStore" password="{xor}349dkckdd=" provider="IBMJCE" location="${WAS_INSTALL_ROOT} /config/cells/myhostNode01Cell/nodes/myhostNode01/trust.p12" type="PKCS12" fileBased="true" hostList="" initializeAtStartup="true" managementScope="ManagementScope_1"/>
- 기본 신뢰 저장소 컨텐츠
- 다음 샘플 코드는 keytool 목록의 기본 trust.p12
신뢰 저장소 컨텐츠를 표시합니다. 기본적으로 샘플 체인된 인증서의 경우 루트 인증서 서명자는
신뢰 저장소에 포함됩니다. 루트 서명자 별명과 trustedCertEntry 항목 유형은
인증서가 공개 키임을 표시합니다. 개인 키는 이 신뢰 저장소에 저장되지 않습니다. 또한,
모든 신뢰 저장소에는 기본 DataPower 인증서가 포함됩니다.
keytool -list -v -keystore c:\WebSphere\AppServer\profile\AppSrv01\profiles\config\cells\myhostNode01Cell \nodes\myhostNode01\trust.p12 -storetype PKCS12 -storepass *****
${profile_root}\config\cells\${cellname}\nodes\${nodename}> keytool -list -v -keystore ${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell /nodes/myhostNode01/trust.p12 -storetype PKCS12 -storepass *****
Keystore type: PKCS12 Keystore provider: IBMJCE Your keystore contains 2 entries Alias name: root Creation date: Dec 31, 1969 Entry type: trustedCertEntry Owner: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Serial number: 4e48e5fd4eae3 Valid from: 2/7/08 1:03 PM until: 2/2/28 1:03 PM Certificate fingerprints: MD5: A5:9B:05:78:CF:AB:89:94:C9:2E:F1:87:34:B3:FC:75 SHA1: 43:74:B6:C7:FA:C1:0F:19:F2:51:2B:17:60:0D:34:93:55:BF:D5:D2 ******************************************* ******************************************* Alias name: datapower Creation date: Dec 31, 1969 Entry type: trustedCertEntry Owner: OU=Root CA, O="DataPower Technology, Inc.", C=US Issuer: OU=Root CA, O="DataPower Technology, Inc.", C=US Serial number: 0 Valid from: 6/11/03 1:23 PM until: 6/6/23 1:23 PM Certificate fingerprints: MD5: 18:AC:86:D1:9A:90:A2:AE:8B:28:F9:A8:75:C8:A9:DB SHA1: A9:BA:A4:B5:BC:26:2F:5D:2A:80:93:CA:BA:F4:31:05:F2:54:14:17