2013-07-16 41 views
14

Gần đây tôi đã cài đặt một chứng chỉ SSL trên máy chủ 12.04 (32bit) Amazon EC2 Ubuntu của tôi chạy Apache 2.SSL cài đặt trên Apache2 nhưng HTTPS không làm việc

Khi tôi cố gắng để truy cập vào trang web của tôi qua https, nó không tải. Khi tôi thực hiện quét nmap, tôi thấy rằng cổng 443 không mở.

Tôi đã cố gắng mở cổng 443 trong bảng ip của mình mà không có kết quả. iptables -L yeilds

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

Đây là cách tôi cài đặt ssl

tôi sửa đổi để bao gồm /etc/init.d/apache2.conf ssl.conf và ssl.conf sửa đổi để bao gồm các điều kiện tiên quyết đường dẫn của file chứng chỉ , tức là

SSLCertificateFile/path/file SSLCertificateKeyFile/path/file SSLCertificateChainFile/path/file

tôi cấu hình Gro an ninh của tôi lập để cho phép các yêu cầu gửi đến từ các cổng 443 (nguồn TCP: 0.0.0.0/0)

Khi tôi thực hiện các thử nghiệm sau đây với php

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

tôi nhận được "nạp".

Bất kỳ ý tưởng nào?

+1

điều gì sẽ xảy ra khi bạn thử mở kết nối telnet từ máy từ xa đến máy chủ của bạn trên cổng 443? Nó có kết nối không? Nếu có, bạn có thể loại bỏ tường lửa hoặc sự cố định tuyến hoặc sự cố với iptables. Tôi cũng sẽ tò mò nếu nhật ký apache của bạn đang hiển thị bất cứ điều gì thú vị. – mti2935

+0

telnet to 443 trả về "Kết nối bị từ chối". Không có gì được thêm vào nhật ký apache khi tôi cố gắng truy cập https://mydomain.net – rocketas

+1

Thú vị. Làm thế nào về nếu bạn thử một kết nối loopback, từ máy chủ chính nó, trên cổng 443? Nói cách khác, telnet localhost 443. Điều đó có kết nối không? Tôi đang cố gắng để cô lập cho dù đây là một vấn đề apache hoặc một vấn đề mạng/tường lửa. – mti2935

Trả lời

17

Trong httpd-ssl.conf, bạn có Nghe 443

Nếu không, hãy thử thêm rằng, và khởi động lại apache.

+1

Tôi không. Trong khi tôi đang sử dụng apache2.conf (ubuntu điều?) Để tải một ssl.conf bên ngoài, tôi đã không có chỉ thị này bất cứ nơi nào. Thêm nó trực tiếp vào conf apache của tôi và cấu hình lại chỉ thị máy chủ ảo/mod_ssl.so bao gồm những thứ đã được giải quyết. Thanks – rocketas

+0

Điều này làm việc cho tôi là tốt, chỉ có tôi đã phải sửa đổi "ports.conf" – CodeMouse92

+0

trong apache 2.4 tập tin là 'ports.conf' – Bakhshi

3

Nếu bạn có thể kết nối cục bộ (ví dụ: với telnet localhost 443 như mti gợi ý), hãy kiểm tra xem tường lửa có được định cấu hình đúng hay không.

Trong trường hợp của tôi, ufw đã chặn mọi thứ, vì vậy tôi đã phải ufw allow 443 để khắc phục sự cố cơ bản với cùng một triệu chứng.

+1

Cảm ơn, ý tưởng này đã giúp chúng tôi tìm ra vấn đề của mình. Đối với chúng tôi, đó là tường lửa của công ty, vì vậy mọi người cũng nên cân nhắc điều đó. – AlexMA

-5

Đôi khi một công cụ iptables -F hoạt động. Tôi đã mở cổng 443 để vào trong Amazon, nhưng trang web vẫn chưa mở trong trình duyệt của tôi.

Đã đăng nhập vào trang web, cung cấp iptables -F và ngay lập tức trang web có thể truy cập được.

+4

iptables -F sẽ xóa tất cả các quy tắc tường lửa của bạn. Không phải là một ý tưởng tốt. http://ipset.netfilter.org/iptables.man.html – Travis

4

Trong httpd.conf sau bị tắt theo mặc định:

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

Đơn giản chỉ cần loại bỏ cáC# từ Include và khởi động lại Apache.

+0

Tôi có lẽ sẽ rời khỏi nơi làm việc ngay bây giờ nhờ điều này. Cảm ơn bạn. – haakym

6

Kiểm tra đầu tiên nếu mod_ssl được bật. Nếu không, hãy kích hoạt nó bằng cách chạy a2enmod ssl. Sau đó kiểm tra xem Apache có đang nghe trên cổng 443 cho https không. Sau đó kiểm tra xem tường lửa có đang chặn cổng 443.

+1

đó là tường lửa cho tôi ... –

0

Tôi vừa gặp phải tình huống có quá trình nghe trên cổng 443, tường lửa đã hoàn toàn mở, SELinux bị tắt và tôi vẫn không thể telnet đến cổng 443. Ngay cả từ localhost.Tôi liên tục nhận được:

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

Hóa ra iptables NAT bảng đã có một số quy tắc chuyển hướng truy cập đến ở trên cổng 443 tới một cổng khác nhau (8443). Không có gì đang nghe trên cổng 8443.

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

Xóa các mục NAT có liên quan đã khắc phục sự cố cho tôi.

Các vấn đề liên quan