Generowanie żądań podpisania certyfikatów dla usługi Azure Stack Hub

Narzędzie do sprawdzania gotowości usługi Azure Stack Hub służy do tworzenia żądań podpisywania certyfikatów (CRS), które są odpowiednie do wdrożenia usługi Azure Stack Hub, lub do odnawiania certyfikatów dla istniejącego wdrożenia. Ważne jest, aby zażądać, wygenerować i zweryfikować certyfikaty z wystarczającą ilością czasu realizacji, aby je przetestować przed ich wdrożeniem.

Narzędzie służy do żądania następujących certyfikatów na podstawie selektora scenariusza scenariusza CSR w górnej części tego artykułu:

  • Certyfikaty standardowe dla nowego wdrożenia: wybierz pozycję Nowe wdrożenie przy użyciu selektora wybierz selektor scenariusza certyfikatu CSR w górnej części tego artykułu.
  • Odnawianie certyfikatów dla istniejącego wdrożenia: wybierz pozycję Odnawianie przy użyciu selektora scenariusza scenariusza CSR w górnej części tego artykułu.
  • Certyfikaty Typu platforma jako usługa (PaaS): opcjonalnie można wygenerować przy użyciu certyfikatów standardowych i odnawianych. Aby uzyskać więcej informacji, zobacz Wymagania dotyczące certyfikatów infrastruktury kluczy publicznych (PKI) usługi Azure Stack Hub — opcjonalne certyfikaty PaaS .

Wymagania wstępne

Przed wygenerowaniem żądania ściągnięcia dla certyfikatów PKI dla wdrożenia usługi Azure Stack Hub system musi spełniać następujące wymagania wstępne:

  • Musisz być na maszynie z Windows 10 lub nowszym albo Windows Server 2016 lub nowszym.
  • Zainstaluj narzędzie do sprawdzania gotowości usługi Azure Stack Hub z poziomu wiersza polecenia programu PowerShell (5.1 lub nowszego) przy użyciu następującego polecenia cmdlet:
         Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
    
  • Certyfikat musi mieć następujące atrybuty:
    • Nazwa regionu
    • Zewnętrzna w pełni kwalifikowana nazwa domeny (FQDN)
    • Temat

Generowanie certyfikatów CRS dla nowych certyfikatów wdrażania

Uwaga

Podniesienie uprawnień jest wymagane do generowania żądań podpisania certyfikatu. W środowiskach z ograniczeniami, w których podniesienie uprawnień nie jest możliwe, można użyć tego narzędzia do generowania plików szablonów w postaci zwykłego tekstu, które zawierają wszystkie informacje wymagane dla certyfikatów zewnętrznych usługi Azure Stack Hub. Następnie należy użyć tych plików szablonów w sesji z podwyższonym poziomem uprawnień, aby zakończyć generowanie pary kluczy publicznych/prywatnych. Aby uzyskać więcej informacji, zobacz poniżej.

Aby przygotować żądania ściągnięcia do nowych certyfikatów infrastruktury kluczy publicznych usługi Azure Stack Hub, wykonaj następujące kroki:

  1. Otwórz sesję programu PowerShell na maszynie, na której zainstalowano narzędzie sprawdzania gotowości.

  2. Zadeklaruj następujące zmienne:

    Uwaga

    <regionName>.<externalFQDN> tworzy podstawę, na podstawie której są tworzone wszystkie zewnętrzne nazwy DNS w usłudze Azure Stack Hub. W poniższym przykładzie portal będzie następujący: portal.east.azurestack.contoso.com.

    $outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR" # An existing output directory
    $IdentitySystem = "AAD"                     # Use "AAD" for Azure Active Director, "ADFS" for Active Directory Federation Services
    $regionName = 'east'                        # The region name for your Azure Stack Hub deployment
    $externalFQDN = 'azurestack.contoso.com'    # The external FQDN for your Azure Stack Hub deployment
    

Teraz wygeneruj pliki CRS przy użyciu tej samej sesji programu PowerShell. Instrukcje są specyficzne dla formatu tematu wybranego poniżej:

Uwaga

