Làm cách nào để chuyển hướng từ HTTPS sang HTTP trước lỗi máy chủ?


10

Tôi đã từng vận hành một trang web có chứng chỉ SSL, nhưng đã ngừng sử dụng chứng chỉ SSL. Vấn đề là hầu hết các liên kết bên ngoài đến trang web đều sử dụng tiền tố https: //.

Tôi đã thử chuyển hướng https: // sang http: // trong tệp .htaccess:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}

Nhưng dường như, như đã được chỉ ra ở nơi khác, rằng máy chủ đang cố lấy lại chứng chỉ trước khi kích hoạt chuyển hướng. Do đó, một lỗi được hiển thị trước khi hoàn thành chuyển hướng. Lỗi là một cảnh báo rằng chứng chỉ đã hết hạn hoặc nếu tôi xóa yêu cầu ký chứng chỉ, thì lỗi SSL nhận được một bản ghi vượt quá độ dài tối đa cho phép.

Có cách nào để cho phép các liên kết đến được chuyển hướng đúng không?


1
SSL được đàm phán trước khi bất kỳ yêu cầu HTTP nào diễn ra, như tôi nghĩ bạn đã tìm ra. Tôi nghĩ rằng bạn sẽ gặp vấn đề khi làm việc này như bạn muốn, nhưng tôi đang bỏ phiếu để di chuyển sang ServerFault.com trong trường hợp ai đó có câu trả lời tốt hơn.
Michael

Dường như điều này có thể khó đạt được. Thật là một người lập dị thực sự khi mất các liên kết được xây dựng trên internet và tệ hơn nữa là khách truy cập nghĩ rằng trang web đã bị xâm phạm hoặc biến mất.

Câu trả lời:


16

Sự khác biệt giữa http và https là các yêu cầu https được gửi qua kết nối được mã hóa ssl. Kết nối được mã hóa ssl phải được thiết lập giữa trình duyệt và máy chủ trước khi trình duyệt gửi yêu cầu http.

Các yêu cầu Https trên thực tế là các yêu cầu http được gửi qua kết nối được mã hóa ssl. Nếu máy chủ từ chối thiết lập kết nối được mã hóa ssl thì trình duyệt sẽ không có kết nối để gửi yêu cầu qua. Trình duyệt và máy chủ sẽ không có cách nào nói chuyện với nhau. Trình duyệt sẽ không thể gửi url mà nó muốn truy cập và máy chủ sẽ không thể phản hồi với chuyển hướng đến một url khác.

Vì vậy, điều này là không thể. Nếu bạn muốn trả lời các liên kết https, thì bạn cần chứng chỉ ssl.


4

Không, nếu có thể chuyển hướng từ https sang http mà không có chứng chỉ thực, thì đó sẽ là một lỗ hổng bảo mật lớn.

Hãy xem xét một tên tội phạm bằng cách nào đó có thể khiến ngân hàng bảo mật máy chủ chuyển hướng đến một kết nối không an toàn mà không cần chứng chỉ https thực sự cho trang web, nó sẽ cho phép tên tội phạm chiếm quyền điều khiển mà không cần người dùng biết về nó.

Giải pháp duy nhất tôi có thể thấy là lấy chứng chỉ giá rẻ và sau đó thực hiện chuyển hướng bình thường từ trang HTTPS (mà người dùng không thể truy cập mà không có chứng chỉ hợp lệ) đến trang web thông thường cho các liên kết bên ngoài đó.


Phải, nó tốt hơn theo cách này. Quá tệ, không có cách nào để thiết lập ghi đè được phê duyệt là chủ sở hữu trang web.

-2

Bạn nên tạo trong .htaccess của bạn

ErrorDocument 500 http://anotherserer.com/errorPage.php

Cám ơn vì sự gợi ý. Ngay cả với điều này trong .htaccess, nó không sử dụng trang tôi nhập cho lỗi 500 cho lỗi cụ thể này. Có vẻ như, có lẽ, không có gì trong .htaccess đang được kích hoạt do lỗi ban đầu.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.