Configurando certificados para CLI do Azure no Kit de Desenvolvimento do Azure StackSetting up certificates for Azure CLI on Azure Stack Development Kit

Siga as etapas neste artigo para configurar a CLI (interface de Command-Line do Azure) para gerenciar recursos de Kit de Desenvolvimento do Azure Stack (ASDK) em plataformas Linux, Mac e Windows Client.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.

Este artigo aborda como obter seus certificados e confiar neles no computador de gerenciamento remoto.This article addresses getting your certificates and trusting them on your remote management machine. Para instalar o CLI do Azure e conectar-se ao seu ambiente, consulte instalar CLI do Azure no Hub de Azure Stack.To install the Azure CLI and connect to your environment, see Install Azure CLI on Azure Stack Hub.

Preparar para CLI do AzurePrepare for Azure CLI

Para o ASDK, você precisa do certificado raiz da autoridade de certificação para Azure Stack Hub usar CLI do Azure em seu computador de desenvolvimento.For the ASDK, you need the CA root certificate for Azure Stack Hub to use Azure CLI on your development machine. Você usa o certificado para gerenciar recursos por meio da CLI.You use the certificate to manage resources through the CLI.

  • O certificado raiz da AC do Hub Azure Stack será necessário se você estiver usando a CLI de uma estação de trabalho fora do ASDK.The Azure Stack Hub CA root certificate is required if you're using the CLI from a workstation outside the ASDK.

  • O ponto de extremidade de aliases da máquina virtual fornece um alias, como "UbuntuLTS" ou "Win2012Datacenter".The virtual machine aliases endpoint provides an alias, like "UbuntuLTS" or "Win2012Datacenter." Esse alias faz referência a um editor de imagem, oferta, SKU e versão como um único parâmetro ao implantar VMs.This alias references an image publisher, offer, SKU, and version as a single parameter when deploying VMs.

As seções a seguir descrevem como obter esses valores.The following sections describe how to get these values.

Exportar o certificado raiz da AC do hub de Azure StackExport the Azure Stack Hub CA root certificate

Para usar o CLI do Azure com o ASDK, exporte o certificado raiz da autoridade de certificação.To use the Azure CLI with the ASDK, export the CA root certificate.

Para exportar o certificado raiz ASDK no formato PEM:To export the ASDK root certificate in PEM format:

  1. Obtenha o nome do seu Azure Stack certificado raiz do Hub:Get the name of your Azure Stack Hub Root Cert:

    1. Entre no portal de administrador ou usuário do hub de Azure Stack.Sign in to the Azure Stack Hub User or Administrator portal.
    2. Selecione seguro próximo à barra de endereços.Select on Secure near the address bar.
    3. Na janela pop-up, selecione válido.On the pop-up window, Select Valid.
    4. Na janela certificado, selecione a guia caminho de certificação .On the Certificate Window, select Certification Path tab.
    5. Anote o nome do seu Azure Stack certificado raiz do Hub.Note down the name of your Azure Stack Hub Root Cert.

    Azure Stack certificado raiz do Hub

  2. Crie uma VM do Windows no Hub Azure Stack.Create a Windows VM on Azure Stack Hub.

  3. Entre na VM, abra um prompt do PowerShell com privilégios elevados e execute o seguinte script: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. Copie o certificado para o computador local.Copy the certificate to your local machine.

Configurar o ponto de extremidade do alias da máquina virtualSet up the virtual machine alias endpoint

Você pode configurar um ponto de extremidade publicamente acessível que hospeda um arquivo de alias de VM.You can set up a publicly accessible endpoint that hosts a VM alias file. O arquivo de alias da VM é um arquivo JSON que fornece um nome comum para uma imagem.The VM alias file is a JSON file that provides a common name for an image. Você usa o nome ao implantar uma VM como um parâmetro CLI do Azure.You use the name when you deploy a VM as an Azure CLI parameter.

  1. Se você publicar uma imagem personalizada, anote as informações de Publicador, oferta, SKU e versão que você especificou durante a publicação.If you publish a custom image, make note of the publisher, offer, SKU, and version information that you specified during publishing. Se for uma imagem do Marketplace, você poderá exibir as informações usando o Get-AzureVMImage cmdlet.If it's an image from the marketplace, you can view the information by using the Get-AzureVMImage cmdlet.

  2. Baixe o arquivo de exemplo do github.Download the sample file from GitHub.

  3. Crie uma conta de armazenamento no Hub Azure Stack.Create a storage account in Azure Stack Hub. Quando terminar, crie um contêiner de BLOB.When that's done, create a blob container. Defina a política de acesso como "pública".Set the access policy to "public."

  4. Carregue o arquivo JSON no novo contêiner.Upload the JSON file to the new container. Quando isso for feito, você poderá exibir a URL do blob.When that's done, you can view the URL of the blob. Selecione o nome do blob e selecione a URL nas propriedades do blob.Select the blob name and then selecting the URL from the blob properties.

Confiar no certificadoTrust the certificate

Para usar CLI do Azure com o aSDK, você deve confiar no certificado raiz da autoridade de certificação em seu computador remoto.To use Azure CLI with the aSDK, you must trust the CA root certificate on your remote machine.

  1. Encontre a localização do certificado no computador.Find the certificate location on your machine. O local pode variar dependendo de onde você instalou o Python.The location may vary depending on where you've installed Python. Abra um prompt de comando ou um prompt do PowerShell com privilégios elevados e digite o seguinte comando:Open a cmd prompt or an elevated PowerShell prompt, and type the following command:

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

    Anote o local do certificado.Make a note of the certificate location. Por exemplo, ~/lib/python3.5/site-packages/certifi/cacert.pem.For example, ~/lib/python3.5/site-packages/certifi/cacert.pem. Seu caminho específico depende do seu sistema operacional e da versão do Python que você instalou.Your particular path depends on your OS and the version of Python that you've installed.

  2. Confie no certificado raiz da AC do hub de Azure Stack anexando-o ao certificado Python existente.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"
    

Para obter instruções sobre como instalar e conectar-se com CLI do Azure consulte instalar CLI do Azure no Hub de Azure Stack.For instructions on Installing and connecting with Azure CLI see Install Azure CLI on Azure Stack Hub.

Próximas etapasNext steps

Instalar CLI do Azure no Hub Azure StackInstall Azure CLI on Azure Stack Hub