Pierwsza nazwa DNS usługi Azure Stack Hub zostanie skonfigurowana jako pole CN w żądaniu certyfikatu.

  1. Zadeklaruj temat, na przykład:

    $subject = "C=US,ST=Washington,L=Redmond,O=Microsoft,OU=Azure Stack Hub"
    
  1. Wygeneruj pliki CRS, wykonując jedną z następujących czynności:

    • W przypadku środowiska wdrożenia produkcyjnego pierwszy skrypt wygeneruje pliki CRS dla certyfikatów wdrażania:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      
    • Drugi skrypt, jeśli jest to wymagane, używa -IncludeContainerRegistry elementu i wygeneruje żądanie CSR dla Azure Container Registry w tym samym czasie co pliki CRS dla certyfikatów wdrażania:

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -IncludeContainerRegistry
      
    • Trzeci skrypt wygeneruje pliki CRS dla wszystkich opcjonalnych usług PaaS, które zostały zainstalowane:

      # App Services
      New-AzsHubAppServicesCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # DBAdapter (SQL/MySQL)
      New-AzsHubDbAdapterCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # EventHubs
      New-AzsHubEventHubsCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory
      
      # Azure Container Registry
      New-AzsHubAzureContainerRegistryCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory 
      
    • Aby w przypadku środowiska o niskim poziomie uprawnień wygenerować plik szablonu certyfikatu w postaci zwykłego tekstu z zadeklarowanymi wymaganymi atrybutami, dodaj -LowPrivilege parametr :

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem -LowPrivilege
      
    • W przypadku środowiska programistycznego i testowego w celu wygenerowania pojedynczego żądania CSR z alternatywnymi nazwami wielu podmiotów dodaj -RequestType SingleCSR parametr i wartość.

      Ważne

      Nie zalecamy używania tej metody w środowiskach produkcyjnych.

      New-AzsHubDeploymentCertificateSigningRequest -RegionName $regionName -FQDN $externalFQDN -RequestType SingleCSR -subject $subject -OutputRequestPath $OutputDirectory -IdentitySystem $IdentitySystem
      

Wykonaj ostatnie kroki:

  1. Przejrzyj dane wyjściowe:

    Starting Certificate Request Process for Deployment
    CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com
    Present this CSR to your Certificate Authority for Certificate Generation:  C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538.req
    Certreq.exe output: CertReq: Request Created
    
  2. Jeśli użyto parametru -LowPrivilege , plik inf został wygenerowany w podkatalogu C:\Users\username\Documents\AzureStackCSR . Na przykład:

    C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710165538_ClearTextTemplate.inf

    Skopiuj plik do systemu, w którym jest dozwolone podniesienie uprawnień, a następnie podpisz każde żądanie certreq przy użyciu następującej składni: certreq -new <example.inf> <example.req>. Następnie ukończ resztę procesu w tym systemie z podwyższonym poziomem uprawnień, ponieważ wymaga dopasowania nowego certyfikatu podpisanego przez urząd certyfikacji z jego kluczem prywatnym, który jest generowany w systemie z podwyższonym poziomem uprawnień.

  • Region systemu i nazwa domeny zewnętrznej (FQDN) będą używane przez kontroler gotowości do określenia punktu końcowego wyodrębniania atrybutów z istniejących certyfikatów. Jeśli którykolwiek z poniższych rozwiązań ma zastosowanie do danego scenariusza, musisz użyć selektora wybierz selektor scenariusza certyfikatu CSR w górnej części tego artykułu, a następnie wybierz wersję nowego wdrożenia tego artykułu:
    • Chcesz zmienić atrybuty certyfikatów w punkcie końcowym, takie jak podmiot, długość klucza i algorytm podpisu.
    • Chcesz użyć podmiotu certyfikatu, który zawiera tylko atrybut nazwy pospolitej.
  • Przed rozpoczęciem upewnij się, że masz łączność HTTPS dla systemu Usługi Azure Stack Hub.

Generowanie certyfikatów CRS na potrzeby odnawiania certyfikatów

W tej sekcji opisano przygotowanie żądania ściągnięcia do odnowienia istniejących certyfikatów infrastruktury kluczy publicznych usługi Azure Stack Hub.

