475


22 de junho de 2018

Let’s Encrypt – Problem binding to port 80: Could not bind IPv4 or IPv6

Instalar um certificado SSL para ter um domínio positivo pode ser uma tarefa de simples, a menos que você enfrente um problema com o Let’s Encrypt, ele precisa usar a porta 80 e quando não consegue gera um erro com a seguinte mensagem Problem binding to port 80: Could not bind to IPv4 or IPv6, aprenda como resolver.

Antes de tudo é importante entender que neste curto post vou assumir que você já sabe como instalar o Let’s Encrypt para ter seu certificado SSL próprio e que está familiarizado com os comandos do terminal CLI.

Entendendo o problema

Para funcionar o Let’s Encrypt precisa ficar ouvindo a porta 80, mas caso outro software esteja utilizando esta porta o Let’s Encrypt simplesmente não consegue “conectar” nesta porta e cancela o processo de instalação informando o erro.

Então, tudo que precisamos fazer é descobrir quais programas estão utilizando a porta 80 e paralisa-los até que a instalação esteja concluída. E é isso! Vai lendo…

Como resolver

A primeira coisa é descobrir quais portas estão em uso, para isso vamos utilizar o comando netstat -plunt, ele vai gerar uma lista com as portas ativas, tente localizar a porta 80, só porque sou bonzinho colei a saída do netstat e marquei de negrito a porta 80, só pra você ter ideia de como fica.

[root@linode]# netstat -plunt
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 3464/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 3464/dovecot
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3840/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 3419/exim
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 3464/dovecot
tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN 3876/spamd.pid -d –
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 3464/dovecot
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3562/nginx: master
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 3419/exim
tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN 3477/nginx: master
tcp 0 0 127.0.0.1:8084 0.0.0.0:* LISTEN 3562/nginx: master
tcp 0 0 66.228.38.249:53 0.0.0.0:* LISTEN 3439/named

Agora que identificamos qual programa está utilizando a porta precisamos para-lo, no meu caso era o nGinx que estava utilizando a porta, para para-lo preciso executar o comando especifico para ele, mas poderia ser o apache ou qualquer outro, então, caso o programa não esteja nesta lista pesquise na internet “como parar [programa x]” onde [programa x] você deve trocar pelo nome do programa que aparecer na lista 😉

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

ou

sudo service nginx start
sudo service nginx stop
sudo service nginx restart

ou

sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart

Depois de parado execute o comando de instalação do Let’s Encrypt, aguarde a finalização, você deverá ver uma tela como esta:

[root@linode]# sudo -H ./letsencrypt-auto certonly –standalone -d johnhenrique.com.br -d www.johnhenrique.com.br
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for johnhenrique.com.br
http-01 challenge for www.johnhenrique.com.br
Waiting for verification…
Cleaning up challenges

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/johnhenrique.com.br/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/johnhenrique.com.br/privkey.pem
Your cert will expire on 2018-09-19. To obtain a new or tweaked
version of this certificate in the future, simply run
letsencrypt-auto again. To non-interactively renew *all* of your
certificates, run “letsencrypt-auto renew”
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Reativando tudo

Tudo pronto e instalado, mas ainda é necessário reativar os serviços que você paralisou anteriormente, como você pode ter notado já deixei lá em cima o comando para parar, reiniciar e iniciar o nGinx, caso fosse o Apache você deveria utilizar httpd onde aparece nginx.

Problema com Let’s Encrypt resolvido!

Espero que você tenha resolvido seu problema com o Let’s Encrypt e a porta 80 do seu servidor, mas caso não tenha, fique a vontade para enviar nos comentários suas duvidas.

CONTATO

youtube.com/johnhenrique

facebook.com/johnvibemidia

EMAIL

para@johnhenrique.com.br

TELEFONE

+55 64 98443-0000

© John-Henrique / Alguns direitos reservados / Feito em Quirinópolis – GO, Brasil