Viết về sử dụng chứng chỉ SSL mãi rồi, cơ mà hướng dẫn thiên hạ dùng SSL mình lại không dùng thì không phải phép, được mấy ngày mưa mát mẻ vật trang WordPress thuysys.com ra chuyển HTTP sang HTTPS chơi xem sao.
Bài này mình dùng SSL của Let’s Encrypt đây là một dạng chữ ký số free, ngon bổ rẻ không dùng thì hơi phí.
Còn ai thích có thương hiệu thì mua SSL trên namecheap có $8/năm thôi, hiện đang khuyến mãi mua domain tặng chứng chỉ SSL với giá $1.99.
Chú ý
Khi chuyển sang HTTPS số đếm lượt like, share mạng xã hội Facebook, Google Plus… trên site của bạn sẽ mất hết, reset lại từ đầu.
Thiết nghĩ chuyển sang HTTPS là việc tốt lâu dài, còn số đếm mạng xã hội để cho đẹp thôi, site đã có vị trí nhất định rồi thì hồi lại phút mốt thôi, bạn suy nghĩ trước khi làm.
OK, chúng ta trở lại với chứng chỉ free. Cách làm tương tự hướng dẫn lấy chứng chi SSL tại Let’s Encrypt với Certbot và webroot, bài này mình chỉ vắn tắt lại thôi.
- Mình dùng VPS của Linode
- CentOS 7
- Nginx bản mới nhất.
1. Cấu hình SSL Web Server
Cài đặt certbot
yum install certbot
Certbot và webroot sử dụng thư mục ẩn .well-known
để verify nên bạn phải tạo thư mục này trong Document Root của Vhost (Virtual Host)
mkdir /var/www/thuysys.com/.well-known
Nếu Server được setup chặn truy cập đến thử mục ẩn, bạn thêm đoạn cấu hình nginx như bên dưới để cho phép server Let’s Encrypt truy cập vào.
location ^~ /.well-known/ { allow all; }
Lấy chứng chỉ từ Let’s Encrypt
certbot certonly --webroot -w /var/www/thuysys.com -d thuysys.com -d www.thuysys.com
Cấu hình nginx sử dụng SSL
Mở file config vhost rồi thêm vào block server {…} nội dung bên dưới.
#Web Server mở Port 443 cho kết nối HTTPS listen 443 ssl; #Chuyển hướng truy cập redirect HTTP sang HTTPS if ($scheme = http) { return 301 https://www.thuysys.xyz$request_uri; } #Cấu hình sử dụng SSL Certificate cho domain thuysys.com ssl_certificate /etc/letsencrypt/live/thuysys.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/thuysys.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
2. Chuyển WordPress sang HTTPS.
Với cấu hình chuyển hướng như trên thì toàn bộ truy cập HTTP sẽ tự động chuyển sang HTTPS mà không cần làm gì nữa. Để cho chắc hơn bạn login vào WordPress chọn Setting > General thay đổi hai thông số sau:
- WordPress Address(URL) sửa https://www.thuysys.com > https://www.thuysys.com
- Site Address(URL) sửa https://www.thuysys.com > https://www.thuysys.com
Với cài đặt wordpress như vậy tất cả những hình ảnh upload mới hay link onpage mới đều được chuyển hết sang HTTPS cho bạn.
Lỗi chuyển hướng HTTP sang HTTPS
Cài SSL cho trang WordPress mới như vậy là đủ, còn đối với những trang đã hoạt động được một thời gian bạn còn phải update lại database. Bởi tất cả link hình ảnh cũ được lưu trong database với HTTP. Khi bạn truy cập vào website sẽ thấy trang web chuyển hướng sang https những vẫn có hình khóa màu trắng.
Lúc này bạn phải login vào MySQL/MariaDB để can thiệp.
#Đăng nhập DB bằng user root mysql -u root -p #Chọn database của website use wordpressDB; #Lệnh update toàn bộ ảnh trong thư mục Uploads sang HTTPS UPDATE wp_posts SET post_content = REPLACE(post_content,'https://www.thuysys.com/wp-content/uploads','https://www.thuysys.com/wp-content/uploads')
Chú ý: Với những trang web có treo banner quảng cáo trên Widgets thương dùng link cứng bạn phải sửa lại thủ công nhé.
Và cuối cùng muồn kiểm tra bài viết nào đó cón link chưa được chuyển sang HTTPS bạn dùng công cụ whynopadlock để check.
3. Cài HTTPS trên Google
Tiếp theo chúng ta phải khai báo lại trang WP với công cụ tìm kiếm của Google.
Google Webmaster Tools (GWT)
Vào Webmaster Tool thêm thuộc tính mới cho site HTTPS.
Submit lại URL cho website (Fetch as Google)
Bạn không phải nhập URL nào cứ ấn vào TÌM NẠP VÀ HIỂN THỊ (FETCH AND RENDER) là được
Sau đó là gửi lại sitemap cho google.
Trên Webmaster Tool chỉ cần làm như vậy thôi, sau đó là đi cài lại Google Analytics cho website.
Google Analytics
Vào phần QUẢN TRỊ VIÊN (ADMIN) tìm đến Cài đặt thuộc tính của site rồi chuyển HTTP sang HTTPS như hình dưới.
Cũng trong trang quản trị thuộc tính kéo xuống chọn Search Console > Điều chỉnh Search Console
Chọn như hình bên dưới rồi lưu lại.
Xong bài, yên tâm là web của bạn không bị tụt hạng đâu. Google sẽ mất vài ngày để cawl lại web bạn nên chịu khó đợi một tí, trong lúc đó truy cập lại website để xem cái khóa màu xanh đẹp đẽ thôi.
Chào bác, e cài web lên thì dùng luôn cái plugin Really Simple SSL… liệu tính năng của nó có đầy đủ, so với cách làm trên thì có khác gì hok bác.
Plugin này giúp bạn tự update link từ http -> https trong database, còn việc cấu hình https trên webserver và khái báo trên các công cụ của google bạn vẫn phải làm.
Cho em hỏi, em cài https trước cho tên miền rồi, chưa cài đặt website, vậy khi up web lên thì up vào thư mục nào ạ ? private_html hay public_html ? và làm sao để khi truy cập web nó đều có https ạ ? ví dụ em truy cập abc.com thì nó sẻ thành https://abc.com chứ không phải là http://abc.com vậy anh thủy ?
Bạn up web vào public_html.
Bạn phải cấu hình rewrite url cho domain để tự động chuyển từ http sang https
Em up lên thư mục public rồi nhưng nó không có https, mà lúc thêm code nay vao để chuyển hướng domain thì nó sang https nhưng không có webstie chạy
# Redirect all links from HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
nó ra dòng chư To change this page, upload a new index.html to your private_html folder
Trước tiên bạn phải làm cho website chạy ở http đã, ngon lành rồi mới chuyển sang https sau
Vâng, cảm ơn anh thủy, tức là phải cho web ngon lành đã rồi mới chuyển qua thư mục private_html
Nghĩa là bạn up toàn bộ code của website lên thư mục public_html sau đó cài đặt cho nó chạy được với http trước. Thư mục private_html bạn không dùng làm gì cả.
-> update toàn bộ ảnh trong thư mục Uploads sang HTTPS
Thư mục Uploads của em lên mấy chục GB , trong DB cũng phải lên hàng mấy chục nghìn bản ghi của mấy đường dẫn hình rồi, giờ update như vậy có ổn ko anh 🙁
Không vấn đề gì bạn ạ.
Mấy trăm bài viết trước của em còn thumbnail trên Facebook, đổi qua https mất hết lun rồi :(.
🙂 giờ nhà nhà dùng https rồi. Chấp nhận thôi , mấy link mạng xã hội hồi lại cũng nhanh.
em đang đắn đo vì không biết cài vô có bị tụt từ khóa ko
Chuyển đi bạn không vấn đề gì đâu, ngược lại còn lên hạng ấy