Cài đặt SSL miễn phí cho WordPress trên Google Cloud

7 Likes 13 Comments

Trong bài viết này mình sẽ thử cài đặt chứng chỉ SSL miễn phí cho website WordPress đã được cài trên Google Cloud nhé. Đồng thời cũng cấu hình để chứng chỉ SSL tự gia hạn.

Trước khi tiến hành cài đặt SSL thì bạn cần chuẩn bị:

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.

cài ssl miễn phí cho wordpress trên google cloud 1

Trong mục Compute Engine chọn VM instances.

cài ssl miễn phí cho wordpress trên google cloud 2

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.

cài ssl miễn phí cho wordpress trên google cloud 4

Sau khi bấm vào SSH thì bạn sẽ thấy cửa sổ dòng lệnh hiện ra.

Cài đặt SSL miễn phí cho Wordpress trên Google Cloud 1

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.

cài ssl miễn phí cho wordpress trên google cloud 6

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

cài ssl miễn phí cho wordpress trên google cloud 7

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

cài ssl miễn phí cho wordpress trên google cloud 9

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.

Cài đặt SSL miễn phí cho Wordpress trên Google Cloud 2

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
Cài đặt SSL miễn phí cho Wordpress trên Google Cloud 3

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

cài ssl miễn phí cho wordpress trên google cloud 14

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

cài ssl miễn phí cho wordpress trên google cloud 16

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

Bài viết liên quan

13
Bình luận về bài viết

avatar
6 Comment threads
7 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
9 Tác giả của bình luận
Hồng SơnHuyTuanAnhDoan Recent comment authors
  Đăng kí  
mới nhất cũ nhất
Thông báo khi
Huy | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
Huy | 1 comments

Cảm ơn bạn nhiều lắm. Mong bạn hướng dẫn thêm nhiều bài cho WordPress trên Google Cloud

Hoàng | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
Hoàng | 1 comments

Chứng chỉ SSL sau bao lâu sẽ ra tự động gia hạn vậy ad ơi, và chi phí gia hạn như thế nào.

Hường Vũ | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
Hường Vũ | 1 comments

Nhấn lệnh
sudo service apache2 restart

Gặp trường hợp như này xử trí sao vậy anh.

Job for apache2.service failed because the control process exited with error code.
See “systemctl status apache2.service” and “journalctl -xe” for details.

Doan | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
Doan | 1 comments

Sau khi gõ lệnh:systemctl status apache2.service

Báo lỗi thế này:

Failed to connect to bus: No such file or directory

Anh | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
Anh | 1 comments

./certbot-auto certonly --webroot -w /var/www/html/ -d coxxxxse.com -d www.coxxxx
e.com

Requesting to rerun ./certbot-auto with root privileges…
./certbot-auto has insecure permissions!
To learn how to fix them, visit https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979/
/var/www/html/ -d cotithouse.com -d http://www.cotithouse.com does not exist or is not a directory

Chạy xong thì ra lỗi như vậy thì khắc phục sao bác ơi

Tuan | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
Tuan | 1 comments

cảm ơn nha, làm theo ngon lành rồi