Microsoft Azure での Maximo Application Suite のための Let 's Encrypt の構成

Maximo® Application SuiteMicrosoft Azureにインストールすると、 Maximo Application Suite は自己署名証明書を使用します。 Let 's Encrypt として認証局によって署名された既知の証明書を使用する場合は、 Microsoft Azureに Let 's Encrypt をインストールして構成することができます。

始める前に

Let 's Encrypt を構成するには、 Microsoft Azure 内にサービス・プリンシパルを作成する必要があります。 詳しくは、 https://cert-manager.io/docs/configuration/acme/dns01/azuredns/#service-principal を参照してください。

このタスクについて

cert-manager は、 Microsoft Azure DNS で DNS-01 レコードを作成してから削除できます。 ただし、最初に DNS を Microsoft Azure で認証する必要があります。 以下の方法では、 Microsoft Azure サービス・プリンシパル認証を使用して、Let 's Encrypt を構成します。

手順

  1. サービス・プリンシパルの接続パラメーターを使用して、 Microsoft Azure でサービス・プリンシパルを作成します。
    以下に例を示します。
    AZURE_DNS_ZONE_RESOURCE_GROUP=masperf
    
    AZURE_DNS_ZONE=mas4azure.com
    
    AZURE_CERT_MANAGER_SP_APP_ID=3xx721x5-xx3x-4x10-x39x-xxx31335405
    
    AZURE_CERT_MANAGER_SP_PASSWORD=X87xXxX6q6xxXxXxx7nYhZmbXxxxX~Tho
    
    AZURE_TENANT_ID=xxx67057-50x9-4xx4-98x3-xxxx64xxx9x9
    
    AZURE_SUBSCRIPTION_ID=x2xx5467-2502-4b05-x78x-744604x6531x
    ヒント: すべての例で、例に示されているパラメーターを独自のパラメーターに置き換えます。
  2. サービス・プリンシパル接続の詳細を使用して、 Microsoft Azure にログインします。
    az login --service-principal -u $AZURE_CERT_MANAGER_SP_APP_ID -p $AZURE_CERT_MANAGER_SP_PASSWORD --tenant $AZURE_TENANT_ID
  3. DNS Contributor 役割を作成して、DNS ゾーンをサービス・プリンシパルに関連付けます。
    以下に例を示します。
    DNS_ID=$(az network dns zone show --name $AZURE_DNS_ZONE --resource-group $AZURE_DNS_ZONE_RESOURCE_GROUP --query "id" --output tsv)
    
    az role assignment create --role "DNS Zone Contributor"  --assignee-object-id $AZURE_CERT_MANAGER_SP_APP_ID --assignee-principal-type ServicePrincipal --scope $DNS_ID
    
    
  4. 「DNS レコード (DNS Record)」で、ドメインをクリックし、 A レコード・セット *.<<Cluster_unique_String>>.<<DNS_NAME>>を作成します。
    例えば、 *.i4l7mh.mas4azure.comと入力します。ここで、 i4l7mh はクラスター固有のストリング、 mas4azure は DNS 名です。
    ヒント: A レコードで使用されている値と同じ値を使用してください。
  5. Red Hat® OpenShift® クラスターにログインします。
    以下に例を示します。
    oc login --token=<<token_number>> --server=https://api.masocp-i4l7mh.mas4azure.com:6443
  6. シークレット azuredns-configを作成します。これには、サービス・プリンシパルのパスワードが含まれます。
    以下に例を示します。
    oc create secret generic azuredns-config --from-literal=client-secret=$AZURE_CERT_MANAGER_SP_PASSWORD -n ibm-common-services
  7. Red Hat OpenShift コンソールで、 Home > API Explorer cert-manager.io グループの Instances タブから ClusterIssuer を作成する。
    以下に例を示します。
    
    apiversion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: letsencrypt-prod
      namespace: ibm-common-services 
    spec:
      acme:
        server: https://acme-v02.api.letsencrypt.org/directory 
        email: username.ibm.com
        privateKeySecretRef:
          name: letsencrypt-prod
        solvers:
          - dns01:
            azureDNS:
              clientID: 3xx721x5-xx3x-4x10-x39x-xxx31335405
              clientSecretSecretRef:
                name: azuredns-config
                key: client-secret
              subscriptionID: x2xx5467-2502-4b05-x78x-744604x6531x
              tenantID: xxx67057-50x9-4xx4-98x3-xxxx64xxx9x9
              resourceGroupName: masperf
              hostedZoneName: mas4azure.com
              environment: AzurePublicCloud
    
    注: Maximo Application Suite 8.10では、経路が再生成されるまで待機し、生成された経路を検証して、証明書が Let 's encrypt によって署名されているかどうかを確認します。
  8. Red Hat OpenShift コンソールで、 Home > API Explorer から、ネームスペースのスイートを検索します。
  9. Red Hat OpenShift コンソールの Administration > CustomResourceDefinition から、 Suite CRDInstances タブを選択します。
  10. カスタム・リソースをクリックし、 「インスタンス」 タブで 「YAML」 を選択して、 spec セクションに cluster issue パラメーターと domain パラメーターを追加します。
    ---
    spec:
      certificateIssuer:
        duration: 8760h0m0s
        name: prod-route53-issuer
        renewBefore: 720h0m0s
      domain: <<masinstance_id>>.<<domain>>
  11. 同じ Suite YAML から finalizer セクションを削除して調整を強制し、YAML ファイルを保存します。
    
    finalizers: 
      - core.mas.ibm.com/finalizer
  12. 「ネットワーキング」 のプロジェクト mas-< mas_instance_id> -core「経路」 の下で、 「経路」 が名前空間に対して再生成されるのを待ちます。
    注: 「経路」 の再生成には時間がかかります。
    ルート内の証明書は、Let 's encrypt によって署名されます。
  13. Maximo Application Suite 管理者画面にログインし、証明書の署名者を確認します。