Konfigurowanie szyfrowania Let's Encrypt dla Maximo Application Suite na platformie Microsoft Azure

Po zainstalowaniu pakietu Maximo® Application Suite w serwisie Microsoft™ Azure, Maximo Application Suite korzysta z samopodpisanych certyfikatów. Aby użyć powszechnie znanych certyfikatów podpisanych przez ośrodek certyfikacji jako Let's Encrypt, można zainstalować i skonfigurować Let's Encrypt na serwerze Microsoft Azure.

Zanim rozpoczniesz

Aby skonfigurować szyfrowanie, należy utworzyć nazwę użytkownika usługi w usłudze Microsoft Azure . Więcej informacji na ten temat zawiera sekcja https://cert-manager.io/docs/configuration/acme/dns01/azuredns/#service-principal

Informacje o tym zadaniu

Menedżer certyfikatów może tworzyć i usuwać rekordy DNS-01 w systemie DNS Microsoft Azure . Jednak serwer DNS musi najpierw uwierzytelnić się w usłudze Microsoft Azure . W poniższej metodzie do skonfigurowania usługi Let's Encrypt używane jest główne uwierzytelnianie usługi Microsoft Azure .

Procedura

  1. Utwórz nazwę użytkownika usługi w usłudze Microsoft Azure , używając parametrów połączenia z nazwą użytkownika usługi.
    Na przykład:
    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
    Wskazówka: W przypadku wszystkich przykładów należy zastąpić parametry podane w przykładzie własnymi parametrami.
  2. Zaloguj się do serwisu Microsoft Azure , używając szczegółów połączenia z nazwą użytkownika usługi.
    az login --service-principal -u $AZURE_CERT_MANAGER_SP_APP_ID -p $AZURE_CERT_MANAGER_SP_PASSWORD --tenant $AZURE_TENANT_ID
  3. Utwórz rolę DNS Contributor , aby powiązać strefę DNS z nazwą użytkownika usługi.
    Na przykład:
    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. W polu Rekord DNSkliknij domenę i utwórz A zestaw rekordów *.<<Cluster_unique_String>>.<<DNS_NAME>>.
    Na przykład *.i4l7mh.mas4azure.com, gdzie i4l7mh jest unikalnym łańcuchem klastra, a mas4azure jest nazwą DNS.
    Wskazówka: Użyj tej samej wartości, która jest używana w rekordzie A .
  5. Zaloguj się do klastra Red Hat® OpenShift® .
    Na przykład:
    oc login --token=<<token_number>> --server=https://api.masocp-i4l7mh.mas4azure.com:6443
  6. Utwórz klucz tajny azuredns-config, który zawiera hasło użytkownika usługi.
    Na przykład:
    oc create secret generic azuredns-config --from-literal=client-secret=$AZURE_CERT_MANAGER_SP_PASSWORD -n ibm-common-services
  7. W konsoli Red Hat OpenShift utwórz ClusterIssuer na karcie Instancje w grupie Strona główna > API Explorer cert-manager.io .
    Na przykład:
    
    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
    
    Uwaga: W pakiecie Maximo Application Suite 8.10poczekaj na ponowne wygenerowanie tras i zweryfikuj wygenerowane trasy, aby sprawdzić, czy certyfikat został podpisany przez Let's encrypt.
  8. W konsoli Red Hat OpenShift , w obszarze Strona główna > API Explorer wyszukaj pakiet w przestrzeni nazw.
  9. W konsoli Red Hat OpenShift w obszarze Administration > CustomResourceDefinitionwybierz kartę Instances dla Suite CRD.
  10. Kliknij zasób niestandardowy i na karcie Instancje wybierz opcję YAML , aby dodać parametry cluster issue i domain w sekcji spec .
    ---
    spec:
      certificateIssuer:
        duration: 8760h0m0s
        name: prod-route53-issuer
        renewBefore: 720h0m0s
      domain: <<masinstance_id>>.<<domain>>
  11. Usuń sekcję finalizer z tego samego pliku YAML pakietu, aby wymusić uzgadnianie, a następnie zapisz plik YAML.
    
    finalizers: 
      - core.mas.ibm.com/finalizer
  12. W sekcji Sieć w obszarze Trasy projektu mas-< mas_instance_id> -corepoczekaj, aż Trasy zostaną ponownie wygenerowane dla przestrzeni nazw.
    Uwaga: Ponowne generowanie tras zajmuje trochę czasu.
    Certyfikat w trasach jest podpisany przez szyfrowanie.
  13. Zaloguj się do ekranu administratora Maximo Application Suite i sprawdź poprawność osoby podpisującej certyfikat.