Ý chính trong bài
Cài đặt SSL miễn phí cho WordPress trên Google Cloud
1. Đăng nhập vào Host bằng SSH
Đăng nhập vào host(VPS) chứa website WordPress của bạn trên Google Cloud bằng SSH. Vào trang chủ Google Cloud Platform https://console.cloud.google.com, click vào menu ở góc trái bên trên.
Trong mục Compute Engine chọn VM instances.
Bạn sẽ thấy host đã cài đặt WordPress, bấm vào nút SSH để đăng nhập vào VPS và quản lý VPS bằng command line.
Sau khi bấm vào SSH thì bạn sẽ thấy cửa sổ dòng lệnh hiện ra.
2. Cài đặt CertBot Client
Sau khi đăng nhập vào VPS bằng SSH, sử dụng lệnh sau để cài đặt CertBot Client.
wget https://dl.eff.org/certbot-auto && chmod a+x certbot-auto
CertBot Client dùng để cấp chứng chỉ SSL được sử dụng trong quá trình cài đặt.
3. Tạo chứng chỉ
Sau khi cài Certbot Client chúng ta sẽ tạo chứng chỉ cho website http://tenmienmoi.cf/ bằng lệnh sau
./certbot-auto certonly --webroot -w /var/www/html/ -d tenmienmoi.cf -d www.tenmienmoi.cf
Nhớ thay tên miền của bạn vào nha, tenmienmoi.cf là tên miền mình sử dụng để làm ví dụ trong bài viết trỏ tên miền về Google Cloud và cài đã cài wordpress sẵn cho tên miền này.
Sau khi chạy lệnh và qua một vài bước xác nhận, bạn sẽ thấy thông báo tạo chứng chỉ thành công. Lưu lại đường dẫn tới chứng chỉ gồm:
/etc/letsencrypt/live/tenmienmoi.cf/fullchain.pem
/etc/letsencrypt/live/tenmienmoi.cf/privkey.pem
4. Cấu Hình Vhost cho SSL
Để cấu hình Vhost cho SSL bạn sử dụng lệnh sau để mở file default-ssl.conf
sudo nano /etc/apache2/sites-available/default-ssl.conf
Sau khi mở thì bạn sẽ thấy rất nhiều hướng dẫn để cấu hình SSL cho website của mình.
Bây giờ bạn thêm đoạn cấu hình sau để thông báo với server chuyển hướng toàn bộ truy cập về port 443 bằng giao thức HTTPS.
<Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
vào giữa 2 dòng
ServerAdmin webmaster@localhost và DocumentRoot /var/www/html
Tiếp tục tìm tới dòng sau
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
Thay thế bằng 3 dòng sau
SSLCertificateFile /etc/letsencrypt/live/tenmienmoi.cf/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/tenmienmoi.cf/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/tenmienmoi.cf/chain.pem
Đừng quên thay tenmienmoi.cf bằng domain của bạn nha.
Sau khi chỉnh sửa xong bấm ctrl + o để lưu và ctrl + x để thoát trình chỉnh sửa.
5. Cấu hình file wordpress.conf
Tiếp theo là cấu hình file wordpress.conf bằng lệnh sau.
sudo nano /etc/apache2/sites-available/wordpress.conf
Xoá 3 dòng mặc định sau
Options -Indexes
Chèn toàn bộ đoạn sau vào
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ServerName www.tenmienmoi.cf ServerAlias tenmienmoi.cf Redirect permanent / https://tenmienmoi.cf/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
nhớ thay tenmienmoi.cf bằng domain của bạn.
Lưu file wordpress.conf (ctrl + o) và thoát trình chỉnh sửa (ctrl + x).
Ok sau khi chỉnh sửa xong sử dụng 3 lệnh sau liên tục để các thay đổi trên có hiệu lực.
Kích hoạt Virtual host
sudo a2ensite default-ssl
Kích hoạt module ssl
sudo a2enmod ssl
Khởi động lại Apache server để các thay đổi có hiệu lực.
sudo service apache2 restart
6. Cập nhật URL cho WordPress
Bây giờ mở tenmienmoi.cf trên trình duyệt bạn sẽ thấy đường dẫn của website đã thành https://tenmienmoi.cf
Đăng nhập vào website của bạn, vào mục Setting >> General sửa lại đường dẫn của website.
Save Change để lưu lại cài đặt, và website WordPress của bạn đã được cài SSL rồi nhé.
Cấu hình tự động gia hạn chứng chỉ SSL
Sau khi cài đặt SSL cho wordpress, ta sẽ cấu hình tiếp để cho chứng chỉ SSL sẽ tự động gia hạn.
Đầu tiên là chuyển bộ cài Cerbot vào thư mục Let’s Encrypt bằng lệnh:
sudo mv certbot-auto /etc/letsencrypt/
Tiếp theo mở crontab bằng lệnh sau
sudo crontab -e
Nếu có thông báo như ở dưới ta chọn số 1 rồi Enter là đc.
hongson47@wordpress-2-vm:~$ sudo crontab -e no crontab for root - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/vim.basic 3. /usr/bin/vim.tiny Choose 1-3 [1]: 1
Sau khi mở file crontab thêm đoạn mã sau dưới cùng của file
0 0 * * 6 cd /etc/letsencrypt/ && ./certbot-auto renew && /etc/init.d/apache2 restart
Đoạn mã trên sẽ thông báo cho server của bạn kiểm tra gia hạn chứng chỉ một lần mỗi tuần và tự động gia hạn chứng chỉ nếu chứng chỉ sắp hết hạn. Nhớ lưu file crontab (ctrl + o) và thoát (ctrl + x).
CreativeVietnam là đơn vị thiết kế website cho doanh nghiệp với hơn 13 năm kinh nghiệm chuyên tâm thiết kế web, giúp nhiều doanh nghiệp, công ty với nhiều ngành nghề phát triển lớn mạnh trên môi trường internet.