Generowanie reguł CRS

  1. Otwórz sesję programu PowerShell na maszynie, na której zainstalowano narzędzie sprawdzania gotowości.

  2. Zadeklaruj następujące zmienne:

    Uwaga

    Moduł sprawdzania gotowości używa stampEndpoint ciągu plus prepended do znajdowania istniejących certyfikatów. Na przykład portal.east.azurestack.contoso.com służy do wdrażania certyfikatów, sso.appservices.east.azurestack.contoso.com certyfikatów usług app services itp.

    $regionName = 'east'                                            # The region name for your Azure Stack Hub deployment
    $externalFQDN = 'azurestack.contoso.com'                        # The external FQDN for your Azure Stack Hub deployment    
    $stampEndpoint = "$regionName.$externalFQDN"
    $outputDirectory = "$ENV:USERPROFILE\Documents\AzureStackCSR"   # Declare the path to an existing output directory
    
  3. Wygeneruj pliki CRS, wykonując co najmniej jedną z następujących czynności:

    • W środowisku produkcyjnym pierwszy skrypt wygeneruje pliki CRS dla certyfikatów wdrażania:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
    • Drugi skrypt, jeśli jest to wymagane, używa -IncludeContainerRegistry elementu i wygeneruje żądanie CSR dla Azure Container Registry w tym samym czasie co pliki CRS dla certyfikatów wdrażania:

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -IncludeContainerRegistry
      
    • Trzeci skrypt wygeneruje pliki CRS dla wszystkich opcjonalnych usług PaaS, które zostały zainstalowane:

      # App Services
      New-AzsHubAppServicesCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # DBAdapter
      New-AzsHubDBAdapterCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # EventHubs
      New-AzsHubEventHubsCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory
      
      # Azure Container Registry
      New-AzsHubAzureContainerRegistryCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory 
      
    • W przypadku środowiska programistycznego i testowego w celu wygenerowania pojedynczego żądania CSR z alternatywnymi nazwami wielu podmiotów dodaj -RequestType SingleCSR parametr i wartość.

      Ważne

      Nie zalecamy używania tej metody w środowiskach produkcyjnych.

      New-AzsHubDeploymentCertificateSigningRequest -StampEndpoint $stampEndpoint -OutputRequestPath $OutputDirectory -RequestType SingleCSR
      
  4. Przejrzyj dane wyjściowe:

    Querying StampEndpoint portal.east.azurestack.contoso.com for existing certificate
    Starting Certificate Request Process for Deployment
    CSR generating for following SAN(s): *.adminhosting.east.azurestack.contoso.com,*.adminvault.east.azurestack.contoso.com,*.blob.east.azurestack.contoso.com,*.hosting.east.azurestack.contoso.com,*.queue.east.azurestack.contoso.com,*.table.east.azurestack.contoso.com,*.vault.east.azurestack.contoso.com,adminmanagement.east.azurestack.contoso.com,adminportal.east.azurestack.contoso.com,management.east.azurestack.contoso.com,portal.east.azurestack.contoso.com
    Present this CSR to your certificate authority for certificate generation: C:\Users\username\Documents\AzureStackCSR\Deployment_east_azurestack_contoso_com_SingleCSR_CertRequest_20200710122723.req
    Certreq.exe output: CertReq: Request Created
    

Gdy wszystko będzie gotowe, prześlij wygenerowany plik req do urzędu certyfikacji (wewnętrzny lub publiczny). Katalog określony przez zmienną $outputDirectory zawiera żądania CRS, które muszą zostać przesłane do urzędu certyfikacji. Katalog zawiera również katalog podrzędny zawierający pliki inf do użycia podczas generowania żądania certyfikatu. Upewnij się, że urząd certyfikacji generuje certyfikaty przy użyciu wygenerowanego żądania spełniającego wymagania infrastruktury kluczy publicznych usługi Azure Stack Hub.

Następne kroki

Po powrocie certyfikatów z urzędu certyfikacji wykonaj kroki opisane w temacie Przygotowywanie certyfikatów infrastruktury kluczy publicznych usługi Azure Stack Hub w tym samym systemie.