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

Ngày đăng: 2015-10-06 15:42:02 | Cập nhật: 2016-01-14 13:56:48

Sau khi trang bị chứng thư số SSL cho website, bạn có thể cấu hình để máy chủ tự chuyển từ HTTP sang HTTPS để gia tăng độ bảo mật cho website.

Apache
nginx
IIS5 và IIS6
IIS7.x
IIS8.x
Tomcat/JBoss

 

Cấu hình tự chuyển HTTP sang HTTPS 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à tìm đoạn sau:

RewriteEngine On

Nếu không tìm thấy đoạn trên, bạn cần thêm vào file cấu hình. Sau đó, thêm vào đoạn sau đây ngay phía sau: 

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

 

Cấu hình tự chuyển HTTP sang HTTPS trên nginx

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:

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;
}

Sau đó khởi động lại nginx:

service nginx restart

 

Cấu hình tự chuyển HTTP sang HTTPS trên IIS5 và IIS6

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

1. Tạo một Website có chức năng Redirect cho domain của bạn trên port 80 (HTTP).
2. 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).
3. 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:

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

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.

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.

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.

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.

Kể từ lúc này, khi bạn truy cập vào địa chỉ http://youdomain.com, IIS sẽ truy xuất vào Website Redirect trên port 80 (HTTP). Ngay sau đó, IIS sẽ redirect trình duyệt đến trang https://yourdomain.com và cuối cùng IIS sẽ truy xuất vào Website Chính trên port 443 (HTTPS).

 

Cấu hình tự chuyển HTTP sang HTTPS trên IIS7.x

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.

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

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></rules></rewrite> như sau:

<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.

 

Cấu hình tự chuyển HTTP sang HTTPS trên IIS8.x

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.

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

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.

 

Cấu hình tự chuyển HTTP sang HTTPS trên Tomcat/JBoss

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:

<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" />

<Connector port="80" enableLookups="false" redirectPort="443" />

 

Mở 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>

<!-- 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.