Được rồi, vì vậy tôi chưa có kinh nghiệm với SSL / HTTPS trước đây, tôi chỉ từng xử lý HTTP tiêu chuẩn. Gần đây tôi đã bắt đầu làm việc trên một trang web sẽ cần SSL. Vì vậy, tất nhiên, tôi đã ra ngoài và nghiên cứu cách và bắt đầu. Tôi đã đến giai đoạn cài đặt chứng chỉ SSL thành công - ổ khóa màu xanh lá cây xuất hiện và máy chủ phản hồi các yêu cầu HTTPS trên cổng 443. Vấn đề tôi gặp phải là dù tôi có làm gì đi nữa, tôi không thể có bất kỳ trang nào xuất hiện bằng HTTPS / SSL, tuy nhiên chúng xuất hiện tốt trên cổng 80 / HTTP (cho đến khi tôi chuyển hướng HTTP sang HTTPS).
Nói một cách đơn giản, tôi có thể truy cập trang web HTTPS hoàn toàn tốt, tuy nhiên các trang của tôi không được gửi, thay vào đó 404 được gửi cho mỗi yêu cầu.
/etc/apache2/sites-av Available / [name [.
<VirtualHost *:80>
ServerName [serverName]
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
</VirtualHost>
<VirtualHost *:443>
ServerName [serverName]
ServerAdmin [email]
DocumentRoot [docRoot]
# I know the following SSL cert stuff is correct
SSLEngine On
SSLCertificateFile [...]/[domain].crt
SSLCertificateKeyFile [...]/[certificate].key
SSLCertificateChainFile [...]/[theotherone].crt
ErrorLog ${APACHE_LOG_DIR}/[custom]_error.log
CustomLog ${APACHE_LOG_DIR}/[custom]_access.log combined
<Directory "[docRoot]">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Tôi không chắc chắn nếu có bất cứ điều gì khác mà bạn có thể muốn xem, hoặc bất kỳ chi tiết nào khác, nhưng nếu có cho tôi biết.
BIÊN TẬP:
Sau một số tìm kiếm xung quanh trong các tệp cấu hình, tôi đã xác định rằng vì lý do nào, khi kết nối với HTTPS, máy chủ đang sử dụng gốc tài liệu trong cấu hình mặc định (/ var / www /) tuy nhiên cấu hình mặc định này không được bật với a2ensite. Tôi dường như không thể tìm ra nơi cấu hình gây ra điều này được đặt
Rewrite
chỉ thị của bạn trông giống như bạn đang cố chạy Apache phía sau một proxy ngược được cấu hình kém. Nếu Apache của bạn đang phục vụ tên miền trực tiếp mà không cần bất kỳ ủy quyền nào, bạn chỉ nên bỏ tất cả các lệnhRewrite
và thay thế chúng bằng một lệnhRedirect
. Và cấu hình các logfiles riêng cho từngVirtualHost
cái để bạn có thể thấy chính xácVirtualHost
quy trình nào của từng yêu cầu.