Como adicionar SSL / 443 ao servidor Apache sem host virtual?

4

Eu tenho um servidor apache configurado no CentOS. Eu estou tentando adicionar SSL. Consegui criar o certificado e as chaves e, em seguida, atualizei o /etc/httpd/conf.d/ssl.conf para ter as seguintes configurações:

/etc/httpd/conf.d/ssl.conf

#Where I put my cert
SSLCertificateFile /etc/pki/tls/certs/ca.crt

#where I put my key
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

Então atualizei o /etc/httpd/conf/httpd.conf :

/etc/httpd/conf/httpd.conf

Listen 443
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

Em seguida, executei service httpd restart e recebo o erro:

Stopping httpd:          [OK]
Starting httpd:          (98)Address already in use: make_sock: could not bind to address [::]:443
                         [OK]

O que preciso fazer para ativar o SSL?

    
por Don Rhummy 12.04.2014 / 02:04

2 respostas

4

Por padrão, no CentOS, existe um arquivo usado pelo Apache / httpd localizado em /etc/httpd/conf.d/ssl.conf . Este arquivo é lido como uma configuração pelo Apache junto com o arquivo "httpd.conf" e qualquer coisa nele tem precedência sobre as configurações em httpd.conf .

Esse arquivo (novamente por padrão) contém uma diretiva Listen 443 . Você não pode chamar essa diretiva duas vezes (como dirá que já foi vinculado a essa porta), então isso causou o conflito. Depois de remover isso, funciona.

    
por 12.04.2014 / 03:02
1

No caso de alguém se deparar com esta questão em 2017 ...

Não é necessário editar httpd.conf , pois ssl.conf contém todas as diretivas de que precisamos:

# When we also provide SSL we have to listen to the 
# the HTTPS port in addition.
#
Listen 443 https

...

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

E, claro, os caminhos para os certs:

SSLCertificateFile /etc/pki/tls/certs/<mycert>.crt

SSLCertificateKeyFile /etc/pki/tls/private/<mykey>.key

Em outras palavras, basta adicionar as informações em ssl.conf e reiniciar o serviço httpd . Claro, isso só funciona se esta (a última) linha:

# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf

... é descomentado conforme descrito acima no arquivo httpd.conf , que está em uma instalação padrão.

Informações do sistema:

cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.3 (Maipo)
    
por 12.04.2017 / 16:49