Maximo® Application Suite を Microsoft Azureにインストールすると、 Maximo Application Suite は自己署名証明書を使用します。 Let 's Encrypt として認証局によって署名された既知の証明書を使用する場合は、 Microsoft Azureに Let 's Encrypt をインストールして構成することができます。
このタスクについて
cert-manager は、 Microsoft Azure DNS で DNS-01 レコードを作成してから削除できます。 ただし、最初に DNS を Microsoft Azure で認証する必要があります。 以下の方法では、 Microsoft Azure サービス・プリンシパル認証を使用して、Let 's Encrypt を構成します。
手順
- サービス・プリンシパルの接続パラメーターを使用して、 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
ヒント: すべての例で、例に示されているパラメーターを独自のパラメーターに置き換えます。
- サービス・プリンシパル接続の詳細を使用して、 Microsoft Azure にログインします。
az login --service-principal -u $AZURE_CERT_MANAGER_SP_APP_ID -p $AZURE_CERT_MANAGER_SP_PASSWORD --tenant $AZURE_TENANT_ID
- 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
- 「DNS レコード (DNS Record)」で、ドメインをクリックし、 A レコード・セット
*.<<Cluster_unique_String>>.<<DNS_NAME>>を作成します。例えば、 *.i4l7mh.mas4azure.comと入力します。ここで、 i4l7mh はクラスター固有のストリング、 mas4azure は DNS 名です。
ヒント: A レコードで使用されている値と同じ値を使用してください。
- Red Hat® OpenShift® クラスターにログインします。
以下に例を示します。
oc login --token=<<token_number>> --server=https://api.masocp-i4l7mh.mas4azure.com:6443
- シークレット azuredns-configを作成します。これには、サービス・プリンシパルのパスワードが含まれます。
以下に例を示します。
oc create secret generic azuredns-config --from-literal=client-secret=$AZURE_CERT_MANAGER_SP_PASSWORD -n ibm-common-services
- Red Hat OpenShift コンソールで、
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 によって署名されているかどうかを確認します。
- Red Hat OpenShift コンソールで、 から、ネームスペースのスイートを検索します。
- Red Hat OpenShift コンソールの から、 Suite CRD の Instances タブを選択します。
- カスタム・リソースをクリックし、 「インスタンス」 タブで 「YAML」 を選択して、 spec セクションに cluster issue パラメーターと domain パラメーターを追加します。
---
spec:
certificateIssuer:
duration: 8760h0m0s
name: prod-route53-issuer
renewBefore: 720h0m0s
domain: <<masinstance_id>>.<<domain>>
- 同じ Suite YAML から finalizer セクションを削除して調整を強制し、YAML ファイルを保存します。
finalizers:
- core.mas.ibm.com/finalizer
- 「ネットワーキング」 のプロジェクト mas-< mas_instance_id> -coreの 「経路」 の下で、 「経路」 が名前空間に対して再生成されるのを待ちます。
ルート内の証明書は、Let 's encrypt によって署名されます。
- Maximo Application Suite 管理者画面にログインし、証明書の署名者を確認します。