ACME SSL /TLS Automação com Apache e Nginx

Como usar o protocolo ACME para automatizar SSL /TLS certificados de SSL.com nos servidores da web Apache e Nginx.

Conteúdo Relacionado

Quer continuar aprendendo?

Assine a newsletter de SSL.com, mantenha-se informado e seguro.

Este tutorial irá orientá-lo na configuração da instalação e renovação automatizada do certificado com SSL.com para Apache e Nginx com o protocolo ACME e cliente Certbot.

Nota: Você precisará de acesso SSH e sudo privilégios no seu servidor web para seguir estas instruções.
Nota:
Você pode usar muitos outros clientes ACME, incluindo Gerenciador de certificados do Kubernetes, com o serviço ACME de SSL.com.
acme4j  o cliente agora pode usar os serviços SSL.com ACME neste repositório: https://github.com/SSLcom/acme4j
Consulte a documentação do seu fornecedor de software para obter instruções para outros clientes ACME não Certbot.

Instale o Certbot e recupere as credenciais ACME

  1. SSH em seu servidor web.
  2. Certifique-se de que uma versão atual do certbot, junto com os plug-ins Apache e Nginx, são instalados em seu servidor da web:
    • Se você snapd instalado, você pode usar este comando para instalação:
      sudo snap install - certbot clássico
    • If /snap/bin/ não está em seu PATH, você também precisará adicioná-lo ou executar um comando como este:
      sudo ln -s / snap / bin / certbot / usr / bin / certbot
  3. Recupere suas credenciais ACME de sua conta SSL.com:
    1. Faça login em sua conta SSL.com. Se você já estiver logado, vá para o Painel aba.
      Painel
    2. Clique credenciais da API, localizado sob desenvolvedores e integração.
      Link de credenciais de API
    3. Você precisará do seu Chave de conta / ACME e Chave HMAC para solicitar certificados. Clique no ícone da área de transferência () ao lado de cada tecla para copiar o valor para a área de transferência.
      Chave de conta / ACME e chave HMAC

Instalação e automação do Apache

Use um comando como este para instalar no Apache. Substitua os valores em MAIÚSCULAS pelos seus valores reais:

sudo certbot --apache --email ENDEREÇO ​​DE EMAIL --agree-tos --no-eff-email --config-dir /etc/ssl-com --logs-dir /var/log/ssl-com --eab -kid ACCOUNT-KEY --eab-hmac-key HMAC-KEY --server https://acme.ssl.com/sslcom-dv-ecc -d DOMAIN.NAME

Quebrando o comando:

  • sudo certbot executa o certbot comando com privilégios de superusuário.
  • --apache especifica a instalação de certificados para uso com o Apache.
  • --email EMAIL-ADDRESS fornece um endereço de e-mail de registro. Você pode especificar vários endereços, separados por vírgulas.
  • --agree-tos (opcional) concorda com o contrato de assinante ACME. Você pode omitir isso se quiser concordar interativamente.
  • --no-eff-email (opcional) indica que você não deseja compartilhar seu endereço de e-mail com a EFF. Se você omitir isso, terá a opção de compartilhar seu endereço de e-mail.
  • --config-dir /etc/ssl-com (opcional) define o diretório de configuração.
  • --logs-dir /var/log/ssl-com (opcional) define o diretório para logs.
  • --eab-kid ACCOUNT-KEY especifica a chave da sua conta.
  • --eab-hmac-key HMAC-KEY especifica sua chave HMAC.
  • --server https://acme.ssl.com/sslcom-dv-ecc especifica o servidor ACME de SSL.com.
  • -d DOMAIN.NAME especifica o nome de domínio que o certificado cobrirá.
Nota: O Certbot 2.0.0 ou mais recente é padronizado para gerar ECDSA para novos certificados. O comando acima é para um par de chaves e certificado ECDSA. Para usar chaves RSA em vez disso:

  • alterar o --server valor no comando para https://acme.ssl.com/sslcom-dv-rsa
