Nastavení certifikátů pro Azure CLI v Azure Stack Development KitSetting up certificates for Azure CLI on Azure Stack Development Kit

Podle kroků v tomto článku nastavte rozhraní příkazového řádku Azure Command-Line pro správu prostředků Azure Stack Development Kit (ASDK) z klientských platforem Linux, Mac a Windows.Follow the steps in this article to set up the Azure Command-Line Interface (CLI) to manage Azure Stack Development Kit (ASDK) resources from Linux, Mac, and Windows client platforms.

Tento článek popisuje získání certifikátů a jejich důvěřování na počítači pro vzdálenou správu.This article addresses getting your certificates and trusting them on your remote management machine. Informace o instalaci Azure CLI a připojení k prostředí najdete v tématu Instalace rozhraní příkazového řádku Azure CLI do centra Azure Stack.To install the Azure CLI and connect to your environment, see Install Azure CLI on Azure Stack Hub.

Příprava pro Azure CLIPrepare for Azure CLI

Pro ASDK potřebujete kořenový Azure Stack certifikát certifikační autority, aby bylo možné na svém vývojovém počítači používat Azure CLI.For the ASDK, you need the CA root certificate for Azure Stack Hub to use Azure CLI on your development machine. Certifikát použijete ke správě prostředků přes rozhraní příkazového řádku.You use the certificate to manage resources through the CLI.

  • Pokud používáte rozhraní příkazového řádku z pracovní stanice mimo ASDK, vyžaduje se kořenový certifikát CA centra Azure Stack .The Azure Stack Hub CA root certificate is required if you're using the CLI from a workstation outside the ASDK.

  • Aliasy aliasů virtuálních počítačů poskytují alias, například "UbuntuLTS" nebo "Win2012Datacenter".The virtual machine aliases endpoint provides an alias, like "UbuntuLTS" or "Win2012Datacenter." Tento alias odkazuje na vydavatele image, nabídku, SKU a verzi jako jeden parametr při nasazování virtuálních počítačů.This alias references an image publisher, offer, SKU, and version as a single parameter when deploying VMs.

Následující části popisují, jak tyto hodnoty získat.The following sections describe how to get these values.

Export kořenového certifikátu certifikační autority centra Azure StackExport the Azure Stack Hub CA root certificate

Pokud chcete použít rozhraní příkazového řádku Azure s ASDK, exportujte kořenový certifikát certifikační autority.To use the Azure CLI with the ASDK, export the CA root certificate.

Export kořenového certifikátu ASDK ve formátu PEM:To export the ASDK root certificate in PEM format:

  1. Získání názvu kořenového certifikátu centra Azure Stack:Get the name of your Azure Stack Hub Root Cert:

    1. Přihlaste se k portálu Azure Stack nebo uživateli centra pro správu.Sign in to the Azure Stack Hub User or Administrator portal.
    2. V blízkosti panelu Adresa vyberte možnost zabezpečení .Select on Secure near the address bar.
    3. V automaticky otevíraném okně vyberte platné.On the pop-up window, Select Valid.
    4. V okně certifikát vyberte kartu cesta k certifikaci .On the Certificate Window, select Certification Path tab.
    5. Poznamenejte si název kořenového certifikátu centra Azure Stack.Note down the name of your Azure Stack Hub Root Cert.

    Kořenový certifikát centra Azure Stack

  2. Vytvořte virtuální počítač s Windows na rozbočovači Azure Stack.Create a Windows VM on Azure Stack Hub.

  3. Přihlaste se k virtuálnímu počítači, otevřete příkazový řádek prostředí PowerShell se zvýšenými oprávněními a spusťte následující skript:Sign in to the VM, open an elevated PowerShell prompt, and then run the following script:

      $label = "<the name of your Azure Stack Hub root cert from Step 1>"
      Write-Host "Getting certificate from the current user trusted store with subject CN=$label"
      $root = Get-ChildItem Cert:\CurrentUser\Root | Where-Object Subject -eq "CN=$label" | select -First 1
      if (-not $root)
      {
          Write-Error "Certificate with subject CN=$label not found"
          return
      }
    
    Write-Host "Exporting certificate"
    Export-Certificate -Type CERT -FilePath root.cer -Cert $root
    
    Write-Host "Converting certificate to PEM format"
    certutil -encode root.cer root.pem
    
  4. Zkopírujte certifikát do místního počítače.Copy the certificate to your local machine.

Nastavení koncového bodu aliasu virtuálního počítačeSet up the virtual machine alias endpoint

