Neste tutorial, você aprenderá como instalar um certificado SSL na AWS (Amazon Web Services). Na AWS, você não instala um certificado num único servidor como faria com Apache ou Nginx. Em vez disso, você importa o certificado uma vez para um armazenamento de certificados e depois o vincula a um serviço gerenciado (um load balancer, CloudFront ou API Gateway) que finaliza a conexão TLS por você. Este guia aborda o AWS Certificate Manager (ACM), o antigo armazenamento de certificados do IAM e o Elastic Load Balancing (ELB).
Antes da instalação, você precisa gerar uma Certificate Signing Request (CSR) e enviá-la para a Autoridade Certificadora para aprovação. Se você ainda não concluiu esta etapa, comece pela primeira parte deste tutorial. Se você já possui os arquivos do seu certificado SSL, vá direto para o guia de instalação abaixo.
Como gerar um código CSR na AWS
Ao solicitar um certificado SSL, uma etapa essencial é enviar o código CSR para o seu provedor SSL, também chamado de Autoridade Certificadora. O CSR contém informações codificadas sobre o seu nome de domínio e organização. Você não pode obter um certificado SSL assinado sem fornecer esse bloco de código. Você tem duas opções:
- Use nosso Gerador de CSR para criar o CSR automaticamente.
- Gere o CSR manualmente. A melhor opção é criar o CSR no mesmo servidor onde o seu certificado SSL será executado. Escolha o tutorial para a sua plataforma:
Se você tiver apenas um load balancer e nenhum servidor web de origem para executar o comando, você pode criar seu CSR e sua chave privada com a ferramenta OpenSSL:
openssl req -new -newkey rsa:2048 -nodes -keyout yoursite.key -out example.csr
Nota: substitua yoursite pelo nome de domínio que deseja proteger. Este comando também grava sua chave privada (yoursite.key); mantenha-a em segurança, pois você precisará dela mais tarde para importar o certificado.
Depois de executar o comando, o OpenSSL grava o CSR em example.csr. Abra esse arquivo e copie o bloco inteiro, incluindo as linhas —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—–. Você colará esse código durante a ativação do seu certificado SSL.
Prepare todos os arquivos do certificado
Antes de iniciar a instalação, certifique-se de que possui todos os arquivos de certificado necessários. Depois que a Autoridade Certificadora assina o seu certificado SSL, ela envia os arquivos de instalação para a sua caixa de entrada. Aqui está o que você precisa:
- Seu arquivo de certificado principal, emitido para o nome de domínio que deseja proteger.
- O pacote CA (a cadeia de certificados intermediários) da sua Autoridade Certificadora.
- Sua chave privada.
Seu certificado SSL e o pacote CA chegam no arquivo ZIP enviado pela CA. A chave privada é a que você gerou junto com o seu código CSR; ela permanece no mesmo local onde você criou o CSR.
Uma última coisa a verificar é o formato dos seus arquivos. O ACM e o IAM aceitam apenas arquivos codificados em PEM, então certifique-se de que seu certificado, cadeia e chave privada estejam em PEM. PEM é um formato de texto que pode ter várias extensões de arquivo (.pem, .key, .cer, .crt, entre outras); um arquivo PEM começa com uma linha como —–BEGIN CERTIFICATE—–. A chave privada deve estar sem criptografia: o ACM rejeita uma chave protegida por senha ou frase-senha.
Se você recebeu seus arquivos em outro formato, como PFX/PKCS#12, converta-os primeiro para PEM. Você pode fazer isso com comandos OpenSSL. Depois que seus arquivos estiverem no formato PEM, você estará pronto para instalar seu certificado.
Instalar um certificado SSL no AWS Certificate Manager (ACM)
O ACM é o local recomendado para armazenar certificados destinados a serviços gerenciados da AWS. Você pode importar seu certificado de terceiros pelo console ou pela CLI.
Opção A: Importar pelo console do ACM
- Abra o console da AWS e acesse Certificate Manager. Confirme se está na Região correta (canto superior direito). Importe o certificado na mesma Região do serviço que irá utilizá-lo. Para o CloudFront, use US East (N. Virginia), us-east-1.
- Escolha Import certificate.
- Em Certificate body, cole o seu certificado principal (o bloco que começa com —–BEGIN CERTIFICATE—–).
- Em Certificate private key, cole a sua chave privada sem criptografia (o bloco que começa com —–BEGIN PRIVATE KEY—– ou —–BEGIN RSA PRIVATE KEY—–).
- Em Certificate chain, cole o seu pacote CA (os certificados intermediários).
- Escolha Next, adicione as tags desejadas e, em seguida, escolha Import.
Opção B: Importar com a AWS CLI
Execute o comando abaixo para enviar o seu certificado para o ACM. Observe o prefixo fileb://: ele informa à CLI para ler cada arquivo como bytes brutos, que é o que o ACM espera.
aws acm import-certificate
--certificate fileb://example.crt
--private-key fileb://example.key
--certificate-chain fileb://example-bundle.crt
Nota: substitua cada nome de arquivo example pelo nome real do seu arquivo. Se a importação for bem-sucedida, a CLI retorna o ARN (Amazon Resource Name) do certificado. Você precisa deste identificador para vincular o certificado a um serviço. Aqui está a lista completa de comandos do ACM para gerenciar ainda mais o seu certificado.
Ressalvas importantes:
- Certificados importados não são renovados automaticamente. O ACM renova automaticamente apenas os certificados que ele mesmo emite. Você é responsável por acompanhar a data de expiração de um certificado importado e reimportar um novo antes que ele expire (a AWS recomenda pelo menos 24 horas antes do vencimento). Reimportar para o mesmo certificado do ACM preserva as associações de serviço existentes, então o load balancer ou a distribuição continua a usá-lo sem alterações adicionais.
- A Região importa. Um certificado do ACM é regional. Importe-o na mesma Região do load balancer ou serviço que irá utilizá-lo. O CloudFront só aceita certificados de us-east-1.
Instalar um certificado SSL no AWS IAM (legado)
O armazenamento de certificados do IAM é o método mais antigo, e a AWS recomenda o ACM para novas implantações. Use o IAM apenas quando um serviço ou Região não suportar o ACM, ou quando você especificamente precisar do armazenamento do IAM (por exemplo, certas configurações do CloudFront, onde o caminho deve começar com /cloudfront/). Envie o certificado para o IAM com:
aws iam upload-server-certificate
--server-certificate-name certificate-name
--certificate-body file://example.crt
--certificate-chain file://example-bundle.crt
--private-key file://example.key
Substitua os valores conforme mostrado abaixo:
- –server-certificate-name: um nome personalizado fácil de lembrar, por exemplo o seu nome de domínio. Use apenas caracteres alfanuméricos em maiúsculas e minúsculas; não são permitidos espaços.
- –certificate-body: o nome do arquivo do seu certificado SSL principal.
- –certificate-chain: o nome do arquivo do seu pacote CA.
- –private-key: o nome do arquivo da sua chave privada.
O certificado, a chave privada e a cadeia devem estar todos codificados em PEM, e a chave privada deve corresponder ao certificado. Se o upload for bem-sucedido, a CLI retorna os metadados do certificado do servidor, incluindo seu caminho, nome, ID, ARN, data de upload e data de expiração. Para mais ajuda sobre gerenciamento de SSL e solução de problemas, consulte o guia oficial da Amazon.
Vincular o certificado no ELB (Elastic Load Balancing)
Importar o certificado para o ACM ou o IAM ainda não o coloca em uso. O certificado passa a ficar ativo apenas quando você vincula o seu ARN a um serviço. Esta seção pressupõe que você já importou o certificado e deseja criar ou atualizar listeners HTTPS em um load balancer existente. Você precisará do ARN do seu certificado e do nome ou ARN do load balancer.
Classic Load Balancer
Use o comando abaixo para criar um listener HTTPS em um Classic Load Balancer e atribuir o certificado a ele:
aws elb create-load-balancer-listeners
--load-balancer-name my-load-balancer
--listeners "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN"
Substitua ARN pelo ARN do seu certificado do ACM ou IAM. Se você já tem um listener HTTPS e deseja apenas substituir por um novo certificado, use:
aws elb set-load-balancer-listener-ssl-certificate
--load-balancer-name my-load-balancer
--load-balancer-port 443
--ssl-certificate-id NewARN
Substitua NewARN pelo ARN do novo certificado. Aqui está a lista completa de comandos do ELB, e o guia oficial da Amazon sobre listeners HTTPS para o Classic Load Balancer.
Application Load Balancer
Execute o seguinte comando para criar um listener HTTPS em um Application Load Balancer. O valor de –ssl-policy abaixo seleciona uma política de segurança que suporta TLS 1.3 e TLS 1.2:
aws elbv2 create-listener
--load-balancer-arn my-load-balancer-arn
--protocol HTTPS
--port 443
--certificates CertificateArn=my-certificate-arn
--ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
--default-actions Type=forward,TargetGroupArn=my-target-group-arn
Você pode encontrar os valores de my-load-balancer-arn e my-target-group-arn executando:
aws elbv2 describe-target-groups
Isso revela os load balancers e target groups relevantes na sua conta. Para adicionar um novo certificado a um listener HTTPS existente, use:
aws elbv2 modify-listener
--listener-arn my-https-listener-arn
--certificates CertificateArn=my-new-certificate-arn
Você pode encontrar o valor de my-https-listener-arn com:
aws elbv2 describe-listeners
--load-balancer-arn my-load-balancer-arn
Consulte a referência de comandos do elbv2 para gerenciar ainda mais o seu Application Load Balancer.
Teste sua instalação SSL
Navegue pela versão HTTPS do seu domínio e verifique se o ícone de cadeado está presente. Clique nele para inspecionar os detalhes do certificado. Para um teste mais profundo, use o nosso SSL Checker: ele examina a sua instalação e cria um relatório instantâneo. Você também pode confirmar o certificado pela linha de comando:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Isso exibe o emissor e as datas de validade do certificado que o load balancer está servindo. Se você importou um novo certificado, mas ainda vê o antigo, confirme se o listener aponta para o novo ARN e se você está testando a Região e o endpoint corretos.
Perguntas Frequentes
Você não o instala em um único servidor. Você importa o certificado para o AWS Certificate Manager (ACM) e, em seguida, vincula o ARN resultante a um serviço gerenciado que finaliza a conexão TLS, como um Application ou Classic Load Balancer, uma distribuição CloudFront ou um domínio personalizado do API Gateway.
Não. O ACM renova automaticamente apenas os certificados que ele mesmo emite. Um certificado de terceiros importado precisa ser reemitido e reimportado antes de expirar. Reimportar para o mesmo certificado do ACM mantém as suas associações de serviço, então o load balancer continua servindo o certificado renovado sem alterações adicionais.
Use o ACM. O armazenamento de certificados do IAM é um método legado que a AWS mantém principalmente por compatibilidade retroativa e para casos que o ACM não abrange. Para a maioria das configurações, incluindo load balancers e CloudFront, o ACM é a opção recomendada.
O motivo mais comum é que a chave está criptografada. O ACM aceita apenas uma chave privada sem criptografia, codificada em PEM, que corresponda ao certificado. Remova a frase-senha primeiro e depois importe. Certifique-se de que as três partes (certificado, cadeia e chave) estejam codificadas em PEM.
Importe-o na mesma Região do load balancer ou serviço que irá utilizá-lo, pois os certificados do ACM são regionais. O CloudFront é a exceção: ele só aceita certificados importados em US East (N. Virginia), us-east-1.
Economize 10% em certificados SSL ao fazer seu pedido hoje!
Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10


