Di chuyển website http sang https

Di chuyển website http sang https

Vào năm 2018, chúng tôi quyết định chuyển sang giao thức HTTPS thường được sử dụng (hiện nay) để mã hóa dữ liệu nhạy cảm được gửi trên trang web của chúng tôi. Bài đăng này mô tả một số mẹo hữu ích dựa trên kinh nghiệm của chính chúng tôi, có thể hữu ích nếu bạn đang cân nhắc chuyển đổi.

Lý do chúng tôi chuyển https

Trở lại năm 2014 HTTPS đã trở thành một chủ đề nóng sau khi lỗi Heartbleed được công khai. Lỗi này cho phép những người không có ý định nghe thấy lưu lượng truy cập được chuyển qua SSL / TLS. Nó cũng cho họ khả năng chiếm quyền điều khiển và / hoặc đọc dữ liệu. May mắn thay, lỗi này đã được vá nhanh chóng sau khi phát hiện ra. Sự cố này là một hồi chuông cảnh tỉnh rằng việc mã hóa đúng cách thông tin người dùng qua internet là một điều cần thiết và không phải là một điều tùy chọn.

Để nhấn mạnh tầm quan trọng của việc mã hóa dữ liệu nhạy cảm, Google Chrome (kể từ tháng 1 năm 2017) hiển thị cảnh báo rõ ràng bên cạnh thanh địa chỉ bất cứ khi nào bạn truy cập trang web không mã hóa dữ liệu nhạy cảm, chẳng hạn như form.

Xem thêm 200 yếu tố xếp hạng google

Làm cách nào để chuyển đổi?

Vì điều quan trọng là dữ liệu  phải an toàn, chúng tôi đã thực hiện các bước vào năm 2014 để đảm bảo rằng chúng tôi có chứng chỉ SSL trên các trang web của riêng mình. Nếu bạn quyết định chuyển đổi (bạn thực sự nên làm như vậy!), Có một số điều bạn cần tính đến để đảm bảo trang web  hoàn toàn hoạt động như dự định sau khi bạn hoàn thành.

Bạn cần thay đổi tất cả các liên kết nội bộ của mình. Điều này cũng có nghĩa là cập nhật liên kết đến nội dung (nếu cần). Đảm bảo xem qua chủ đề  và thay đổi các tham chiếu đến CSS, hình ảnh và tệp JavaScript. Ngoài ra, bạn có thể thay đổi tất cả các liên kết của mình để bắt đầu bằng http:// thay vì https: //, điều này sẽ dẫn đến các URL tương đối với giao thức.

Đảm bảo CDN  cũng hỗ trợ SSL. Chúng tôi sử dụng MaxCDN, cho phép bạn dễ dàng thiết lập SSL trên miền phụ CDN của mình.

Có nhiều cấp độ SSL khác nhau mà bạn có thể lựa chọn, mỗi cấp độ đều có ưu và nhược điểm riêng. Bạn sẽ tìm thấy thêm thông tin về điều đó sau này.

Đảm bảo bạn có một liên kết chuẩn hiện diện trong phần <head> của trang web để chuyển hướng chính xác tất cả lưu lượng truy cập đến từ http: // sang https: //.

Google cũng đã xuất bản một hướng dẫn hữu ích về cách chuyển sang HTTPS mà không ảnh hưởng lớn đến xếp hạng , bạn có thể tìm thấy hướng dẫn này tại đây.

Xem thêm liên kết là gì

Điều này ảnh hưởng đến thứ hạng của tôi như thế nào?

Giống như đã nêu trong phần trước, việc chuyển từ HTTP sang HTTPS có thể ảnh hưởng một chút đến thứ hạng  nếu bạn không lập kế hoạch phù hợp. Tuy nhiên, sau khi bạn chuyển sang HTTPS, thứ hạng  sẽ thực sự cải thiện theo thời gian. Vào năm 2014, Google đã thông báo rằng việc có chứng chỉ SSL sẽ được coi là một yếu tố xếp hạng tích cực, vì vậy rất đáng để đầu tư.

