2013-07-16 7 views
14

Recentemente ho installato un certificato SSL sul mio server Amazon EC2 Ubuntu 12.04 (a 32 bit) in esecuzione Apache 2.SSL installato su Apache2 ma HTTPS non funziona

Quando si tenta di accedere al mio sito tramite https, non carica. Quando eseguo una scansione nmap, vedo che la porta 443 non è aperta.

Ho tentato di aprire la porta 443 nelle mie tabelle ip inutilmente. iptables -L yeilds

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination 
ACCEPT  tcp -- anywhere    anywhere    tcp dpt:https 

Ecco come ho installato SSL

ho modificato per includere /etc/init.d/apache2.conf ssl.conf e ssl.conf modificato per includere le richieste percorsi dei miei file di certificato , vale a dire

SSLCertificateFile/percorso/file SSLCertificateChainFile/percorso/file SSLCertificateKeyFile/percorso/file

ho configurato il mio gro di sicurezza fino a consentire le richieste in entrata da porta 443 (fonte: TCP 0.0.0.0/0)

Quando si esegue la seguente prova con PHP

if (!extension_loaded('openssl')) 
{ 
    echo "not loaded"; 
} 
else 
{ 
    echo "loaded" ; 
} 

ottengo "caricato".

Qualche idea?

+1

cosa succede quando si tenta di aprire una connessione telnet da una macchina remota al server sulla porta 443? Si connette? In tal caso, è possibile escludere un firewall o un problema di routing o un problema con iptables. Sarei anche curioso di sapere se i tuoi registri Apache mostrano qualcosa di interessante. – mti2935

+0

telnet su 443 restituisce "Connessione rifiutata". Nulla viene aggiunto ai log di apache quando tento di accedere a https://mydomain.net – rocketas

+1

Interessante. Che ne dici se provi una connessione loopback, dall'host stesso, sulla porta 443? In altre parole, telnet localhost 443. Si connette? Sto cercando di isolare se si tratta di un problema di apache o di un problema di rete/firewall. – mti2935

risposta

17

In httpd-ssl.conf, hai Ascoltare 443

In caso contrario, prova ad aggiungere che, e riavviare apache.

+1

Non l'ho fatto. Mentre sto usando apache2.conf (cosa di Ubuntu?) Per caricare un ssl.conf esterno, non avevo questa direttiva da nessuna parte. Aggiungendolo direttamente al mio apache conf e riconfigurando la direttiva dell'host virtuale/mod_ssl.so includi cose risolte. Grazie – rocketas

+0

Questo ha funzionato anche per me, solo ho dovuto modificare "ports.conf" – CodeMouse92

+0

in Apache 2.4 il file è 'ports.conf' – Bakhshi

3

Se è possibile connettersi localmente (ad esempio con telnet localhost 443 come suggerisce mti), controllare se il firewall è configurato correttamente.

Nel mio caso, ufw stava bloccando tutto, quindi ho dovuto ufw allow 443 che ha risolto il problema sottostante allo stesso sintomo.

+1

Grazie, questa idea ci ha aiutato a capire il nostro problema. Per noi è stato comunque il firewall aziendale, quindi anche le persone dovrebbero considerarlo. – AlexMA

-5

A volte un iptables -F funziona. Avevo la porta 443 aperta per l'ingresso in Amazon, ma il sito non si apriva ancora nel mio browser.

Registrato sul sito, ha fornito un iptables -F e immediatamente il sito era accessibile.

+4

iptables -F cancellerà tutte le regole del firewall. Non è una buona idea. http://ipset.netfilter.org/iptables.man.html – Travis

4

in httpd.conf seguente è disabilitata per default:

# Secure (SSL/TLS) connections 
# Include conf/extra/httpd-ssl.conf  

semplicemente rimuovere il # dalla Includere e riavviare Apache.

+0

Probabilmente ora me ne andrò in orario di lavoro grazie a questo. Grazie. – haakym

6

Prima verifica se mod_ssl è abilitato. In caso contrario, abilitarlo eseguendo a2enmod ssl. Quindi controlla se Apache è in ascolto sulla porta 443 per https. Quindi controlla se il firewall non blocca la porta 443.

+1

era il firewall per me ... –

0

Mi sono appena imbattuto in una situazione in cui c'era un processo in ascolto sulla porta 443, il firewall era completamente aperto, SELinux era disabilitato e io ancora non poteva telnet alla porta 443. Neanche dal localhost.Ho continuato a ottenere:

telnet 127.0.0.1 443 
telnet: connect to address 127.0.0.1: Connection refused` 

si scopre l'iptables tabella NAT avuto alcune regole reindirizzare il traffico in arrivo sulla porta 443 a un'altra porta (8443). Nulla era in ascolto sulla porta 8443.

# iptables --table nat --list 
Chain PREROUTING (policy ACCEPT) 
target  prot opt source    destination   
REDIRECT tcp -- anywhere    anywhere   tcp dpt:https redir ports 8443 

La rimozione delle voci NAT pertinenti ha risolto il problema per me.