Můžete nastavit veřejně přístupný koncový bod, který hostuje soubor s aliasem virtuálního počítače.You can set up a publicly accessible endpoint that hosts a VM alias file. Soubor aliasu virtuálního počítače je soubor JSON, který poskytuje běžný název pro obrázek.The VM alias file is a JSON file that provides a common name for an image. Název použijete při nasazení virtuálního počítače jako parametru Azure CLI.You use the name when you deploy a VM as an Azure CLI parameter.

  1. Pokud publikujete vlastní image, poznamenejte si informace o vydavateli, nabídce, SKU a verzi, které jste zadali během publikování.If you publish a custom image, make note of the publisher, offer, SKU, and version information that you specified during publishing. Pokud se jedná o image z webu Marketplace, můžete zobrazit informace pomocí Get-AzureVMImage rutiny.If it's an image from the marketplace, you can view the information by using the Get-AzureVMImage cmdlet.

  2. Stáhněte si ukázkový soubor z GitHubu.Download the sample file from GitHub.

  3. Vytvořte účet úložiště v centru Azure Stack.Create a storage account in Azure Stack Hub. Až to bude hotové, vytvořte kontejner objektů BLOB.When that's done, create a blob container. Nastavte zásady přístupu na veřejné.Set the access policy to "public."

  4. Nahrajte soubor JSON do nového kontejneru.Upload the JSON file to the new container. Až to uděláte, můžete zobrazit adresu URL objektu BLOB.When that's done, you can view the URL of the blob. Vyberte název objektu BLOB a potom vyberte adresu URL z vlastností objektu BLOB.Select the blob name and then selecting the URL from the blob properties.

Důvěřovat certifikátuTrust the certificate

Pokud chcete používat Azure CLI s aSDK, musíte důvěřovat kořenovému certifikátu certifikační autority na svém vzdáleném počítači.To use Azure CLI with the aSDK, you must trust the CA root certificate on your remote machine.

  1. Najděte umístění certifikátu na svém počítači.Find the certificate location on your machine. Umístění se může lišit v závislosti na tom, kde jste nainstalovali Python.The location may vary depending on where you've installed Python. Otevřete příkazový řádek nebo příkazový řádek PowerShell se zvýšenými oprávněními a zadejte tento příkaz:Open a cmd prompt or an elevated PowerShell prompt, and type the following command:

      python -c "import certifi; print(certifi.where())"
    

    Poznamenejte si umístění certifikátu.Make a note of the certificate location. Například ~/lib/python3.5/site-packages/certifi/cacert.pem.For example, ~/lib/python3.5/site-packages/certifi/cacert.pem. Vaše konkrétní cesta závisí na vašem operačním systému a verzi Pythonu, kterou jste nainstalovali.Your particular path depends on your OS and the version of Python that you've installed.

  2. Důvěřování kořenovému certifikátu certifikační autority centra Azure Stack tak, že ho připojíte k existujícímu certifikátu Pythonu.Trust the Azure Stack Hub CA root certificate by appending it to the existing Python certificate.

    $pemFile = "<Fully qualified path to the PEM certificate Ex: C:\Users\user1\Downloads\root.pem>"
    
    $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
    $root.Import($pemFile)
    
    Write-Host "Extracting required information from the cert file"
    $md5Hash    = (Get-FileHash -Path $pemFile -Algorithm MD5).Hash.ToLower()
    $sha1Hash   = (Get-FileHash -Path $pemFile -Algorithm SHA1).Hash.ToLower()
    $sha256Hash = (Get-FileHash -Path $pemFile -Algorithm SHA256).Hash.ToLower()
    
    $issuerEntry  = [string]::Format("# Issuer: {0}", $root.Issuer)
    $subjectEntry = [string]::Format("# Subject: {0}", $root.Subject)
    $labelEntry   = [string]::Format("# Label: {0}", $root.Subject.Split('=')[-1])
    $serialEntry  = [string]::Format("# Serial: {0}", $root.GetSerialNumberString().ToLower())
    $md5Entry     = [string]::Format("# MD5 Fingerprint: {0}", $md5Hash)
    $sha1Entry    = [string]::Format("# SHA1 Fingerprint: {0}", $sha1Hash)
    $sha256Entry  = [string]::Format("# SHA256 Fingerprint: {0}", $sha256Hash)
    $certText = (Get-Content -Path $pemFile -Raw).ToString().Replace("`r`n","`n")
    
    $rootCertEntry = "`n" + $issuerEntry + "`n" + $subjectEntry + "`n" + $labelEntry + "`n" + `
    $serialEntry + "`n" + $md5Entry + "`n" + $sha1Entry + "`n" + $sha256Entry + "`n" + $certText
    
    Write-Host "Adding the certificate content to Python Cert store"
    Add-Content "${env:ProgramFiles(x86)}\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem" $rootCertEntry
    
    Write-Host "Python Cert store was updated to allow the Azure Stack Hub CA root certificate"
    

Pokyny k instalaci a připojení pomocí Azure CLI najdete v tématu Instalace rozhraní příkazového řádku Azure CLI do centra Azure Stack.For instructions on Installing and connecting with Azure CLI see Install Azure CLI on Azure Stack Hub.

Další krokyNext steps

Instalace rozhraní příkazového řádku Azure CLI do centra Azure StackInstall Azure CLI on Azure Stack Hub