Làm cách nào để đơn giản làm cho toàn bộ trang web sử dụng kết nối an toàn? [đóng cửa]


18

Trong Drupal 7, tôi đã sử dụng mô-đun đăng nhập Bảo mật để chạy trang trên một kết nối an toàn, nhưng có vẻ như nó không trở lại http khi đăng xuất. Tôi muốn chỉ chạy toàn bộ trang web dưới dạng https: // như một sự đơn giản hóa.

Có một cách đơn giản để làm điều này mà không cần sử dụng mô-đun?


Hôm nay tôi vừa cài đặt mô-đun Htaccess , thay đổi cài đặt hiện có và triển khai cấu hình này. Có vẻ như hoạt động hoàn hảo ...
Aleksey Zubenko

Câu trả lời:



35

Nếu bạn muốn chuyển hướng tất cả các trang của mình bị buộc phải sử dụng SSL thì hãy thêm nó vào .htaccesstệp của bạn .

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Điều này nên được đặt trực tiếp sau RewriteEngine on nếu bạn không có viết lại trước đó.


1

Một mẹo hữu ích khác, nếu bạn có quyền truy cập root vào Apache để thay đổi các chỉ thị vhost của bạn là thêm điều này vào chỉ thị SSL cho trang web. Hầu hết các trình duyệt hiện đại đều tuân theo chỉ thị này (IE9 không)

Header always set Strict-Transport-Security "max-age=63072000"

Bạn có thể đặt tuổi thành bất cứ điều gì bạn muốn. Điều này làm là thông báo cho các trình duyệt web tuân theo điều này CHỈ sử dụng SSL để liên lạc với trang web của bạn và không bao giờ đơn giản là HTTP. Điều này thêm một chút đảm bảo với toàn bộ tình huống chuyển đổi HTTP / HTTPS.

Đây là một hack tiện dụng.

LƯU Ý: Điều này sẽ chỉ hoạt động nếu bạn có chứng chỉ SSL GIÁ TRỊ (không tự ký, hết hạn hoặc không chính xác) trên trang web của bạn. Nếu bạn không, nó sẽ ngăn trình duyệt kết nối với nó cho đến khi hết thời gian tối đa.


0

Có một tùy chọn khác mà bạn có thể muốn dùng thử, đó là những gì tôi cần cho một trong các bản cài đặt của mình và không yêu cầu thêm mô-đun nào:

Đầu tiên, trong .htaccess của bạn:

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^www\.yourdomainhere\.com*
RewriteRule ^(.*)$ https://www.yourdomainhere.com/ [L,R=301]

Điều này nên được thêm vào sau:

RewriteEngine on

Sau đó, trong cài đặt của bạn.php:

$base_url = 'https://www.yourdomainhere.com'; 

Ngoài ra, bạn có thể muốn kiểm tra các tài nguyên bên ngoài, chẳng hạn như phông chữ Web và các tài liệu tham khảo khác cần đến từ một miền https để tránh cảnh báo chứng chỉ.

Hi vọng điêu nay co ich.


-2

Có một giải pháp khác, đó là chỉ cần thêm $ _SERVER ['HTTPS'] = 'On'; trong tập tin settings.php

Xem thêm tại https://www.drupal.org/https-inif#comment-9901783

Tuy nhiên, nó xuất hiện phương thức htaccess chuyển hướng không phân biệt, trong khi tệp settings.php yêu cầu xóa bộ đệm của trình duyệt.


2
Không tự mình thực hiện thủ thuật. Phải xóa bộ đệm drupal, nhưng sau đó, mặc dù các trang drupal được phục vụ dưới dạng https, nhưng tài nguyên như hình ảnh thì không. Chúng đã được tải, nhưng trình duyệt đã cảnh báo về nó (trong bảng điều khiển) và biểu tượng khóa có cảnh báo. Tôi đã phải thêm chỉ thị htaccess từ câu trả lời của Ricks để có được biểu tượng khóa thích hợp.
phổ biến
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.