For z/OS platforms[16.0.0.4 and later]

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>

이 태스크 정보

개별 인증 기관 서명자(CA)는 집합체 제어기를 멤버와 구분합니다. SAF로 제어기는 멤버를 신뢰하며 멤버는 제어기를 신뢰합니다.

주제 식별 이름의 조직 단위(OU) OU('Collective') 컴포넌트는 문자열을 정의하며 인증서가 다음 프로시저에 대해 인식되도록 표시합니다.

다음의 샘플 RACF® 명령에서, CONTROL은 제어기의 RACF 사용자 ID이며 MEMBER는 멤버의 RACF 사용자 ID입니다.

프로시저

  1. 제어기의 SAF 인증서 및 키 링을 작성하십시오.
    1. 집합체 제어기 CA(CERTAUTH) 인증서를 작성하십시오.
      RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('CONTROLLER ROOT') 
      O('IBM') C('US'))SIZE(2048)WITHLABEL('CONTROLLER ROOT') 
      TRUST NOTAFTER(DATE(2035/12/31))
    1. 집합체 제어기 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))  
               
    2. 집합체 제어기의 키 링을 작성하십시오.
      RACDCERT ID(CONTROL) ADDRING(CONTROL.KEYRING)
    3. 집합체 제어기 CA를 제어기 키 링에 연결하십시오.
      RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT')  
      RING(CONTROL.KEYRING))ID(CONTROL)
    4. 제어기 서버 인증서를 제어기 키 링에 연결하십시오.
      RACDCERT CONNECT(ID(CONTROL) LABEL('CONTROLLER') 
      RING(CONTROL.KEYRING)) ID(CONTROL)  
  2. 멤버의 SAF 인증서 및 키 링을 작성하십시오.
    1. 집합체 멤버 CA(CERTAUTH) 인증서를 작성하십시오.
      RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('MEMBER ROOT')  
      O('IBM') C('US'))SIZE(2048)WITHLABEL('MEMBER ROOT')  
      TRUST NOTAFTER(DATE(2035/12/31))
    2. 집합체 멤버 CA를 제어기 키 링에 연결하십시오.
      RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT')  
      RING(CONTROL.KEYRING))ID(CONTROL)
    3. 집합체 멤버 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))
    4. 집합체 멤버의 키 링 MEMBER.KEY를 작성하십시오.
      RACDCERT ID(MEMBER) ADDRING(MEMBER.KEY)
    5. 집합체 멤버 CA를 MEMBER.KEY 키 링에 연결하십시오.
      RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT')
      RING(MEMBER.KEY)) ID(MEMBER)    
              
    6. 멤버 서버 인증서를 MEMBER.KEY 키 링에 연결하십시오.
      RACDCERT CONNECT(ID(MEMBER) LABEL('MEMBER')   
      RING(MEMBER.KEY)) ID(MEMBER)
    7. 멤버 키 링을 나열하십시오.

      키 링에서 두 개의 인증서가 표시되어야 합니다.

      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       
         
    8. 멤버의 두 번째 키 링 MEMBER.TRUST를 작성하십시오.
      RACDCERT ID(MEMBER) ADDRING(MEMBER.TRUST)
    9. 집합체 제어기 CA를 MEMBER.TRUST 키 링에 연결하십시오.
      RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT')
      RING(MEMBER.TRUST))ID(MEMBER)
    10. 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     
         
  3. 제어기 키 링을 나열하십시오. 키 링에서 세 개의 인증서가 표시되어야 합니다.
    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     
  4. 제어기 및 멤버에 자신이 소유한 키 링 및 인증서를 사용할 권한을 부여하십시오.

    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
  5. 제어기 및 멤버 serverl.xml 파일에 z/OS® 보안 기능을 추가하십시오.
    1. 제어기 및 멤버를 중지하십시오. 제어기 및 멤버의 각 server.xml 파일 사본을 백업 파일에 복사하십시오.
    2. server.xml 파일을 계속 편집하십시오. 제어기 및 멤버 server.xml 파일에서 featureManager 요소에 다음 기능을 추가하십시오.
      <feature>ssl-1.0</feature>
      <feature>zosSecurity-1.0</feature> 
            
    3. 제어기 및 멤버가 SAF 서비스에 액세스할 수 있도록 서버 클래스 프로파일을 작성하십시오. 제품 문서에서 z/OS용 Liberty에서 z/OS 권한 부여 서비스 사용을 참조하십시오. 그리고 제어기 및 멤버 server.xml 파일에서 다음 행을
      <quickStartSecurity userName="admin" userPassword="adminpw" />
      다음의 5개 행으로 대체하십시오.
      <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입니다.

    4. 제어기 및 멤버 server.xml 파일에서 다음 행을 추가하여 collectiveCertificate 문자열을 지정하십시오.
      <collectiveCertificate rdn="OU=Collective"></collectiveCertificate>
  6. 제어기 server.xml 파일에서 키 파일 이름을 SAF 키 링 이름으로 대체하십시오.
    1. defaultKeyStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/key.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///CONTROL.KEYRING"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
    2. defaultTrustStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/trust.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///CONTROL.KEYRING"
      type="JCERACFKS" fileBased="false" readOnly="true" />  
    3. serverIdentity ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/serverIdentity.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///CONTROL.KEYRING"
      type="JCERACFKS" fileBased="false" readOnly="true" /> 
          
    4. collectiveTrust ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/collectiveTrust.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///CONTROL.KEYRING"
      type="JCERACFKS" fileBased="false" readOnly="true" />
          

      collectiveRootKeys 키 저장소 요소는 변경하지 마십시오.

  7. 멤버 server.xml 파일에서 키 파일 이름을 SAF 키 링 이름으로 대체하십시오.
    1. defaultKeyStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/key.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///MEMBER.KEY"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
    2. defaultTrustStore ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/security/trust.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///MEMBER.TRUST"                                 
      type="JCERACFKS" fileBased="false" readOnly="true" />  
    3. serverIdentity ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/serverIdentity.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///MEMBER.KEY"
      type="JCERACFKS" fileBased="false" readOnly="true" />
          
    4. collectiveTrust ID의 키 저장소 요소를 찾으십시오. location="${server.config.dir}/resources/collective/collectiveTrust.jks"/>를 다음 행으로 대체하십시오.
      location="safkeyring:///MEMBER.TRUST"
      type="JCERACFKS" fileBased="false" readOnly="true" />
          
  8. 제어기 및 멤버를 시작하십시오.

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: tagt_wlp_collective_zos_tls.html