Trong hướng dẫn này, mình sẽ hướng dẫn cho bạn cách cài đặt ứng dụng Let’s Encrypt trên VPS CentOS 7 của bạn và cấp chứng chỉ SSL cho tên miền của bạn.

Cải thiện bảo mật trang web của bạn thông qua mã hóa SSL có thể tăng niềm tin của khách truy cập vào trang web của bạn. Trước đây, thiết lập mã hóa SSL trên trang web là một nhiệm vụ phức tạp. Tuy nhiên, Let’s Encrypt là cơ quan cấp chứng chỉ nguồn mở và miễn phí (CA) cho phép lấy và cài đặt chứng chỉ thông qua các lệnh đơn giản, tự động. Nhờ có họ, việc thiết lập mã hóa và tăng tính bảo mật cho trang web của bạn được thực hiện dễ dàng hơn rất nhiều. Let’s Encrypt cung cấp chứng chỉ SSL hợp lệ cho tên miền của bạn mà không mất bất kỳ chi phí nào và cũng có thể được sử dụng cho mục đích sản xuất / thương mại.

Bước 1: Cập nhật hệ điều hành

chạy lệnh sau để tiến hành cập nhật:

# yum update

Sau khi cập nhật hoàn tất, chúng ta có thể chuyển sang bước tiếp theo.

Bước 2: Cài đặt LAMP Stack

Chúng ta cần cài đặt LAMP stack trên máy chủ. Nó bao gồm Linux (mà chúng ta đã có), Apache, MySQL và PHP. Bạn tham khảo bài viết tại đây để cài đặt LAMP cho server

Bước 3: Cấu hình Apache

Chúng ta cần tạo một tệp cấu hình Apache mới. Chúng ta có thể tạo nó bằng lệnh sau:

# nano /etc/httpd/conf.d/domain.com

Thêm các dòng sau:

<VirtualHost *:80>
    ServerAdmin admin@domain.com
    DocumentRoot "/var/www/html"
    DirectoryIndex index.html
    ServerName domain.com
    ErrorLog "/var/log/httpd/domain.com.error_log"
    CustomLog "/var/log/httpd/domain.com.access_log" common
</VirtualHost>

Lưu và đóng tập tin.

Sau đó, tạo một index.html tệp cho mục đích thử nghiệm bằng lệnh sau:

# nano /var/www/html/index.html

Thêm các dòng sau:

<html>
Test - Welcome to The Apache Web Server.
</html>

Lưu tệp và thay đổi chủ sở hữu tệp ‘/var/www/html/index.html’ cho người dùng Apache để Apache có thể đọc tệp:

# chown -R apache: apache /var/www/html/index.html

Hãy nhớ thay đổi domain.com với tên miền thực tế của bạn.
Bây giờ chúng ta đã cài đặt Apache, chúng ta có thể tiếp tục và cài đặt certbot.

Bước 4: Cài đặt Certbot

Chúng ta cần cài đặt Certbot và kích hoạt mod_ssl mô-đun Apache trên máy chủ. Certbot là một công cụ đơn giản và dễ sử dụng giúp đơn giản hóa việc quản lý máy chủ bằng cách tự động hóa việc lấy chứng chỉ và định cấu hình dịch vụ web để sử dụng chúng.

Theo mặc định, gói Certbot không khả dụng trong kho lưu trữ hệ điều hành mặc định của CentOS 7. Chúng ta cần kích hoạt kho lưu trữ EPEL, sau đó cài đặt Certbot.

Để thêm kho EPEL chạy lệnh sau:

# yum install epel-release

Sau khi kích hoạt, cài đặt tất cả các gói cần thiết bằng lệnh sau:

# yum install certbot python2-certbot-apache mod_ssl

Sau khi cài đặt, chúng ta có thể tiến hành bước tiếp theo.

Bước 5: Lấy và cài đặt SSL cho tên miền của bạn

Giờ đây, Certbot đã được cài đặt, bạn có thể sử dụng nó để lấy và cài đặt chứng chỉ SSL cho tên miền của mình.

Chỉ cần chạy lệnh sau để lấy và cài đặt chứng chỉ SSL cho miền của bạn:

# certbot --apache -d domain.com

Chúng ta cũng có thể cài đặt một chứng chỉ duy nhất cho nhiều tên miền và tên miền phụ được lưu trữ trên máy chủ với cờ ‘-d’, ví dụ:

# certbot --apache -d domain.com -d www. domain.com -d domain2.com -d test.domain2.com

Chúng ta sẽ được yêu cầu cung cấp một địa chỉ email và đồng ý với các điều khoản dịch vụ.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): admin@domain.com
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Starting new HTTPS connection (1): supporters.eff.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for domain.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/httpd/conf.d/domain.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf.d/domain.com-le-ssl.conf

Nhập Y và nhấn [Enter] và bạn sẽ thấy đầu ra sau:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tại đây, bạn cần chọn bất kỳ một tùy chọn để tiếp tục. Nếu bạn chọn tùy chọn 1, nó sẽ chỉ tải xuống chứng chỉ SSL và bạn cần định cấu hình Apache theo cách thủ công để sử dụng chứng chỉ SSL. Nếu bạn chọn tùy chọn 2, nó sẽ tự động tải xuống và định cấu hình Apache để sử dụng chứng chỉ SSL. Trong trường hợp này, chọn tùy chọn 2 và nhấn [Enter]. Khi quá trình cài đặt thành công, bạn sẽ thấy một thông báo tương tự như sau:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://domain.com
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.com-0001/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.com-0001/privkey.pem
Your cert will expire on 2019-10-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Các tập tin chứng chỉ được tạo có sẵn trong /etc/letsencrypt/live/domain.com thư mục. Bạn có thể kiểm tra chứng chỉ SSL mới được tạo bằng lệnh sau:

ls / etc / letencrypt / live / domain.com /

Bạn sẽ thấy đầu ra sau:

cert.pem chain.pem fullchain.pem privatekey.pem

Bước 6: Kiểm tra chứng chỉ SSL của bạn

Mở trình duyệt web của bạn và nhập URL https://domain.com. Để kiểm tra chứng chỉ SSL trong Chrome, nhấp vào biểu tượng ổ khóa trong thanh địa chỉ cho https: //domain.com và từ hộp bật lên, nhấp vào ‘Hợp lệ’ dưới dấu nhắc ‘Chứng chỉ’.

Như vậy chúng ta đã cài đặt và định cấu hình thành công Let’s Encrypt  với Apache trên VPS CentOS 7. Chúc bạn thành công