Hướng dẫn cấu hình website tự động chuyển từ HTTP sang HTTPS

Khi bạn cài đặt SSL lên hosting thì bạn có thêm lựa chọn truy cập vào website qua giao thức https chứ không phải là nó sẽ tự động chuyển hẳn sang giao thức https, và việc này phụ thuộc vào máy chủ của bạn.

Để tự động chuyển hướng khi vào http:// sẽ chuyển sang https://. Bạn có thể áp dụng các cách dưới đây:

1. Cấu hình trên Apache 

Bạn có thể dùng file .htaccess vốn luôn được hỗ trợ bởi các máy chủ chạy Apache. Mở file .htaccess và thêm một đoạn mã dưới đây vào file .htaccess 

1
2
3
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

 

2. Cấu hình trên Nginx

Chúng ta mở file cấu hình nginx.conf (hoặc /etc/nginx/sites-enabled/domain.conf) và tìm đoạn cấu hình cho website trên port 80, sau đó điều chỉnh như sau:

1
2
3
4
5
server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;
}

Cuối cùng khởi động lại nginx: service nginx restart 

3. Cấu hình trên Tomcat/JBoss

Đầu tiên bạn mở file cấu hình server.xml của Tomcat (thường nằm trong thư mục tomcat/conf) và tìm các đoạn cấu hình cho các port 80 và 443.

Trong phần cấu hình port 80 chỉnh lại như bên dưới:

 
1 |<Connector port="443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100"
  scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS"
  keyAlias="tomcat" keystoreFile="/usr/local/ssl/keystore/server.jks"
  keystorePass="your_keystore_password" />
2 |<Connector port="80" enableLookups="false" redirectPort="443" />

Tiếp theo đến file cấu hình web.xml của website và thêm vào đoạn sau đây ở cuối file, nhưng trước thẻ </web-app>

1
2
3
4
5
6
7
8
9
10
<!-- SSL settings. Only allow HTTPS access -->
    <security-constraint>
      <web-resource-collection>
          <web-resource-name>Entire Application</web-resource-name>
          <url-pattern>/*</url-pattern>
      </web-resource-collection>
          <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
          </user-data-constraint>
    </security-constraint>

Sau đó bạn cần khởi động lại Tomcat.

4. Cấu hình trên IIS5 và IIS6

Nguyên tắc cơ bản như sau:

  • Tạo một Website có chức năng Redirect cho domain của bạn trên port 80 (HTTP).
  • Cấu hình Website chính cho domain của bạn chỉ chạy port 443 (HTTPS) và "Require SSL". Không cho Website chính chạy port 80 (HTTP).
  • Dùng chức năng Redirect của IIS để chuyển website trên port 80 (HTTP) về website trên port 443 (HTTPS).

Bạn có thể tham khảo các bước cụ thể như sau:

Bước 1: Từ màn hình IIS Manager, nhấp chuột phải vào Website chính, chọn Properties.

Bước 2: Trong màn hình Properties, chọn tab Directory Security. Trong mục Secure Communications, nhấn nút Edit. Trong màn hình Secure Communications, nhấp chọn mục Require secure channel (SSL). Sau đó nhấn OK.

Bước 3: Chọn tab Website, sau đó xóa port 80 trong mục TCP Port, và kiểm tra lại mục SSL Port cần có giá trị là 443. Sau đó nhấn Apply.

Bước 4: Tạo một website mới và đặt tên là "Website Redirect" trên port 80. Mục Host header nhập vào tên miền của Website chính. Trong mục Website Home Directory bạn chọn 1 thư mục tạm nào đó (tốt nhất là 1 thư mục rỗng). Trong mục Website Access Permissions chọn quyền Read.

Bước 5: Nhấp chuột phải vào Website Redirect và chọn Properties. Sau đó chọn tab Home Directory. Trong mục The content for this resource should come from, chọn mục A redirection to a URL và nhập vào giá trị https://yourdomain.com. Sau đó nhấn Apply.

 

5. Cấu hình trên IIS7.x

Bước 1: Từ màn hình IIS Manager, chọn website cần cấu hình. Trong khung bên phải chọn SSL Settings. Sau đó đảm bảo không chọn mục Require SSL rồi nhấn Apply.

Bước 2: Tải về và cài đặt module URL Rewrite 2.0 cho IIS7

Tải về module URL Rewrite phiên bản 64 bit cho IIS7

Tải về module URL Rewrite phiên bản 32 bit cho IIS7

Bước 3: Sau khi cài đặt thành công module trên, bạn dùng Notepad mở file web.config trong thư mục gốc của website và thêm vào đoạn sau giữa các thẻ <rewrite><rules> và </rules></rewrite> như sau:

1
2
3
4
5
6
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions><add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>

 

Sau khi thêm, file web.config sẽ có dạng như sau:

Các kết nối vào website trên HTTP sẽ được tự động chuyển sang HTTPS.

6. Cấu hình trên IIS8.x

Bước 1: Từ màn hình IIS Manager, chọn website cần cấu hình. Trong khung bên phải chọn SSL Settings. Sau đó đảm bảo không chọn mục Require SSL rồi nhấn Apply.

Bước 2: Tải về và cài đặt module URL Rewrite 2.0 cho IIS8

Tải về module URL Rewrite phiên bản 64 bit cho IIS8

Tải về module URL Rewrite phiên bản 32 bit cho IIS8

Bước 3: Sau khi cài đặt thành công module trên, mở màn hình IIS Manager và chọn Website cần cấu hình. Trong khung bên phải, nhấp đúp vào mục URL Rewrite. Sau đó chọn mục Add Rule và cấu hình như sau:

NAME

       Select: Blank Rule

       Name: http to https

       Match URL – Requested URL: Matches the Pattern

       Match URL – Using: Regular Expression

       Pattern: (.*)

 

CONDITIONS

       Conditions: Add

       Condition Input: {HTTPS}

       Check if input string: Matches the Pattern

       Pattern: ^OFF$

       Nhấn OK

 

ACTION

      Action type: Redirect

      Redirect URL: https://{HTTP_HOST}/{R:1}

      Redirect type: See Other (303)

      Nhấn Apply

Lưu ý: Nếu bạn muốn hỗ trợ redirect cả sub folder thì chỉnh như sau:

CONDITIONS

     Conditions: Add

     Condition Input: {HTTPS}

     Check if input string: Matches the Pattern

     Pattern: off

     Nhấn OK


ACTION

      Action type: Redirect

      Redirect URL: https://{HTTP_HOST}/{R:1}

      Redirect type: Permanent (301)

      Nhấn Apply

Các kết nối vào website trên HTTP sẽ được tự động chuyển sang HTTPS.