Cách chuyển WordPress từ HTTP sang HTTPS

Bắt đầu từ tháng 7/2018, Google thông báo rằng Chrome sẽ đánh dấu Không bảo mật với các trang web không có SSL. Vì vậy, nhiều người đang muốn chuyển WordPress từ giao thức truyền thông HTTP không bảo mật sang giao thức an toàn HTTPS. Trong bài viết này chúng tôi sẽ hướng dẫn bạn cách chuyển trang web WordPress của bạn từ HTTP sang HTTPS bằng cách thêm chứng chỉ SSL.

Nếu bạn không biết SSL hoặc HTTPS thì cũng đừng lo lắng. Chúng tôi sẽ giải thích về điều đó.

HTTPS là gì?

HTTPS hoặc Secure HTTP là một phương thức mã hóa bảo mật kết nối giữa trình duyệt của người dùng với máy chủ của bạn. Phương thức mã hóa này gây khó khăn cho tin tặc trong việc nghe lén kết nối.

Hằng ngày, chúng ta chia sẻ thông tin cá nhân với nhiều website khác nhau. Đó có thể là thông tin mua hàng hay đơn giản là đăng nhập vào các thông tin nhạy cảm (ví dụ như truy cập thẻ tín dụng)

Để bảo vệ việc truyền dữ liệu, bạn cần tạo một kết nối an toàn.

Đó là khi bạn cần đến SSL và HTTPS.

Mỗi trang web được cấp một chứng chỉ SSL duy nhất phục vụ mục đích nhận dạng. Nếu máy chủ yêu cầu HTTPS nhưng chứng chỉ của máy chủ không khớp với chứng chỉ đã được cấp thì hầu hết các trình duyệt hiện đại sẽ cảnh báo khi người dùng kết nối với trang web.

Bây giờ có lẽ bạn đang thắc mắc tại sao phải cần chuyển trang web WordPress của mình từ HTTP sang HTTPS, đặc biệt khi nó là một blog đơn giản hoặc một trang web doanh nghiệp nhỏ không thực hiện các khoản thanh toán nào.

Tại sao bạn cần chuyển sang HTTPS và cài đặt chứng chỉ SSL?

Vào năm ngoái, Google đã công bố một kế hoạch nhằm cải thiện an ninh web tổng thể bằng cách khuyến khích chủ sở hữu trang web thực hiện chuyển đổi từ HTTP sang HTTPS. Là một phần của kế hoạch này, trình duyệt web Chrome sẽ đánh dấu tất cả các trang web không có chứng chỉ SSL là “Not Secure” (không an toàn) bắt đầu từ tháng 7 năm 2018.

Một phần trong bài thông cáo, Google cho biết sẽ ưu tiên cho các trang web có SSL, cụ thể là họ sẽ nhận được nhiều lợi ích hơn về SEO và có thứ hạng cao hơn. Kể từ năm ngoái, một số lượng lớn các trang web đã chuyển từ HTTP sang HTTPS.

Google đã từng đưa ra cảnh báo “Not Secure” trong trình duyệt Chrome. Ví dụ, nếu ai đó truy cập trang web HTTP bằng cửa sổ ẩn danh, trang web đó sẽ bị đánh dấu là Không an toàn. Nếu truy cập trang web HTTP ở chế độ thông thường và điền vào biểu mẫu liên hệ hoặc biểu mẫu khác thì trang web đó cũng bị đánh dấu như vậy.

Khi người đọc và khách hàng của bạn thấy thông báo này, họ sẽ có một cái nhìn không thiện cảm về doanh nghiệp của bạn.

Đây là lý do tại sao tất cả các trang web cần chuyển từ HTTP sang HTTPS và cài đặt chứng chỉ SSL ngay lập tức.

Chưa kể nếu bạn muốn chấp nhận thanh toán trực tuyến trên cửa hàng thương mại điện tử của mình, bạn cần phải có SSL.

Hầu hết các công ty thanh toán trực tuyến như Stripe, PayPal Pro, Authorize.net, vv…. sẽ yêu cầu bạn phải có kết nối an toàn trước khi chấp nhận thanh toán.

