
![[16.0.0.4 and later]](../ng_v16004plus.gif)
z/OS 운영 체제에서 TLS의 SAF 인증서 및 키 링 구성
인증서 또는 권한 부여, 인증의 요청 등의 보안 관련 기능에 대해 SAF(System Authorization Facility)를 사용할 수 있도록 기존 집합체를 마이그레이션합니다.
시작하기 전에
제어기 또는 멤버에 대해 정의된 문자열로 관리 보안에 사용되는 집합체 인증서를 표시하십시오.
예를 들어, 인증서의 식별 이름(DN)이 다음과 같다고 가정합니다.
DN=<hostname>, O=IBM, OU=Collective
server.xml 파일의 식별 이름에서 "OU=Collective" 문자열로 rdn 속성을 구성하십시오.
<collectiveCertificate rdn="OU=Collective"></collectiveCertificate>
이 태스크 정보
주제 식별 이름의 조직 단위(OU) OU('Collective') 컴포넌트는 문자열을 정의하며 인증서가 다음 프로시저에 대해 인식되도록 표시합니다.
다음의 샘플 RACF® 명령에서, CONTROL은 제어기의 RACF 사용자 ID이며 MEMBER는 멤버의 RACF 사용자 ID입니다.
프로시저
- 제어기의 SAF 인증서 및 키 링을 작성하십시오.
- 집합체 제어기 CA(CERTAUTH) 인증서를 작성하십시오.
RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('CONTROLLER ROOT') O('IBM') C('US'))SIZE(2048)WITHLABEL('CONTROLLER ROOT') TRUST NOTAFTER(DATE(2035/12/31))
- 집합체 제어기 CA에서 서명한 집합체 제어기의 서버 인증서를 작성하십시오. 중요사항: 브라우저 URL의 호스트 이름 불일치를 피할 수 있도록 controller.host.name의 텍스트를 제어기 호스트 이름으로 대체하십시오.
RACDCERT ID(CONTROL) GENCERT SUBJECTSDN(CN('controller.host.name') O('IBM') OU('Collective')) WITHLABEL('CONTROLLER') SIGNWITH(CERTAUTH LABEL('CONTROLLER ROOT')) SIZE(2048) NOTAFTER(DATE(2020/12/30))
- 집합체 제어기의 키 링을 작성하십시오.
RACDCERT ID(CONTROL) ADDRING(CONTROL.KEYRING)
- 집합체 제어기 CA를 제어기 키 링에 연결하십시오.
RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT') RING(CONTROL.KEYRING))ID(CONTROL)
- 제어기 서버 인증서를 제어기 키 링에 연결하십시오.
RACDCERT CONNECT(ID(CONTROL) LABEL('CONTROLLER') RING(CONTROL.KEYRING)) ID(CONTROL)
- 집합체 제어기 CA(CERTAUTH) 인증서를 작성하십시오.
- 멤버의 SAF 인증서 및 키 링을 작성하십시오.
- 집합체 멤버 CA(CERTAUTH) 인증서를 작성하십시오.
RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('MEMBER ROOT') O('IBM') C('US'))SIZE(2048)WITHLABEL('MEMBER ROOT') TRUST NOTAFTER(DATE(2035/12/31))
- 집합체 멤버 CA를 제어기 키 링에 연결하십시오.
RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT') RING(CONTROL.KEYRING))ID(CONTROL)
- 집합체 멤버 CA에서 서명한 집합체 멤버의 서버 인증서를 작성하십시오. 중요사항: 브라우저 URL의 호스트 이름 불일치를 피할 수 있도록 member.host.name의 텍스트를 멤버 호스트 이름으로 대체하십시오.
RACDCERT ID(MEMBER) GENCERT SUBJECTSDN(CN('member.host.name') O('IBM') OU('Collective')) WITHLABEL('MEMBER') SIGNWITH(CERTAUTH LABEL('MEMBER ROOT')) SIZE(2048) NOTAFTER(DATE(2020/12/30))
- 집합체 멤버의 키 링 MEMBER.KEY를 작성하십시오.
RACDCERT ID(MEMBER) ADDRING(MEMBER.KEY)
- 집합체 멤버 CA를 MEMBER.KEY 키 링에 연결하십시오.
RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT') RING(MEMBER.KEY)) ID(MEMBER)
- 멤버 서버 인증서를 MEMBER.KEY 키 링에 연결하십시오.
RACDCERT CONNECT(ID(MEMBER) LABEL('MEMBER') RING(MEMBER.KEY)) ID(MEMBER)
- 멤버 키 링을 나열하십시오.
키 링에서 두 개의 인증서가 표시되어야 합니다.
RACDCERT ID(MEMBER) LISTRING(MEMBER.KEY)
Digital ring information for user MEMBER: >MEMBER.KEY< Certificate Label Name Cert Owner USAGE DEFAULT -------------------------------- ------------ -------- ------- MEMBER ROOT CERTAUTH CERTAUTH NO MEMBER ID(MEMBER) PERSONAL NO
- 멤버의 두 번째 키 링 MEMBER.TRUST를 작성하십시오.
RACDCERT ID(MEMBER) ADDRING(MEMBER.TRUST)
- 집합체 제어기 CA를 MEMBER.TRUST 키 링에 연결하십시오.
RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT') RING(MEMBER.TRUST))ID(MEMBER)
- MEMBER.TRUST 키 링을 나열하십시오. 키 링에서 한 개의 인증서가 표시되어야 합니다.
RACDCERT ID(MEMBER) LISTRING(MEMBER.TRUST)
Digital ring information for user MEMBER: Ring: >MEMBER.TRUST< Certificate Label Name Cert Owner USAGE DEFAULT -------------------------------- ------------ -------- ------- CONTROLLER ROOT CERTAUTH CERTAUTH NO
- 집합체 멤버 CA(CERTAUTH) 인증서를 작성하십시오.
- 제어기 키 링을 나열하십시오. 키 링에서 세 개의 인증서가 표시되어야 합니다.
RACDCERT ID(CONTROL)LISTRING(CONTROL.KEYRING)
Ring: >CONTROL.KEYRING< Certificate Label Name Cert Owner USAGE DEFAULT -------------------------------- ------------ -------- ------- MEMBER ROOT CERTAUTH CERTAUTH NO CONTROLLER ROOT CERTAUTH CERTAUTH NO CONTROLLER ID(CONTROL) PERSONAL NO
- 제어기 및 멤버에 자신이 소유한 키 링 및 인증서를 사용할 권한을 부여하십시오.
FACILITY 클래스 프로파일 또는 RDATALIB 프로파일을 사용할 수 있습니다.
다음 예제에서는 CONTROL 및 MEMBER 사용자에 대해 FACILITY 클래스 권한을 사용합니다.
PERMIT IRR.DIGTCERT.LIST CLASS(FACILITY) ID(CONTROL MEMBER) ACCESS(READ) PERMIT IRR.DIGTCERT.LISTRING CLASS(FACILITY) ID(CONTROL MEMBER) ACCESS(READ) SETR RACLIST(FACILITY) REFRESH
다음 예제에서는 CONTROL 및 MEMBER 사용자에 대해 RDATALIB 클래스 권한을 사용합니다.
PERMIT CONTROL.**.LST CLASS(RDATALIB) ID(CONTROL) ACCESS(READ) PERMIT MEMBER.**.LST CLASS(RDATALIB) ID(MEMBER) ACCESS(READ) SETR RACLIST(RDATALIB) REFRESH
- 제어기 및 멤버 serverl.xml 파일에 z/OS® 보안 기능을 추가하십시오.
- 제어기 및 멤버를 중지하십시오. 제어기 및 멤버의 각 server.xml 파일 사본을 백업 파일에 복사하십시오.
- server.xml 파일을 계속 편집하십시오.
제어기 및 멤버 server.xml 파일에서 featureManager 요소에 다음 기능을 추가하십시오.
<feature>ssl-1.0</feature> <feature>zosSecurity-1.0</feature>
- 제어기 및 멤버가 SAF 서비스에 액세스할 수 있도록 서버 클래스 프로파일을 작성하십시오.
제품 문서에서 z/OS용 Liberty에서
z/OS 권한 부여 서비스 사용을 참조하십시오.
그리고 제어기 및 멤버 server.xml 파일에서 다음 행을
다음의 5개 행으로 대체하십시오.<quickStartSecurity userName="admin" userPassword="adminpw" />
<safAuthorization id="saf" racRouteLog="ASIS" /> <safCredentials profilePrefix="BBGZDFLT" unauthenticatedUser="WSGUEST"/> <safRegistry id="saf" realm="WASRealm" /> <safRoleMapper profilePattern="%profilePrefix%.%role%" /> <zosLogging enableLogToMVS="true"></zosLogging>
Admin Center에 대한 액세스를 제어하는 EJBROLE 프로파일은 BBGZDFLT.Administrator입니다.
- 제어기 및 멤버 server.xml 파일에서 다음 행을 추가하여
collectiveCertificate 문자열을 지정하십시오.
<collectiveCertificate rdn="OU=Collective"></collectiveCertificate>
- 제어기 server.xml 파일에서 키 파일 이름을 SAF 키 링 이름으로 대체하십시오.
- defaultKeyStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/key.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
- defaultTrustStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/trust.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
- serverIdentity ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/serverIdentity.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
- collectiveTrust ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/collectiveTrust.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
collectiveRootKeys 키 저장소 요소는 변경하지 마십시오.
- defaultKeyStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/key.jks"/>를 다음 행으로 대체하십시오.
- 멤버 server.xml 파일에서 키 파일 이름을 SAF 키 링 이름으로 대체하십시오.
- defaultKeyStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/key.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///MEMBER.KEY" type="JCERACFKS" fileBased="false" readOnly="true" />
- defaultTrustStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/trust.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///MEMBER.TRUST" type="JCERACFKS" fileBased="false" readOnly="true" />
- serverIdentity ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/serverIdentity.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///MEMBER.KEY" type="JCERACFKS" fileBased="false" readOnly="true" />
- collectiveTrust ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/collectiveTrust.jks"/>를 다음 행으로 대체하십시오.
location="safkeyring:///MEMBER.TRUST" type="JCERACFKS" fileBased="false" readOnly="true" />
- defaultKeyStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/key.jks"/>를 다음 행으로 대체하십시오.
- 제어기 및 멤버를 시작하십시오.
하위 주제
- 집합체에서 SSH 관련 문제점 방지
집합체에서 SSH 관련 문제점 방지하기에 대해 알아봅니다. 보안 문제점은 일반적으로 보안이 너무 엄격하여 자원에 액세스하지 못하는 사용자와 관련되어 있습니다. SSH 구성 옵션 StrictModes는 보안이 너무 허술할 때 상반된 문제점에 대해 공용 및 개인 키 파일을 보호합니다. SSH는 비밀번호 인증 없는 시스템 간의 보안 통신을 제공하지만, 특정 디렉토리와 파일에 대한 권한이 충분히 엄격하지 않으면 SSH가 작동되지 않습니다.
상위 주제: Liberty 집합체의 보안 구성

파일 이름: tagt_wlp_collective_zos_tls.html