Cách cài đặt chứng chỉ SSL trên CentOS 7

Trong bài viết này, bạn sẽ tìm hiểu cách cài đặt chứng chỉ SSL trên CentOS 7.

SSL (Security Socket Layer – Lớp cổng bảo mật) là giao thức web được sử dụng để bảo vệ lưu lượng truy cập đến server thông qua mã hóa. Nghĩa là tất cả thông tin sẽ bị khóa và chỉ có thể được truy cập bởi người nhận xác định.

Thông thường, thương mại điện tử hoặc dịch vụ tài chính online cần có giao thức này vì họ thường lưu trữ thông tin nhạy cảm, như thẻ tín dụng.

Tuy nhiên, chứng chỉ SSL giờ đã trở thành chuẩn chung cho tất cả các trang web, để bảo vệ dữ liệu bí mật của người dùng, như thông tin đăng nhập, số an sinh xã hội, thẻ căn cước, v.v.

May mắn là bạn có thể có chứng chỉ SSL dễ dàng từ nhà cung cấp như COMODO SSLLet’s Encrypt. Chúng sẽ được sử dụng trong hướng dẫn cài đặt của chúng tôi.

Cài đặt Apache thủ công

Trước khi cài SSL, hãy đảm bảo rằng Apache (phần mềm máy chủ web) đã được cài đặt trên CentOS của bạn.

Bạn có thể kiểm tra cài đặt hay chưa dễ dàng bằng cách nhập httpd -v khi truy cập máy chủ thông qua SSH. Nếu Apache đã được cài đặt, bạn sẽ thấy kết quả giống như kết quả bên dưới.

Trên VPS hostinger, người dùng có thể chọn cài đặt sẵn Apache trên servers của mình.

kiểm tra apache

Trên CentOS 7, Apache có thể được cài đặt thông qua kho phần mềm bằng cách nhập lệnh này trên terminal:

sudo yum install httpd

Bây giờ để bắt đầu sử dụng Apache, nhập:

sudo systemctl start httpd

Nếu bạn muốn Apache tự khởi động lúc mới khởi động, hãy kích hoạt bằng:

sudo systemctl enable httpd

kích hoạt và khởi chay apache trên centos

Cách cài đặt chứng chỉ SSL Let’s Encrypt

Let’s Encrypt cung cấp chứng chỉ SSL miễn phí. Hãy cùng xem cách cài đặt nó trên server.

Quan trọng: Chúng tôi sử dụng “host hostinger-dev-9.xyz” làm trang web thử nghiệm, nhưng bạn phải thay thành tên trang web của bạn.

Chúng tôi khuyên bạn nên cập nhật hệ thống trước để đảm bảo an toàn.

yum -y update

Tiếp theo, bạn sẽ cần mod_ssl để cấu hình Let’s Encrypt.

yum -y install mod_ssl

Bây giờ, cấu hình Apache bằng cách tạo thư mục tài liệu gốc cho trang web.

mkdir /var/www/hostinger-dev-9.xyz

cấu hình cài đặt chứng chỉ ssl let's encrypt

File config virtual host được yêu cầu trong bước này. Bạn có thể tạo nó bằng nano và nhập các dòng sau:

nano /etc/httpd/conf.d/hostinger-dev-9.xyz.conf

Trong nano, nhập code:

<VirtualHost *:80>
ServerAdmin admin@test.com
DocumentRoot "/var/www/hostinger-dev-9.xyz"
ServerName hostinger-dev-9.xyz
ServerAlias www.hostinger-dev-9.xyz.com
ErrorLog "/var/log/httpd/test.error_log"
CustomLog "/var/log/httpd/test.access_log" common
</VirtualHost>

Thay thế chủ sở hữu của thư mục /var/www/hostinger-dev-9.xyz bằng người dùng apache của bạn để nó có thể nhận ra thư mục

chown -R apache:apache /var/www/hostinger-dev-9.xyz

Cài đặt Certbot 

Trước khi cài đặt certbot, hãy đảm bảo bạn đã kích hoạt EPEL repository bằng cách nhập lệnh này:

yum -y install epel-release

Tiếp theo là cài đặt yum-utils

yum -y install yum-utils

Chỉ vậy thì sau đó bạn mới có thể cài đặt certbot cho Apache

yum -y install certbot-apache

cài đặt certbot

Sau khi cài đặt certbot, hãy chạy nó bằng cách thực thi:

certbot

Sẽ có lời nhắc hỏi tên bạn muốn kích hoạt https trên đó:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apacheStarting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: hostinger-dev-9.xyz
2: www.hostinger-dev-9.xyz
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):

