2013-07-16 70 views
14

我最近運行的Apache 2SSL但HTTPS不工作

當我嘗試通過HTTPS訪問我的網站我的Amazon EC2上的Ubuntu 12.04(32位)服務器上安裝SSL證書,它不會加載。當我執行nmap掃描時,我發現端口443未打開。

我試圖打開我的IP表中的端口443無濟於事。 iptables -L yeilds

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

下面是如何安裝的SSL

我修改/etc/init.d/apache2.conf包括ssl.conf中,並修改ssl.conf中,包括我的證書文件的必要 路徑,即

了SSLCertificateFile /路徑/文件 了SSLCertificateKeyFile /路徑/文件 SSLCertificateChainFile /路徑/文件

我配置我的安全格羅最多允許來自端口443的入站請求(TCP源:0.0.0.0/0)

當我用PHP

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

執行下面的測試,我得到 「裝」。

任何想法?

+1

當您嘗試從端口443打開從遠程計算機到您的服務器的telnet連接時會發生什麼情況?它連接嗎?如果是這樣,那麼你可以排除防火牆或路由問題,或者iptables的問題。如果你的apache日誌顯示任何有趣的東西,我也會很好奇。 – mti2935

+0

telnet到443返回「連接被拒絕」。當我嘗試訪問https://mydomain.net – rocketas

+1

時,沒有任何內容被添加到apache日誌中。如果你在端口443上從主機本身嘗試一個環回連接,那麼怎麼辦?換句話說,telnet localhost 443.是否連接?我試圖隔離這是否是apache問題或網絡/防火牆問題。 – mti2935

回答

17

在的httpd-ssl.conf中,你有 聽443

如果沒有,嘗試補充說,並重新啓動Apache的。

+1

我沒有。當我使用apache2.conf(ubuntu的東西?)來加載一個外部ssl.conf時,我沒有任何地方有這個指令。直接將其添加到我的apache conf並重新配置虛擬主機指令/ mod_ssl.so包括已解決的問題。謝謝 – rocketas

+0

這也適用於我,只有我必須在apache 2.4中修改「ports.conf」 – CodeMouse92

+0

該文件是'ports.conf' – Bakhshi

3

如果您可以在本地連接(例如按照mti的建議與telnet localhost 443),請檢查防火牆是否配置正確。

在我的情況下,ufw阻止了一切,所以我不得不ufw allow 443修復了相同症狀的基本問題。

+1

謝謝,這個想法幫助我們解決了我們的問題。對我們來說,這是公司的防火牆,所以人們也應該考慮這一點。 – AlexMA

-5

有時一個iptables -F的作品。我在亞馬遜打開了端口443,但該網站仍未在我的瀏覽器中打開。

登錄到該網站,給了一個iptables -F,並立即訪問該網站。

+4

iptables -F將刪除您的所有防火牆規則。不是一個好主意。 http://ipset.netfilter.org/iptables.man.html – Travis

4

在httpd.conf下面的默認情況下禁用:

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

只需從Include和重新啓動Apache刪除#。

+0

由於這個,我現在可能會在工作時間離開。謝謝。 – haakym

6

首先檢查是否啓用了mod_ssl。如果沒有,請通過運行a2enmod ssl來啓用它。然後檢查Apache是​​否在https端口443上偵聽。然後檢查防火牆是否阻塞了443端口。

+1

這是我的防火牆... –

0

我剛剛遇到一個情況,那裏有一個進程監聽端口443,防火牆完全打開,SELinux被禁用,並且我的仍然無法telnet到端口443.甚至沒有從本地主機。我一直得到:

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

原來iptables的NAT表有一些規則,將流量重定向未來在端口443到不同的端口(8443)。沒有什麼是偵聽端口8443.

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

刪除相關的NAT條目解決了我的問題。