1. 程式人生 > >關於伺服器ssl配置以後,https無法訪問的問題

關於伺服器ssl配置以後,https無法訪問的問題

通常在專案裡,如果要用到ssl的話,一般都是自己先做個免費的證書在開發的過程中用的。等到上線了才去花錢買ssl證書。

這一回,自制了證書,在apache裡也配置好後,始終無法通過https訪問。調查步驟如下

step1. 確認apache配置。

httpd.conf裡,檢視mod_ssl.so和httpd-ssl.conf配置。如果沒有mod_ssl.so的話,通過apachectrl -l 檢視apache是否有內建變異了ssl模組。

httpd-ssl.conf裡,檢視Listen 443、server.crt、server.key的配置。

step2. apache重啟的時候,在error-log裡檢視有沒有錯誤日誌。

到這一步,可以確定配置應該沒什麼問題。

step3. 在伺服器裡,通過命令netstat -ano 確定443埠被監聽

step4. 本地通過命令 telnet www.xxxx.com 80 和 telnet www.xxxx.com 443 , 發覺80埠能訪問,443埠訪問不了。

step5. 在伺服器裡通過命令 wget http://www.xxx.com/ 和 wget https://www.xxxx.com/,同樣發覺80埠能連線的上,443埠連線不上。

Resolving staging.shop.connectingcard.com... xxx.xxx.xxx.xx
Connecting to www.xxxx.com|xxx.xxx.xxx.xx|:80... connected.
...

Resolving www.xxxx.com... xxx.xxx.xxx.xx
Connecting to www.xxxx.com|xxx.xxx.xxx.xx|:443...

到這一步,可以確定應該是443埠訪問不了的原因。

step 6. 檢視伺服器的iptables,確定443沒有禁止訪問。

step 7. 在伺服器,使用wget命令,通過本地IP訪問

wget https://xxx.xxx.xxx.xx/,得到如下結果

--2012-02-29 11:21:05--  https://xxx.xxx.xxx.xx/
Connecting to xxx.xxx.xxx.xx:443... connected.
ERROR: cannot verify xxx.xxx.xxx.xx's certificate, issued by `/C=JP/ST=oosaka/L=oosaka/O=oosaka/OU=oosaka/CN=www.xxxx.com':
  Self-signed certificate encountered.
ERROR: certificate common name `www.xxxx.com' doesn't match requested host name `xxx.xxx.xxx.xx'.
To connect to xxx.xxx.xxx.xx insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.

        在使用命令 wget --no-check-certificate https://xxx.xxx.xxx.xx/ 訪問,得到頁面內容。

到這一步可以確定,伺服器本身的443埠是開放的,只是從外部無法通過443埠訪問伺服器。

那麼,問題可能是,伺服器的網路環境中,防火牆的配置裡沒有對外開放伺服器這臺機子的443埠。

解決問題的話需要需要伺服器網路管理人員配合。