Chỉ cần nhấn enter để cả hostinger-dev-9.xyzwww.hostinger-dev-9.xyz được chuyển hướng đến https

Một nhắc nhở khác sẽ hiện ra:

Choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect – Make no further changes to the web server 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):

Chọn số 2 để chuyển hướng cả tên trang web của bạn sang https.

You should see the output below if the process is done correctly

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled
https://hostinger-dev-9.xyz and https://www.hostinger-dev-9.xyz

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=hostinger-dev-9.xyz
https://www.ssllabs.com/ssltest/analyze.html?d=www.hostinger-dev-9.xyz
-------------------------------------------------------------------------------

Gia hạn chứng chỉ tự động

Một điều tốt khi sử dụng Let’s Encrypt là bạn có thể thiết lập gia hạn chứng chỉ tự động.

Để đặt gia hạn tự động, nhập lệnh sau:

export EDITOR=/bin/nano

Lệnh này sẽ đặt nano làm trình chỉnh sửa mặc định và bây giờ nó có thể chỉnh sửa crontab:

crontab -e

Trên thực tế, Let’s Encrypt đề xuất cronjob gia hạn tự động sẽ chạy hai lần một ngày. Để làm được, dán lệnh này và lưu crontab:

* */12 * * * /usr/bin/certbot renew >/dev/null 2>&1

Cách cài đặt chứng chỉ SSL với Comodo

COMODO SSL là nhà cung cấp chứng chỉ SSL trả phí. Với nhà cung cấp này, người dùng có thể chọn mã hóa lưu lượng server. Dưới đây là cách cài đặt trên CentOS 7.

Tải Chứng chỉ Trung cấp (ComodoRSACA.crt) và Chứng chỉ Sơ cấp (domain_name.crt) và sao chép vào thư mục server. Nó sẽ lưu trữ chứng chỉ và các files chính của bạn.

grep -i -r "SSLCertificateFile" /etc/httpd/

Tìm file config Apache. Thông thường, tên file là httpd.conf hoặc apache2.conf. Các vị trí thông thường cho file là /etc/httpd/ hoặc /etc/apache2/. Nếu không thể tìm thấy được, thì phương án thay thế là tìm kiếm bằng cách dùng grep thông qua lệnh bên dưới:

grep -i -r "SSLCertificateFile" /etc/httpd/

Lưu ý: thay đổi  “/etc/httpd/” vào thư mục cơ sở của bản cài đặt Apache

Bây giờ, nếu bạn muốn bật SSL trên server, hãy cấu hình nó với <VirtualHost> bằng cách dán dòng sau vào đây:

<VirtualHost 31.220.62.130>
DocumentRoot /var/www/hostinger-dev-9.xyz
ServerName www.hostinger-dev-9.xyz
SSLEngine on
SSLCertificateFile /var/www/hostinger-dev-9.xyz.crt
SSLCertificateKeyFile /var/www/your_private.key
SSLCertificateChainFile /var/www/ComodoCA.crt
</VirtualHost>
  • 31.220.62.130 : đổi địa chỉ này thành địa chỉ IP server của bạn
  • SSLCertificateFile cần đổi thành COMODO certificate file của bạn (ví dụ. domain_name.crt)
  • SSLCertificateKeyFile là file khóa được tạo khi bạn tạo CSR (Certificate Signing Request)
  • SSLCertificateChainFile là file intermedia COMODO certificate (ComodoRSACA.crt)

Quan trọng là bạn nên nhớ kiểm tra file config Apache trước khi khởi động lại. Nếu có lỗi cú pháp, Apache sẽ không bắt đầu. Vì vậy để đảm bảo mọi thứ đều hoạt động tốt, bạn có thể gõ lệnh này:

apachectl configtest

Sau khi tất cả được đã đúng, hãy khởi động lại Apache với hỗ trợ SSL:

apachectl stop

và sau đó

apachectl start

khởi động apachectl

Trong trường hợp Apache không khởi động với hỗ trợ SSL, hãy sử dụng “apachectl startssl” thay vào đó.

Tóm lại

SSL được yêu cầu để đảm bảo lưu lượng truy cập trên trang web của bạn, đặc biệt nếu dùng để xử lý giao dịch. COMODO SSL và Let’s Encrypt là hai nhà cung cấp cho phép bạn cài đặt chứng chỉ SSL trên CentOS 7. Mặc dù việc cài đặt một trong 2 chứng chỉ của các cung cấp này có thể khó khăn nhưng rất xứng đáng. Hãy làm cho website của bạn an toàn hơn

Author
Tác giả

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.