Nota: Você pode usar o -d DOMAIN.NAME opção várias vezes em seu comando para adicionar nomes de domínio ao seu certificado. Por favor, veja nossas informações sobre tipos de certificado e faturamento para ver como diferentes combinações de nomes de domínio mapeiam para Tipos de certificado SSL.com e seus preços correspondentes.
Quando você executa o acima certbot comando, as informações da conta ACME serão armazenadas no seu computador no diretório de configuração (/etc/ssl-com no comando mostrado acima. Em execuções futuras do certbot, você pode omitir o --eab-hmac-key e --eab-kid opções porque certbot irá ignorá-los em favor das informações de conta armazenadas localmente.

Se você precisar associar seus pedidos de certificado ACME para o computador a uma conta SSL.com diferente, você deve remover essas informações de conta de seu computador com o comando sudo rm -r /etc/ssl-com/accounts/acme.ssl.com (ou, se você omitiu o opcional --config-dir opção, sudo rm -r /etc/letsencrypt/accounts/acme.ssl.com).

Você deve ver uma saída como esta depois de executar o comando:

Salvando log de depuração em /var/log/ssl-com/letsencrypt.log Plugins selecionados: Authenticator apache, Installer apache Obtendo um novo certificado Realizando os seguintes desafios: http-01 challenge for DOMAIN.NAME Aguardando verificação ... Desafios de limpeza Criado um vhost SSL em /etc/apache2/sites-available/DOMAIN-le-ssl.conf Distribuindo certificado para VirtualHost /etc/apache2/sites-available/DOMAIN-le-ssl.conf Habilitando site disponível: / etc / apache2 / sites-available / DOMAIN-le-ssl.conf Redirecionando vhost em /etc/apache2/sites-enabled/DOMAIN.NAME.conf para ssl vhost em /etc/apache2/sites-available/DOMAIN-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Parabéns! Você ativou com sucesso https://DOMAIN.NAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

O Certbot também criará um arquivo crontab como este para renovação automatizada não interativa de qualquer certificado instalado pelo certbot que expire em 30 dias:

$ cat /etc/cron.d/certbot # /etc/cron.d/certbot: entradas crontab para o pacote certbot # # Upstream recomenda tentar a renovação duas vezes por dia # # Eventualmente, esta será uma oportunidade para validar certificados #. t foi revogado, etc. A renovação só ocorrerá se o vencimento # for dentro de 30 dias. # # Nota importante! Este cronjob NÃO será executado se você # estiver executando o systemd como seu sistema init. Se você estiver executando o systemd, # a função cronjob.timer tem precedência sobre este cronjob. Para # mais detalhes, consulte a página de manual systemd.timer ou use systemctl show # certbot.timer. SHELL = / bin / sh PATH = / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin 0 * / 12 * * * root test -x / usr / bin / certbot -a \! -d / run / systemd / system && perl -e 'sleep int (rand (43200))' && certbot -q renew
Nota: Todos SSL /TLS os certificados emitidos via ACME por SSL.com têm validade de um ano.

Instalação e automação do Nginx

Para Nginx, basta substituir --nginx for --apache no comando mostrado acima:

sudo certbot --nginx --email ENDEREÇO ​​DE EMAIL --agree-tos --no-eff-email --config-dir /etc/ssl-com --logs-dir /var/log/ssl-com --eab -kid ACCOUNT-KEY --eab-hmac-key HMAC-KEY --server https://acme.ssl.com/sslcom-dv-ecc -d DOMAIN.NAME
Nota: O Certbot 2.0.0 ou mais recente é padronizado para gerar ECDSA para novos certificados. O comando acima é para um par de chaves e certificado ECDSA. Para usar chaves RSA em vez disso:

  • alterar o --server valor no comando para https://acme.ssl.com/sslcom-dv-rsa

Forçar renovação manualmente

Se você deseja renovar manualmente um certificado antes que a expiração seja iminente, use este comando:

renovação de certbot --force-renewal --cert-name DOMAIN.NAME

SSL.com oferece uma grande variedade de SSL /TLS certificados de servidor para sites HTTPS.

COMPARAR SSL /TLS CERTIFICADOS

Mantenha-se informado e seguro

SSL.com é líder global em segurança cibernética, PKI e certificados digitais. Inscreva-se para receber as últimas notícias do setor, dicas e anúncios de produtos da SSL.com.

Adoraríamos receber seu feedback

Responda à nossa pesquisa e deixe-nos saber sua opinião sobre sua compra recente.