Partilhar via


Habilitar a comunicação HTTPS nos Serviços de Nuvem do Azure (suporte estendido)

A comunicação com os Serviços de Nuvem do Microsoft Azure (suporte estendido) é feita usando o protocolo HTTPS (Hypertext Transfer Protocol Secure). Este artigo discute como habilitar a comunicação HTTPS para Serviços de Nuvem (suporte estendido).

Pré-requisitos

Etapas gerais para implantação do projeto

As etapas gerais para implantar um projeto de Serviços de Nuvem (suporte estendido) no Azure são as seguintes:

  1. Prepare seu certificado.

  2. Configurar seu projeto.

  3. Empacote o arquivo de projeto nos arquivos de definição de serviço (.csdef), configuração de serviço (.cscfg) e pacote de serviço (.cspkg) do serviço de nuvem.

  4. Altere a configuração do recurso Serviços de Nuvem (suporte estendido), se necessário. Por exemplo, você pode fazer qualquer uma das seguintes modificações:

    1. Atualize a URL do pacote.
    2. Defina a configuração de URL.
    3. Atualize a configuração de segredos do sistema operacional.
  5. Implante e atualize o novo projeto no Azure.

Observação

O projeto pode ser implantado por meio de vários métodos diferentes, como usar as seguintes ferramentas:

  • Visual Studio
  • Um modelo do ARM (modelo do Azure Resource Manager)
  • Uma ferramenta de CI/CD (integração contínua e entrega contínua), como o Azure DevOps

Independentemente do método de implantação, as etapas gerais de implantação são as mesmas.

As duas primeiras dessas etapas são necessárias para todos os métodos de implantação. Essas etapas são discutidas na seção Alterações de código. As etapas restantes também são importantes, mas nem sempre exigem intervenção manual do usuário. Por exemplo, as etapas podem ser executadas automaticamente por uma ferramenta como o Visual Studio. As últimas três dessas etapas são discutidas na seção Alterações de configuração.

Alterações de código

Para fazer as alterações de código para preparar seu certificado e configurar seu projeto, execute as seguintes etapas:

  1. Siga as instruções para carregar um certificado no cofre de chaves até a etapa 6.

  2. Anote a impressão digital do certificado (uma cadeia de caracteres hexadecimal de 40 dígitos).

  3. No arquivo de configuração de serviço (.cscfg) do seu projeto, adicione a impressão digital do certificado à função na qual você deseja usar o certificado. Por exemplo, se você quiser usar o certificado como o certificado SSL para se comunicar com um WebRole, poderá adicionar um código XML semelhante ao seguinte snippet como WebRole1 o primeiro filho do elemento raiz ServiceConfiguration :

    <Role name="WebRole1">
      <Instances count="1" />
      <Certificates>
        <Certificate
          name="Certificate1"
          thumbprint="0123456789ABCDEF0123456789ABCDEF01234567"
          thumbprintAlgorithm="sha1"
        />
      </Certificates>
    </Role>
    

    Você pode personalizar o nome do certificado, mas ele deve corresponder ao nome do certificado usado no arquivo de definição de serviço (.csdef).

  4. No arquivo de definição de serviço (.csdef), adicione os elementos a seguir.

    XPath pai Elementos a serem adicionados Atributos a serem usados
    /ServiceDefinition/WebRole/Sites/Site/Bindings Binding nome, nome do ponto de extremidade
    /ServiceDefinition/WebRole/Endpoints InputEndpoint nome, protocolo, porta, certificado
    /ServiceDefinition/WebRole Certificates/Certificate nome, storeLocation, storeName, permissionLevel

    O Certificates elemento deve ser adicionado diretamente após a tag de fechamento Endpoints . Ele não contém nenhum atributo. Ele contém apenas elementos filho Certificate .

    Por exemplo, seu arquivo de definição de serviço pode ser semelhante ao seguinte código XML:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="CSESOneWebRoleHTTPS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
      <WebRole name="WebRole1" vmsize="Standard_D1_v2">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
              <Binding name="HttpsIn" endpointName="HttpsIn" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
          <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="Certificate1" />
        </Endpoints>
        <Certificates>
          <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" />
        </Certificates>
      </WebRole>
    </ServiceDefinition>
    

    Neste exemplo, o arquivo de definição de serviço é modificado para associar um ponto de extremidade de HttpsIn entrada para o protocolo HTTPS na porta 443. Ele usa o Certificate1 certificado para um repositório que tem um nome e um local de LocalMachine apenas para um nível de My permissão limitado ou elevado. Os nomes de InputEndpoint certificado nos elementos e Certificate correspondem entre si. Eles também correspondem ao nome do certificado que foi usado no arquivo de configuração de serviço (.cscfg) da etapa anterior.

Alterações de configuração

As instruções para alterar a configuração do serviço de nuvem diferem de acordo com a forma como o serviço de nuvem foi implantado. Essas instruções são mostradas nas guias a seguir. Cada guia representa um método diferente de implantação.

Antes de continuar, consulte Implantar um Azure Cloud Services (suporte estendido) usando o portal do Azure. Em seguida, siga estas etapas para fazer as alterações de configuração corretas por meio do portal do Azure:

  1. Acesse a entrada de blog intitulada Migração manual do serviço de nuvem clássico para o suporte estendido do serviço de nuvem com o modelo do ARM e siga as etapas 7 a 9. Estas instruções mostram como executar as seguintes etapas:

    • Empacotar o projeto.

    • Carregue os arquivos gerados do pacote de serviços (<project-name.cspkg>) e da configuração do serviço de nuvem (ServiceConfiguration.Cloud.cscfg) em um contêiner de conta de armazenamento para o serviço de nuvem.

      Observação

      Você também precisará carregar o arquivo de definição de serviço (ServiceDefinition.csdef) usando o mesmo processo descrito para os outros dois arquivos.

    • Gere uma URL de assinatura de acesso compartilhado (SAS) para cada um dos arquivos carregados.

  2. No portal do Azure, retorne à página Visão geral do serviço de nuvem e selecione Atualizar.

  3. Na página Atualizar serviço de nuvem, faça as seguintes alterações na guia Noções básicas:

    1. No campo Local da definição de pacote/configuração/serviço, selecione Do blob.

    2. No campo Carregar um pacote (.cspkg, .zip), siga estas etapas:

      1. Selecione o link Procurar .
      2. Selecione a conta de armazenamento e o contêiner para os quais você carregou os arquivos.
      3. Na página de contêiner, selecione o arquivo correspondente (nesse caso, nome-do-projeto.cspkg) e, em seguida, <selecione o botão Selecionar.>
    3. Para o campo Carregar uma configuração (.cscfg) (e o arquivo ServiceConfiguration.Cloud.cscfg ), repita o subprocedimento descrito na etapa anterior.

    4. Para o campo Carregar uma definição de serviço (.csdef) (e arquivo ServiceDefinition.csdef ), repita o subprocedimento novamente.

  4. Selecione a guia Configuração.

  5. No campo Key Vault, selecione o cofre de chaves no qual você carregou o certificado (anteriormente na seção Alterações de código). Depois que o certificado é encontrado no cofre de chaves selecionado, o certificado listado exibe um Status de Encontrado.

  6. Para implantar o projeto recém-configurado, selecione o botão Atualizar .

Depois de fazer as alterações de configuração, os clientes poderão se comunicar com seu site de serviços de nuvem usando o protocolo HTTPS. Se o certificado for autoassinado, o navegador poderá relatar um aviso de que o certificado não é seguro, mas o navegador não bloqueará a conexão.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.