Yêu cầu để sử dụng HTTPS/SSL trên một trang web WordPress 

Các yêu cầu để sử dụng SSL trong WordPress không hề khó khăn. Tất cả những gì bạn cần làm là mua một chứng chỉ SSL hoặc đôi khi bạn có thể không cần tốn phí để mua.

Các công ty hosting tốt nhất WordPress đang cung cấp chứng chỉ SSL miễn phí cho tất cả người dùng của họ:

Bạn có thể đọc bài viết Cách cài đặt chứng chỉ SSL miễn phí cho trang web WordPress để có thêm kiến thức.

Nếu công ty hosting của bạn không cung cấp chứng chỉ SSL miễn phí thì bạn cần mua chứng chỉ SSL.

Chúng tôi khuyên bạn nên sử dụng Domain.com bởi vì họ cung cấp thỏa thuận SSL tốt nhất cho cả chứng chỉ SSL thông thường và chứng chỉ SSL trả phí.

Khi mua chứng chỉ SSL bạn cũng sẽ được sở hữu con dấu trang web TrustLogo cho trang web của mình. Mỗi chứng chỉ SSL đều có bảo hiểm bảo mật tối thiểu là 10,000$.

Sau khi mua chứng chỉ SSL bạn cần yêu cầu nhà cung cấp dịch vụ hosting cài đặt cho bạn.

Thiết lập WordPress để sử dụng SSL và HTTPs

Sau khi kích hoạt chứng chỉ SSL cho tên miền của mình, bạn cần phải thiết lập WordPress để sử dụng giao thức HTTPs và SSL cho trang web của mình.

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn 2 cách giúp bạn làm điều này và bạn có thể chọn một phương pháp phù hợp với mình.

Cách 1: Thiết lập SSL/HTTPS cho WordPress bằng cách sử dụng Plugin

Phương pháp này rất đơn giản. Chúng tôi khuyến khích những người mới nên sử dụng cách này.

Đầu tiên, bạn cần cài Really Simple SSL. Nếu cần hướng dẫn, hãy xem bài viết của chúng tôi về cách cài đặt plugin trong WordPress.

Sau khi kích hoạt, bạn cần truy cập vào trang Settings » SSL. Plugin sẽ tự động phát hiện chứng chỉ SSL và thiết lập WordPress để sử dụng HTTPs.

Plugin sẽ sử lý mọi thứ kể cả lỗi Mixed content (nội dung hỗn hợp). Dưới đây là những gì plugin xử lý:

Lưu ý: Plugin sửa lỗi mixed content bằng cách sử dụng kĩ thuật đệm đầu ra. Nó có thể tác động tiêu cực đến hiệu suất vì nó thay thế nội dung khi trang web tải trang. Tác động này chỉ thấy khi tải trang lần đầu tiên và nó sẽ giảm đáng kể nếu bạn sử dụng plugin bộ nhớ đệm.

Mặc dù plugin có thể giữ SSL và tắt plugin một cách an toàn nhưng điều này không hoàn toàn đúng. Bạn sẽ cần plugin hoạt động liên tục bởi nếu tắt plugin sẽ gây ra lỗi mixed content.

Cách 2: Thiết lập SSL/HTTPS trong WordPress theo cách thủ công

Phương pháp này bạn sẽ phải khắc phục sự cố bằng cách thủ công và chỉnh sửa các tệp tin trong WordPress. Tuy phức tạp hơn nhưng đây là một cách tối ưu hóa và lâu dài hơn. Đây là những gì chúng tôi sử dụng trên CunghocWP.

Nếu thấy phương pháp này quá khó, bạn có thể thuê một nhà phát triển WordPress hoặc sử dụng phương pháp đầu tiên để thay thế.

Là một phần trong phương pháp này, có thể bạn cần phải chỉnh sửa các tệp mã code và theme WordPress. Nếu chưa từng làm điều này bạn có thể tham khảo bài viết của chúng tôi về cách sao chép và dán đoạn mã code trong WordPress.

