Exportar (0) Imprimir
Expandir Tudo

Configurar um certificado SSL em um ponto de extremidade HTTPS

Atualizado: fevereiro de 2014

Para acrescentar um ponto de extremidade de HTTPS a uma função em seu serviço de Windows Azure e associá-lo a um certificado de SSL, você deverá seguir estas etapas:

  1. Obtenha um certificado de SSL de uma Autoridade de Certificação. Para obter mais informações, consulte Obter um certificado de SSL..

  2. Adicione o certificado ao repositório de certificados para o serviço hospedado. Para obter mais informações, consulte a seção Carregue o certificado no Windows Azure.

  3. Adicione uma impressão digital de certificado ao arquivo de configuração de serviço Para obter mais informações, consulte a seção Adicionar a impressão digital de certificado ao arquivo de configuração de serviço.

  4. Atualize o arquivo de definição de serviço para identificar o certificado para o serviço hospedado. Para obter mais informações, consulte a seção Adicionar o certificado no arquivo de definição de serviço.

  5. Configure o ponto de extremidade de HTTPS em seu arquivo de definição de serviço e associe-o ao certificado. Para obter mais informações, consulte a seção Configurar o ponto de extremidade de HTTPS.

  6. Configure um registro de CNAME para o nome de domínio para o qual o certificado de SSL é emitido para redirecionar tráfego para o serviço. Para obter mais informações sobre a configuração de CNAME, consulte Configurando um nome de domínio personalizado para um serviço de nuvem do Windows Azure.

Ao testar seu ponto de extremidade de HTTPS no ambiente de desenvolvimento, toda a autenticação ocorre usando um certificado autoassinado fornecido para 127.0.0.1. Consulte a seção intitulada Testando um ponto de extremidade de HTTPS no emulador de computação mais adiante neste tópico para obter mais informações.

Um certificado de SSL usado para ajudar a proteger um ponto de extremidade de HTTPS no Windows Azure deve ter os seguintes recursos:

  • O certificado deve conter uma chave privada.

  • O propósito do certificado deve ser Autenticação do Servidor.

  • O nome de assunto para o certificado deve corresponder ao nome de domínio usado para acessar o serviço.

  • Requer um tamanho mínimo da chave de criptografia de 2048 bits.

noteObservação
Se você estiver usando as Ferramentas do Windows Azure para Microsoft Visual Studio para desenvolver seu serviço, poderá configurar um ponto de extremidade de HTTPS usando as páginas de propriedades para sua função.

O Windows Azure fornece um repositório de certificados seguro onde você pode manter certificados para seu serviço hospedado. Quando você associa um certificado ao seu serviço e carrega o certificado no repositório, o Windows Azure implanta o certificado automaticamente nas VMs nas quais suas instâncias de função estão sendo executadas. Para obter mais informações sobre o repositório de certificados, consulte Gerenciar certificados.

Para carregar seu certificado no repositório de certificados, siga estas etapas em Adicionar um novo certificado ao repositório de certificados.

A impressão digital de certificado no arquivo de configuração de serviço emparelha o nome lógico do certificado que você forneceu no arquivo de definição de serviço junto ao certificado no repositório, usando a impressão digital de certificado. Manter a impressão digital no arquivo de configuração do serviço mantém os dados de certificado separados do pacote de serviço. Isso permite que você ou um gerente de TI possa atualizar o certificado sem precisar que você reimplante o serviço.

Para listar o certificado e sua impressão digital no arquivo de configuração de serviço, modifique o arquivo de configuração e adicione a coleção Certificates à entrada para sua função. Adicione um elemento Certificate dentro à coleção Certificates e especifique o nome lógico para o certificado. Verifique se você usou o mesmo nome especificado no arquivo de definição de serviço. Finalmente, especifique a impressão digital de certificado e o algoritmo usado para gerar a impressão digital, como mostrado neste exemplo:


<ServiceConfiguration serviceName="MyService">
  <Role name=" MyWorkerRole">
    <Instances count="5" />    
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="MySSLCert" thumbprint="8420C0773626D5137A820156EB5BD9D6FDB9BEE9" thumbprintAlgorithm="sha1"/>
    </Certificates>  
  </Role>
</ServiceConfiguration>

Para obter mais informações sobre como obter a impressão digital de um certificado, consulte a seção "Criando um certificado X.509 v3" de Criação de um certificado de serviço para o Windows Azure.

Para associar um certificado a um ponto de extremidade de HTTPS, você deverá fornecer um nome lógico para o certificado que será usado para identificá-lo em seu serviço. Você também deve indicar onde o certificado será armazenado na máquina virtual que está executando uma instância de sua função.

