Let' s Encrypt für Maximo Application Suite in Microsoft Azure konfigurieren

Wenn Sie Maximo® Application Suite unter Microsoft Azureinstallieren, verwendet Maximo Application Suite selbst signierte Zertifikate. Wenn Sie gängige Zertifikate verwenden möchten, die von der Zertifizierungsstelle als Let' s Encrypt signiert wurden, können Sie Let' s Encrypt in Microsoft Azureinstallieren.

Vorbereitende Schritte

Zum Konfigurieren von Let' s Encrypt muss ein Service-Principal in Microsoft Azure erstellt werden. Weitere Informationen finden Sie unter https://cert-manager.io/docs/configuration/acme/dns01/azuredns/#service-principal .

Informationen zu diesem Vorgang

Der Zertifikatmanager kann DNS-01 -Datensätze in Microsoft Azure DNS erstellen und löschen. Der DNS muss sich jedoch zuerst bei Microsoft Azure authentifizieren. Bei der folgenden Methode wird die Microsoft Azure Service-Principal-Authentifizierung verwendet, um Let' s Encrypt zu konfigurieren.

Vorgehensweise

  1. Erstellen Sie einen Serviceprinzipal in Microsoft Azure mithilfe der Verbindungsparameter des Serviceprinzipals.
    Beispiel:
    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
    Tipp: Ersetzen Sie für alle Beispiele die im Beispiel angegebenen Parameter durch Ihre eigenen Parameter.
  2. Melden Sie sich bei Microsoft Azure mit den Service-Principal-Verbindungsdetails an.
    az login --service-principal -u $AZURE_CERT_MANAGER_SP_APP_ID -p $AZURE_CERT_MANAGER_SP_PASSWORD --tenant $AZURE_TENANT_ID
  3. Erstellen Sie die Rolle DNS Contributor , um die DNS-Zone dem Service-Principal zuzuordnen.
    Beispiel:
    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. Klicken Sie in DNS-Datensatzauf Ihre Domäne und erstellen Sie A Datensatzgruppe *.<<Cluster_unique_String>>.<<DNS_NAME>>.
    Beispiel: *.i4l7mh.mas4azure.com, wobei i4l7mh die eindeutige Zeichenfolge des Clusters und mas4azure der DNS-Name ist.
    Tipp: Verwenden Sie denselben Wert wie im Datensatz A .
  5. Melden Sie sich beim Red Hat® OpenShift® -Cluster an.
    Beispiel:
    oc login --token=<<token_number>> --server=https://api.masocp-i4l7mh.mas4azure.com:6443
  6. Erstellen Sie einen geheimen Schlüssel azuredns-config, der das Kennwort für den Service-Principal enthält.
    Beispiel:
    oc create secret generic azuredns-config --from-literal=client-secret=$AZURE_CERT_MANAGER_SP_PASSWORD -n ibm-common-services
  7. Erstellen Sie in der Konsole Red Hat OpenShift auf der Registerkarte Instanzen der Gruppe Home > API Explorer cert-manager.io eine ClusterIssuer .
    Beispiel:
    
    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
    
    Anmerkung: Warten Sie in Maximo Application Suite 8.10, bis die Routen neu generiert wurden, und überprüfen Sie die generierten Routen, um zu prüfen, ob das Zertifikat von Let' s encrypt signiert wurde.
  8. Suchen Sie in der Konsole Red Hat OpenShift unter Home > API Explorer nach einer Suite in Ihrem Namespace.
  9. Wählen Sie in der Konsole Red Hat OpenShift unter Administration > CustomResourceDefinition die Registerkarte Instanzen für Ihr Suite CRD.
  10. Klicken Sie auf Ihre angepasste Ressource und wählen Sie auf der Registerkarte Instanzen im Abschnitt spec die Option YAML aus, um Parameter cluster issue und domain hinzuzufügen.
    ---
    spec:
      certificateIssuer:
        duration: 8760h0m0s
        name: prod-route53-issuer
        renewBefore: 720h0m0s
      domain: <<masinstance_id>>.<<domain>>
  11. Löschen Sie den Abschnitt finalizer aus derselben Suite-YAML, um einen Datenabgleich zu erzwingen, und speichern Sie dann die YAML-Datei.
    
    finalizers: 
      - core.mas.ibm.com/finalizer
  12. Warten Sie in Networking unter Routes des Projekts mas-< mas_instance_id> -core, bis die Routes für den Namespace neu generiert werden.
    Anmerkung: Die Neugenerierung der Routen dauert einige Zeit.
    Das Zertifikat in den Routen wird von Let' s encrypt signiert.
  13. Melden Sie sich bei der Administratoranzeige von Maximo Application Suite an und überprüfen Sie den Unterzeichner des Zertifikats.