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 ssl miễn phí cho wordpress trên google cloud 5

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 [email protected] 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 ssl miễn phí cho wordpress trên google cloud 10

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 ssl miễn phí cho wordpress trên google cloud 11

Chèn toàn bộ đoạn sau vào

<VirtualHost *:80>
ServerAdmin [email protected]
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.

[email protected]:~$ 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).

5 3 votes
Đánh giá bài viết