Onde o ssl_module está sendo carregado e por que não posso ligar à porta 443?

1

Quando tento iniciar o httpd, recebo o seguinte erro:

# service httpd start || journalctl -xn
..
[so:warn] [pid 425] AH01574: module ssl_module is already loaded, skipping
httpd[425]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:443
httpd[425]: no listening sockets available, shutting

A sintaxe está correta:

# httpd -t
[so:warn] [pid 917] AH01574: module ssl_module is already loaded, skipping
Syntax OK

Ok, tudo bem. Então ssl_module.so está sendo carregado duas vezes. Exceto que não é:

# grep -ir ssl_module /etc/httpd/*
/etc/httpd/conf.d/ssl.conf:LoadModule ssl_module modules/mod_ssl.so

Ele também diz que algo está escutando na porta 443. Exceto que não há:

# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      336/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      336/sshd

Estou só ouvindo uma vez na minha configuração do httpd:

# grep -ir 443 /etc/httpd/*
/etc/httpd/conf.d/ssl.conf:Listen 443
/etc/httpd/conf.d/ssl.conf:<VirtualHost *:443>

Não há serviços sendo executados pelo apache:

# top -u apache
..
(nothing)

Isto parece ser como se o apache estivesse carregando algum outro conf em algum lugar que estivesse carregando o ssl_module.so e escutando na porta 443 por causa do aviso e do erro que o socket já está em uso.

Mas a questão é ... onde está?

Isto é de uma configuração VPS rodando a versão 7.2.1511 do CentOS Linux.

    
por Zhro 03.08.2016 / 23:54

2 respostas

2

O problema acabou sendo uma linha duplicada no httpd.conf fazendo com que o ssl.conf fosse carregado duas vezes.

Havia uma linha:

Include conf.d/*.conf

E depois mais abaixo:

IncludeOptional conf.d/*.conf

O primeiro foi removido e o problema foi resolvido.

    
por 05.08.2016 / 18:36
0

A maneira mais fácil de depurar é executar o servidor a partir de uma sessão de terminal no modo de depuração apache2 -X ou httpd -X dependendo da sua compilação. Você pode aumentar a verbosidade com o sinalizador -e . O comando -S flag despejará a configuração. Sinalizadores adicionais são documentados na página man .

O sinalizador -M listará os módulos carregados. O SSL geralmente é fornecido como um módulo que precisa ser carregado antes que você possa ativar o HTTPS.

    
por 04.08.2016 / 04:29