Problemas com a execução do Apache Certbot devido à porta já usada para httpd.bin

2

Meu objetivo é fazer com que o SSL seja executado no meu servidor para ser executado em HTTPS. Estou tentando executar o comando sudo certbot --apache para gerar um certificado para o meu servidor como parte destas etapas link .

Estou tendo problemas com isso, pois quando executo o comando recebo o erro

Error while running apache2ctl graceful.
httpd not running, trying to start
Action 'graceful' failed.
Address already in use: AH00072: make_sock: could not bind to address [::]:80

Quando eu verifico o que está sendo executado na porta 80, vejo httpd.bin.

tcp6       0      0 :::80                   :::*                    LISTEN      1372/httpd.bin

Mas diz-se que httpd.bin não está sendo executado na mensagem de erro acima. Eu tentei matar o processo em execução na porta 80, mas não consegui. Eu também tentei localizar o PID do processo pai do Apache ( link ) no entanto, não tenho diretório / acpache em usr / local.

Como devo proceder para matar o processo? - Devo estar me concentrando em matar esse processo ou há outra maneira de contornar essa questão?

A outra coisa confusa é que quando executo o serviço sudo apache2 status o resultado é que o apache2 não está em execução, mas não consigo iniciar esse processo como a porta 80 está em uso (não tenho certeza se o Apache2 é necessário no meu cenário.)

Qualquer ajuda seria muito apreciada!

    
por fuzzi 10.05.2018 / 03:47

1 resposta

0

Atualmente, a opção letsencrypt / certbot with --apache não funciona como esperado. Existem algumas mudanças que devem ser aplicadas ao mecanismo do CertBot que interagem com o Apache, mas elas não são aplicadas ainda. Não encontrei o artigo exato que li em janeiro de 2018, quando encontrei este problema.

Você pode usar letsencrypt / certbot com a opção certonly . Com essa opção, a ferramenta iniciará seu próprio servidor da Web temporal para gerar os arquivos de certificado. As portas 80 e 443 devem estar abertas no seu firewall.  E você deve parar o Apache por um tempo. Infelizmente, você deve fazer isso quando você renew dos certificados.

sudo service apache2 stop           # Ubuntu 14.04
sudo systemctl stop apache2.service # Ubuntu 16.04 and above

sudo letsencrypt certonly --rsa-key-size 4096 --email [email protected] -d example.com -d www.example.com -d another.example.com
# Select the option: Automatically use temporary web server (standalone)

sudo service apache2 start           # Ubuntu 14.04
sudo systemctl start apache2.service # Ubuntu 16.04 and above

Depois, você precisa editar manualmente o arquivo de configuração do seu host virtual. Aqui está um exemplo com redirecionamento permanente de HTTP para HTTPS (substitua example.com pelo seu FQDN):

<VirtualHost *:80>
        ServerName example.com

        # Redirect Requests to HTTPS
        Redirect permanent / https://example.com/

        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerName example.com
        ServerAdmin [email protected]

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

        DocumentRoot /var/www/html
        <Directory /var/www/html>
            # Conf directives...
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/example.com.ssl.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.ssl.access.log combined
    </VirtualHost>
</IfModule>

Ative o módulo SSL para o Apache e reinicie-o novamente.

Referências:

Espero que esta ajuda!

    
por pa4080 10.05.2018 / 08:46