For z/OS platforms[16.0.0.4 and later]

z/OS オペレーティング・システムでの TLS 用の SAF 証明書および鍵リングの構成

認証、許可、または証明書の要求などのセキュリティー関連機能で System Authorization Facility (SAF) を使用するために、既存の集合をマイグレーションします。

始める前に

コントローラーおよびメンバー用の定義済みストリングを使用して、管理セキュリティーで使用する集合証明書にマークを付けます。例えば、証明書の識別名 (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 によって署名された、集合コントローラーのサーバー証明書を作成します。
      重要: controller.host.name のテキストは、コントローラーのホスト名に置き換えて、ホスト名がブラウザーの URL と一致しないことがないようにしてください。
      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 によって署名された、集合メンバーのサーバー証明書を作成します。
      重要: member.host.name のテキストは、メンバーのホスト名に置き換えて、ホスト名がブラウザーの URL と一致しないことがないようにしてください。
      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. メンバーの鍵リングをリストします。

      鍵リング内の 2 つの証明書が表示されるはずです。

      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. メンバーの 2 番目の鍵リング 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 鍵リングをリストします。鍵リング内の 1 つの証明書が表示されるはずです。
      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. コントローラーの鍵リングをリストします。鍵リング内の 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. z/OS® セキュリティー・フィーチャーをコントローラーおよびメンバーの serverl.xml ファイルに追加します。
    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 の keystore エレメントを見つけます。 location="${server.config.dir}/resources/security/key.jks"/> を以下の行に置き換えます。
      location="safkeyring:///CONTROL.KEYRING"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
    2. defaultTrustStore ID の keystore エレメントを見つけます。 location="${server.config.dir}/resources/security/trust.jks"/> を以下の行に置き換えます。
      location="safkeyring:///CONTROL.KEYRING"                                 
      type="JCERACFKS" fileBased="false" readOnly="true" />  
    3. serverIdentity ID の keystore エレメントを見つけます。 location="${server.config.dir}/resources/collective/serverIdentity.jks"/> を以下の行に置き換えます。
      location="safkeyring:///CONTROL.KEYRING"                  
      type="JCERACFKS" fileBased="false" readOnly="true" /> 
          
    4. collectiveTrust ID の keystore エレメントを見つけます。 location="${server.config.dir}/resources/collective/collectiveTrust.jks"/> を以下の行に置き換えます。
      location="safkeyring:///CONTROL.KEYRING"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
          

      collectiveRootKeys keystore エレメントは変更しないでください。

  7. メンバーの server.xml ファイルで、鍵ファイル名を SAF 鍵リング名に置き換えます。
    1. defaultKeyStore ID の keystore エレメントを見つけます。 location="${server.config.dir}/resources/security/key.jks"/> を以下の行に置き換えます。
      location="safkeyring:///MEMBER.KEY"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
    2. defaultTrustStore ID の keystore エレメントを見つけます。 location="${server.config.dir}/resources/security/trust.jks"/> を以下の行に置き換えます。
      location="safkeyring:///MEMBER.TRUST"                                 
      type="JCERACFKS" fileBased="false" readOnly="true" />  
    3. serverIdentity ID の keystore エレメントを見つけます。 location="${server.config.dir}/resources/collective/serverIdentity.jks"/> を以下の行に置き換えます。
      location="safkeyring:///MEMBER.KEY"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
          
    4. collectiveTrust ID の keystore エレメントを見つけます。 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