Cách sao chép và dán đoạn mã code trong WordPress.

Đầu tiên bạn cần truy cập trang Settings » General. Tại đây bạn cần cập nhật các trường địa chỉ URL và WordPress bằng cách thay thế http bằng https.

Đừng quên nhấp vào nút ‘Save changes’ để lưu các thay đổi của bạn.

Sau khi lưu lại các thay đổi, WordPress sẽ đăng xuất và yêu cầu bạn đăng nhập lại.

Tiếp theo, bạn cần thiết lập chuyển hướng WordPress từ HTTP sang HTTPS bằng cách thêm đoạn code bên dưới vào tệp tin .htaccess.

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteCond %{HTTPS} off
  4. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  5. </IfModule>

Nếu bạn đang sử dụng máy chủ Nginx (khá ít người dùng), bạn cần thêm đoạn code bên dưới để chuyển hướng từ HTTP sang HTTPS trong tệp cấu hình của mình:

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

Đừng quên thay thế example.com bằng tên miền của bạn.

Làm theo các bước này, bạn sẽ tránh được lỗi WordPress HTTPS không hoạt động bởi vì hiện tại WordPress sẽ tải các trang web của bạn bằng cách sử dụng https.

Nếu bạn muốn buộc SSL và HTTPS trên khu vực quản trị  WordPress hoặc các trang đăng nhập thì bạn cần định cấu hình SSL trong tệp wp-config.php.

Bạn chỉ cần thêm đoạn code sau vào dòng “That’s all, stop editing!” trong tệp wp-config.php của bạn:

  1. define('FORCE_SSL_ADMIN', true);

Đoạn code trên cho phép WordPress buộc SSL / HTTPs trong khu vực quản trị WordPress admin area. Nó cũng hoạt động với WordPress multisite.

Khi bạn thực hiện việc này, trang web của bạn hiện đã được thiết lập đầy đủ để sử dụng SSL/HTTPS nhưng bạn vẫn sẽ gặp phải lỗi mixed content.

Lỗi này phát sinh do các nguồn (hình ảnh, scripts, hoặc các stylesheet) vẫn tải bằng giao thức không bảo mật HTTP trong các URLs. Nếu lỗi này xảy ra, bạn sẽ không nhìn thấy biểu tượng ổ khóa an toàn trong thanh địa chỉ của trình duyệt.

Nhiều trình duyệt hiện đại sẽ tự động chặn các tệp lệnh và tài nguyên không an toàn. Bạn có thể thấy biểu tượng ổ khóa nhưng có thông báo về nó trong thanh địa chỉ của trình duyệt.

Bạn có thể sử dụng công cụ Inspect để tìm ra nội dung nào được phân phát thông qua giao thức không an toàn. Lỗi mixed content sẽ được hiển thị dưới dạng cảnh báo trong bảng điều khiển với chi tiết cho từng mục mixed content.

Bạn sẽ nhận ra rằng hầu hết các URLs là hình ảnh, iframes và phòng trưng bày hình ảnh trong khi một số là scripts và các stylesheet được tải bởi các plugin và theme WordPress của bạn.

Sửa lỗi Mixed Content trong cơ sở dữ liệu WordPress

Phần lớn các URLs gây ra lỗi sẽ là các hình ảnh, tệp, tệp tin nhúng và các dữ liệu khác được lưu trữ trong cơ sở dữ liệu WordPress của bạn. Hãy sửa chúng trước.

Tất cả những gì bạn cần làm là tìm tất cả các URL cũ của bạn trong giao thức http, sau đó thay thế nó bằng giao thức https.

Bạn có thể dễ dàng làm điều này bằng cách cài đặt và kích hoạt plugin Better Search Replace. Bạn có thể xem hướng dẫn chi tiết của chúng tôi về cách cài đặt plugin WordPress nếu chưa có kinh nghiệm.

Sau khi kích hoạt, bạn cần truy cập vào trang Tools » Better Search Replace. Trong trường ‘Search’, bạn thêm URL trang web của mình vớihttp. Sau đó thêm URL website với https trong trường ‘Replace’.