Để đảm bảo Googlebot có thể lập chỉ mục lại trang web  nhanh hơn sau khi di chuyển, hãy đảm bảo bạn di chuyển sang https: // trong những giờ có lưu lượng truy cập thấp. Bằng cách này, Googlebot có thể sử dụng nhiều tài nguyên hơn trên máy chủ . Chỉ cần lưu ý rằng một trang web cỡ trung bình có thể mất một thời gian để lấy lại thứ hạng. Có một sơ đồ trang web? Sau đó, Googlebot có thể tính toán lại và lập chỉ mục lại trang web  nhanh hơn.

Xem thêm 8 yếu tố quan trọng xếp hạng google

Thiết lập HTTPS & SSL trên máy chủ

Nói chung, các nhà cung cấp dịch vụ lưu trữ có dịch vụ cho phép bạn kích hoạt HTTPS / đặt hàng chứng chỉ. Có một số loại chứng chỉ bạn có thể chọn, chúng khác nhau theo một vài cách. Mỗi biến thể cũng có thẻ giá riêng, vì vậy trước khi mua, hãy đảm bảo rằng bạn có chứng chỉ phù hợp với nhu cầu và ngân sách của mình!

Nếu bạn hơi eo hẹp về tiền mặt và hiểu biết về công nghệ, hãy xem Let’s Encrypt để nhận chứng chỉ (!) Miễn phí.

Nếu bạn chạy và quản lý máy chủ web của riêng mình, có một số điều bạn sẽ phải bật trong cấu hình máy chủ của mình trước khi có thể sử dụng chứng chỉ SSL. Hướng dẫn này giải thích các bước cần thực hiện để có chứng chỉ chạy trên máy chủ .

OCSP

Việc phải kiểm tra tính hợp lệ của chứng chỉ SSL có thể dẫn đến tốc độ tải. Để khắc phục điều này, bạn có thể tận dụng OCSP. OCSP là một tính năng cho phép máy chủ tải xuống bản sao phản hồi của nhà cung cấp chứng chỉ khi kiểm tra chứng chỉ SSL. Điều này có nghĩa là khi trình duyệt kết nối với máy chủ, nó sẽ kiểm tra tính hợp lệ của chứng chỉ dựa trên bản sao trên máy chủ thay vì phải truy vấn chính nhà cung cấp chứng chỉ, dẫn đến cải thiện hiệu suất đáng kể.

Xem thêm các công cụ hỗ trợ tốc độ

Apache

Trước khi bật OCSP trên máy chủ Apache , vui lòng kiểm tra xem bạn có đang chạy phiên bản 2.3.3+ của Apache hay không bằng cách chạy lệnh apache2 -v (hoặc httpd -v) trên máy chủ . Các phiên bản Apache thấp hơn không hỗ trợ tính năng này.

Nếu bạn đã trải qua quá trình thiết lập HTTPS trên máy chủ của mình như được mô tả trong phần ‘Thiết lập HTTPS & SSL trên máy chủ ‘, thì bạn nên tiếp xúc với cấu hình VirtualHost được tạo riêng để sử dụng với HTTPS / SSL.

Trong tệp đó, hãy thực hiện các bước sau:

  1. Trong tệp tin vùng <VirtualHost></VirtualHost> chúng ta thêm lệnh SSLUseStapling on.
  2. Ngay phía trên phần <VirtualHost></VirtualHost> thêm dòng lệnh SSLStaplingCache shmcb:/tmp/stapling_cache(128000)
  3. Kiểm tra xem cấu hình có còn hợp lệ không bằng cách chạy lệnh: apachectl -t. Nếu vậy, hãy tải lại Apache bằng cách chạy lại service apache2 reload.

Nginx

Nginx cũng hỗ trợ OCSP. Trước khi chỉnh sửa cấu hình máy chủ, vui lòng kiểm tra xem bạn có đang chạy phiên bản 1.3.7+ của Nginx hay không bằng cách chạy lệnh nginx -v trên máy chủ . Các phiên bản thấp hơn của Nginx không hỗ trợ tính năng này.