Em seu arquivo de definição de serviço, adicione o elemento Certificates à definição de sua função. Dentro da coleção Certificates, adicione uma entrada para seu certificado, como mostrado neste exemplo:


  <WorkerRole name="MyWorkerRole" vmsize="Small">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      . . .
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

Neste exemplo, o local do repositório é definido como LocalMachine e o nome do repositório é definido como My. Estes dois atributos indicam onde na VM o certificado (identificado aqui como MySSLCert) será instalado.

Você pode selecionar qualquer nome de sua preferência para o atributo name do certificado. Você usará este nome somente para referir-se ao certificado na definição para o ponto de extremidade de HTTPS e no arquivo de configuração de serviço.

Para adicionar um ponto de extremidade de HTTPS a sua função, edite seu arquivo de definição de serviço e adicione um elemento InputEndpoint à coleção Endpoints para sua função. Especifique o nome, o protocolo (HTTPS) e a porta para o ponto de extremidade. Em seguida, especifique o nome lógico para o certificado que você definiu na coleção de Certificates de função.

O procedimento a seguir mostra como adicionar um ponto de extremidade de entrada HTTP para uma função web que escuta na porta 80 e também define um ponto de extremidade de HTTP que escuta na porta 443:

  1. Abra o arquivo ServiceDefinition.csdef para seu serviço no editor de texto.

  2. Adicione um elemento de coleção Certificates que contém um elemento Certificate para o elemento de função à função que está sendo protegida usando SSL. Defina o atributo de nome como o nome de seu certificado. Defina os atributos storeLocation e storeName para especificar o local do certificado na máquina virtual.

        
    <Certificates>
       <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    
    
  3. Adicione um elemento de coleção Endpoints que contém os elementos InputEndpoint para o elemento de função à função que está sendo protegida usando SSL. Defina o atributo certificate do ponto de extremidade de entrada HttpsIn para corresponder ao nome de certificado especificado na coleção de certificados.

       
    <Endpoints>
       <InputEndpoint name="HttpIn" protocol="http" port="80" />
       <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    
    
  4. Salve o arquivo.

A definição de serviço completa será parecida com o exemplo a seguir.


<ServiceDefinition name="MyService">
  <WorkerRole name="MyWorkerRole">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

Por padrão, o emulador de computação depende de um certificado autoassinado para o endereço IP 127.0.0.1, que corresponde a localhost. Se houve um problema ao instalar ou configurar o certificado que você configurou nas etapas anteriores, o emulador de computação usará o padrão para a autenticação em relação a esse certificado autoassinado ao invés de seu certificado personalizado. Se o padrão de sua implantação é usar um certificado de SSL para 127.0.0.1 mesmo que você tenha definido um certificado diferente, verifique para assegurar-se de que seu certificado personalizado não tem nenhum erro e está instalado corretamente.

Por padrão, o certificado autoassinado usado pelo emulador de computação não é confiado pelo raiz. Ao navegar para o seu HTTPS no navegador da Web, você receberá um erro de certificado a menos que adicione-o ao repositório de Autoridades de Certificação Confiáveis no computador local. Você pode ignorar o erro ou pode adicionar o certificado à raiz de confiança para eliminá-lo.

Ao executar o serviço hospedado no emulador de computação do Windows Azure, a porta SSL pode estar definida como algo diferente de 443 (frequentemente, 444 ou 445.) Se você especificar uma porta não disponível para um ponto de extremidade HTTPS 443, o emulador de computação incrementará o número da porta até localizar uma que esteja livre.

Para usar a porta 443, você deverá desligar o aplicativo ou site que esteja usando a porta, sair e reinicializar o emulador de computação para recarregar a lista de portas disponíveis. Desligar e reiniciar o emulador não recarrega a lista de portas disponíveis.

Para determinar se a porta 443 está em uso, você pode abrir um prompt de comando e usar o comando NETSTAT. Para obter mais informações sobre o comando NETSTAT, consulte Netstat.

Se você não tiver um certificado que foi emitido por uma autoridade de certificação, poderá gerar um certificado autoassinado para ser usado com seu serviço do Windows Azure.

noteObservação
Este certificado autoassinado está separado do certificado usado pelo ambiente de desenvolvimento. Esse certificado é fornecido para você e usado para autenticação somente no ambiente de desenvolvimento.

Quando você navegar para um ponto de extremidade de HTTPS que estiver associado a um certificado autoassinado no Windows Azure, verá um erro de certificado no navegador. O uso de um certificado assinado por uma autoridade de certificação eliminará esse problema; enquanto isso, você poderá ignorar o erro.

Consulte também

Mostrar:
© 2015 Microsoft