Ở bên dưới, bạn sẽ thấy tất cả các bảng cơ sở dữ liệu WordPress của mình. Bạn cần chọn tất cả các bảng để tiến hành kiểm tra một cách kĩ lưỡng.

Cuối cùng, bỏ chọn hộp ‘Run as dry run?’ và nhấp vào nút ‘Run Search/Replace’.

Bây giờ plugin sẽ tìm kiếm trong cơ sở dữ liệu WordPress của bạn cho các URLs bắt đầu bằng http và sẽ thay thế chúng bằng các URLs https an toàn. Nó có thể mất một chút thời gian tùy thuộc vào kích thước cơ sở dữ liệu WordPress.

Sửa lỗi Mixed Content trong theme WordPress

Một nguyên nhân khác gây ra lỗi mixed content là do theme WordPress của bạn. Bất kì theme WordPress phù hợp với tiểu chuẩn code WordPress sẽ không gây ra vấn đề gì.

Đầu tiên, bạn cần sử dụng công cụ Inspect để tìm nguồn và nơi chúng được tải.

Sau đó bạn cần tìm chúng trong theme WordPress và thay thế chúng bằng https. Điều này có thể khó khăn với người mới vì bạn sẽ không thể biết tệp tin nào chứa các URL này.

Sửa lỗi Mixed Content do plugin gây ra

Một số tài nguyên mixed content sẽ được tải bởi các plugin WordPress. Bất kì plugin WordPress nào tuân thủ tiêu chuẩn mã hóa sẽ không gây ra lỗi mixed content.

Chúng tôi khuyên bạn không nên chỉnh sửa các tệp tin plugin WordPress. Thay vào đó bạn cần liên hệ với tác giả plugin và thông báo cho họ biết. Nếu họ không trả lời hoặc không thể sửa nó thì bạn cần tìm một biện pháp thay thế.

Lưu ý: Nếu vì mọt lý do nào đó, bạn vẫn gặp phải lỗi mixed content, bạn nên tạm thời sử dụng plugin Really Simple SSL để người dùng không bị ảnh hưởng khi bạn khắc phục sự cố trên trang web hoặc thuê nhà phát triển.

Gửi trang web HTTPS của bạn tới Google Search Console

Các công cụ tìm kiếm như Google coi httpshttp là hai trang web khác nhau. Điều này có nghĩa là bạn cần thông báo cho Google biết bạn đã di chuyển trang web để tránh gặp các sự cố về SEO.

Để làm điều này, bạn cần truy cập tài khoản Google Search Console và nhấp vào nút ‘Add a Property’.

Một cửa sổ popup sẽ hiện ra, bạn cần thêm địa chỉ https mới của trang web.

Sau đó Google sẽ yêu cầu bạn xác thực quyền sở hữu trang web của bạn. Có một số cách để làm điều đó, chọn một trong các phương pháp xác thực và bạn sẽ được hướng dẫn để xác minh trang web của mình.

Sau khi xác minh, Google sẽ hiển thị kết quả báo cáo tìm kiếm tại đây.

Bạn cần đảm bảo rằng cả hai phiên bản https và http đều được thêm vào Search Console.

Điều này cho Google biết rằng bạn muốn phiên bản https của trang web là phiên bản chính. Kết hợp với các chuyển hướng 301 thiết lập trước đó, Google sẽ chuyển hướng thứ hạng tìm kiếm của bạn sang phiên bản https của trang web và bạn rất có thể sẽ thấy sự cải thiện trong thứ hạng tìm kiếm của mình.

Chúng tôi hi vọng bài viết này sẽ giúp bạn biết cách thêm HTTPS và SSL trong WordPress. Bạn cũng có thể muốn xem Hướng dẫn bảo mật WordPress để giữ an toàn cho trang web WordPress của mình.

Nếu thích bài viết này, đừng quên theo dõi YouTube Channel để xem các video hướng dẫn về WordPress. Bạn cũng có thể tìm kiếm chúng tôi trên TwitterFacebook.