Nếu bạn đã trải qua quá trình thiết lập HTTPS trên máy chủ của mình như được mô tả trong phần ‘Thiết lập HTTPS & SSL trên máy chủ ‘, thì bạn nên tiếp xúc với cấu hình Nginx được tạo riêng để sử dụng với HTTPS / SSL.

Trong tệp đó, hãy thêm các dòng sau vào phần server{}:

ssl_stapling trên;

ssl_stapling_verify trên;

ssl_trusted_certificate /etc/ssl/private/ca-certs.pem;

Dòng cuối cùng tham chiếu đến tệp chứa danh sách các chứng chỉ CA đáng tin cậy. Tệp này được sử dụng để xác minh chứng chỉ ứng dụng khách khi sử dụng OCSP.

Sau khi thêm các dòng này vào tệp, hãy kiểm tra xem cấu hình có còn hợp lệ hay không bằng cách chạy service nginx configtest. Nếu vậy, hãy tải lại Nginx bằng cách chạy lệnh service nginx reload.

Strict Transport Security header

Strict Transport Security header (HSTS) là một tính năng tiện dụng khác về cơ bản bắt buộc các trình duyệt sử dụng yêu cầu HTTPS thay vì HTTP tương đương. Kích hoạt tính năng này tương đối dễ dàng.

Apache

Nếu bạn đang chạy Apache, trước tiên hãy bật mô-đun Apache Headers bằng cách chạy lệnh a2enmod headers. Sau đó, chỉ cần thêm dòng sau vào cấu hình VirtualHost  (trong phần <VirtualHost> </VirtualHost>) mà bạn đã thiết lập trước đó cho HTTPS:

Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains”

Tải lại dịch vụ Apache và bạn đã sẵn sàng!

Nginx

Nginx yêu cầu bạn thêm dòng sau vào phần server {} của tệp cấu hình máy chủ :

add_header Strict-Transport-Security max-age=31536000;

Thử nghiệm

Để xem chứng chỉ SSL  có hoạt động bình thường hay không, hãy truy cập SSL Labs, điền vào tên miền  và xem bạn nhận được loại điểm nào.

Chuyển hướng URL

Để đảm bảo các yêu cầu được chuyển hướng đúng đến URL HTTPS, bạn cần thêm một dòng bổ sung vào cấu hình của mình. Bằng cách này, lưu lượng truy cập cố gắng truy cập trang web  qua HTTP, sẽ tự động được chuyển hướng đến HTTPS.

Apache

Trong cấu hình VirtualHost mặc định  (vì vậy cấu hình được sử dụng cho các yêu cầu HTTP), hãy thêm thông tin sau để đảm bảo URL được chuyển hướng đúng cách:

Trong tệp đó, hãy thực hiện các bước sau:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Nginx

Trong Nginx, hãy thay đổi tệp cấu hình mặc định được sử dụng cho các yêu cầu HTTP và thay đổi nó như sau:

server {

    listen 80;

    server_name your-site.com www.your-site.com;

    return 301 https://your-site.com$request_uri;

}

Đừng quên tải lại Nginx trước khi thử nghiệm những thay đổi này.

Phần kết luận

“Tôi có nên chuyển sang HTTPS không?” Câu trả lời ngắn gọn: Có. Sử dụng HTTPS đảm bảo rằng thông tin cá nhân (người dùng) đang được gửi trên web theo cách an toàn hơn. Đặc biệt nếu bạn đang xử lý các giao dịch tiền tệ, HTTPS là điều bắt buộc.

Loại chứng chỉ nào bạn kết thúc sẽ phụ thuộc vào trường hợp sử dụng cụ thể và ngân sách. Đảm bảo nghiên cứu đúng các lựa chọn  trước đó.

Đọc thêm: Bảo mật WordPress trong một vài bước đơn giản

Leave a Reply