Cách Tạo Chứng Chỉ SSL Trên Apache Cho CentOS 7 [Chi Tiết]

Chứng chỉ SSL là một yếu tố quan trọng để đảm bảo rằng thông tin truyền qua mạng được mã hóa và bảo mật. Trong bài viết dưới đây, hãy cùng LANIT tìm hiểu cách tạo chứng chỉ SSL trên Apache cho CentOS 7 một cách chi tiết nhất nhé!

Điều kiện Chuẩn bị

Để tạo chứng chỉ SSL trên Apache cho CentOS 7, bạn cần chuẩn bị những điều sau:

  • Quyền truy cập vào máy chủ CentOS 7: Bạn cần có quyền truy cập vào máy chủ CentOS 7 thông qua SSH hoặc các phương pháp truy cập khác.
  • Tài khoản người dùng non-root với quyền sudo: Đảm bảo bạn đã có một tài khoản người dùng không phải là root, nhưng có quyền sudo để thực hiện các thay đổi cần thiết trên hệ thống.
  • Cài đặt máy chủ web Apache: Hãy đảm bảo bạn đã cài đặt và cấu hình máy chủ web Apache trên CentOS 7. Nếu bạn chưa cài đặt, bạn cần thực hiện cài đặt máy chủ web Apache theo hướng dẫn cụ thể đã được cung cấp trong tài liệu.

Hướng dẫn tạo chứng chỉ SSL trên Apache cho CentOS 7

Dưới đây là các bước  tạo chứng chỉ SSL trên Apache cho CentOS 7 chi tiết mà bạn có thể tham khảo để áp dụng như sau:

Bước 1: Cài đặt mod_ssl trên server

Trước khi tạo chứng chỉ self-signed, bạn cần thực hiện các bước cài đặt mod_ssl trên máy chủ. Trong đó, mod_ssl là một module của Apache được dùng trong việc mã hóa SSL. Để cài đặt mod_ssl, bạn có thể sử dụng câu lệnh yum sau đây: 

sudo yum install mod_ssl

Tiếp theo, Module sẽ được kích hoạt tự động ngay trong quá trình cài đặt. Khi máy chủ Apache được khởi động lại từ đầu, mod_ssl sẽ tự động sẵn sàng để sử dụng chứng chỉ SSL.

>>> Xem thêm : Hướng Dẫn Cài SSL Trên cPanel “Đơn Giản Nhất”

Bước 2: Tạo chứng chỉ ssl trên apache

Khi Apache đã sẵn sàng trong việc mã hóa, lúc này bạn có thể tạo chứng chỉ ssl trên apache hoàn toàn mới. Khóa SSL được bảo mật tuyệt đối trên server và được dùng để mã hóa dữ liệu và được gửi đến các máy khách. Chứng chỉ SSL được chia sẻ công khai với người yêu cầu dữ liệu.

Thư mục /etc/ssl/certs là những thư mục dùng để lưu trữ các chứng chỉ công khai có sẵn trên server. Ngoài ra, bạn cũng cần tạo thư mục /etc/ssl/private để lưu các tập tin chứa khóa riêng tư. Việc đảm bảo tính bảo mật của khóa này là một việc hết sức quan trọng. Vì thế, việc hạn chế quyền truy cập để ngăn truy cập trái phép là điều hết sức cần thiết:

Để tạo thư mục mới bạn có thể sử dụng lệnh sau:

sudo mkdir /etc/ssl/private

Để chỉnh quyền truy cập cho thư mục bạn nhập lệnh sau:

sudo chmod 700 /etc/ssl/private

Tiếp theo, bạn có thể tạo một cặp khóa và chứng chỉ self-signed mới bằng OpenSSL. Bạn có thể sử dụng lệnh sau đây:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
tạo chứng chỉ ssl
Cách tạo chứng chỉ SSL trên Apache cho CentOS 7

Trong đó:

  • sudo: Thực hiện lệnh với quyền hạn người dùng siêu (superuser) để có quyền truy cập vào các thư mục và tệp hệ thống cần thiết.
  • openssl req: Sử dụng công cụ OpenSSL với chức năng tạo yêu cầu chứng chỉ.
  • -x509: Tạo một chứng chỉ tự ký, không cần yêu cầu chứng nhận bên ngoài.Thuật ngữ “X.509” là một chuẩn cơ bản về quản lý khóa công khai mà cả SSL và TLS sử dụng để kiểm soát khóa và chứng chỉ. 
  • -nodes: Không mã hóa khóa riêng tư bằng mật khẩu.
  • -days 365: Thiết lập thời hạn hiệu lực của chứng chỉ trong 365 ngày.
  • -newkey rsa:2048: Tạo một khóa riêng tư RSA có độ dài 2048 bit.
  • -keyout /etc/ssl/private/apache-selfsigned.key: Lưu khóa riêng tư được tạo vào đường dẫn /etc/ssl/private/apache-selfsigned.key.
  • -out /etc/ssl/certs/apache-selfsigned.crt: Lưu chứng chỉ tự ký được tạo vào đường dẫn /etc/ssl/certs/apache-selfsigned.crt.

Chú ý: Khi yêu cầu bạn nhập Common Name, hãy luôn đảm bảo nhập tên miền hoặc địa chỉ IP công khai của máy chủ của bạn phải khớp chính xác với tên người dùng máy chủ của bạn.

>>> Xem thêm: Hướng Dẫn Chi Tiết Cách Cài SSL Trên DirectAdmin

Lúc này, cả hai file bạn đã tạo sẽ được lưu trữ trong các thư mục con của thư mục /etc/ssl.

Khi bạn sử dụng chứng chỉ OpenSSL, cũng nên tạo một nhóm Diffie-Hellman để đảm bảo tính bảo mật tốt hơn cho các client thông qua Forward Secrecy.

Để tạo nhóm Diffie-Hellman bạn có thể sử dụng lệnh sau:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
tạo chứng chỉ ssl
Cách tạo chứng chỉ SSL trên Apache cho CentOS 7

Quá trình tạo nhóm có thể mất vài phút, bạn vui lòng đợi. 

Bước 3: Thiết lập Certificate

Sau khi hoàn thành 2 bước trên bạn đã có tất cả cả các yếu tố để tạo một thiết lập một chứng chỉ hoàn chỉnh.   Bước tiếp theo trong cách tạo chứng chỉ ssl trên apache, bạn có thể thiết lập các server ảo để hiển thị những chứng chỉ mới.

Để mở một file mới trong thư mục /etc/httpd/conf.d bạn có thể sử dụng lệnh sau:

sudo vi /etc/httpd/conf.d/your_domain_or_ip.conf

Bạn tiến hành dán câu lệnh đó để cấu hình VirtualHost sau đây:

<VirtualHost *:443>
    ServerName your_domain_or_ip
    DocumentRoot /var/www/html
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
tạo chứng chỉ ssl

Hãy chắc chắn việc bạn cập nhật phần “Server Name” nên phù hợp với địa chỉ của máy chủ của bạn như  tên máy chủ, tên miền đầy đủ hoặc địa chỉ IP. Đặc biệt, cần lưu ý lựa chọn trong phần “Server Name” cần phải khớp với phần “Common Name” mà bạn đã chọn  trong quá trình tạo chứng chỉ.

Cài đặt thông số SSL an toàn

Bước tiếp theo trong cách tạo chứng chỉ ssl trên Apache, bạn cần  thêm một số tùy chọn chứng chỉ SSL bổ sung để làm tăng tính bảo mật cho trang web của mình. Những tùy chọn mà bạn sử dụng là các đề xuất từ Cipherlist.eu. Đây là trang web được thiết kế để cung cấp các thiết lập mã hóa dễ sử dụng cho một số phần mềm phổ biến.

Lưu ý: Khi bạn sử dụng các cài đặt mặc định được đề xuất trên Cipherlist.eu sẽ đảm bảo tính an toàn cao. Tuy nhiên, có thể sẽ gặp một số vấn đề về sự không tương thích với máy khách cũ. Nếu bạn cần kết nối với các client cũ, bạn có thể lựa chọn danh sách mã hóa thích hợp bằng cách nhấp vào mục “Yes, give me a ciphersuite that works with legacy/old software.”. Lúc này danh sách sẽ thay thế các cài đặt và bạn có thể lựa chọn theo yêu cầu của khách hàng cũ. 

Sau khi kết thúc khối VirtualHost bạn có thể dán các thiết lập từ trang web sau đây:

# Begin copied text
# from https://cipherli.st/
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
# Requires Apache 2.4.36 & OpenSSL 1.1.1
SSLProtocol -all +TLSv1.2
# SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
# Older versions
# SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
# SSLSessionTickets Off
tạo chứng chỉ ssl
Cách tạo chứng chỉ SSL trên Apache cho CentOS 7

Khi bạn hoàn thành các bước trên lúc này bạn có thể lưu và đóng file.

Tạo chuyển hướng từ HTTP sang HTTPS

Để chuyển hướng tất cả lưu lượng để mã hóa chứng chỉ SSL, bạn hãy tạo và mở một file có đuôi .conf trong thư mục /etc/httpd/conf.d và nhập lệnh sau đây:

vi /etc/httpd/conf.d/non-ssl.conf
<VirtualHost *:80>
       ServerName your_domain_or_ip
        Redirect "/" "https://your_domain_or_ip/"
</VirtualHost>
tạo chứng chỉ ssl
Cách tạo chứng chỉ SSL trên Apache cho CentOS 7

Bước 4: Tiến hành thay đổi cấu hình ssl cho apache

Trước hết, hãy kiểm tra xem file  cấu hình ssl cho apache của bạn có lỗi cú pháp hay không bằng cách sử dụng lệnh sau:

sudo apachectl configtest

Nếu kết quả hiển thị “Syntax OK“, bạn có thể tiếp tục mà không gặp vấn đề gì. Nếu kết quả không hiển thị phần này, hãy kiểm tra lại cú pháp của các file và thử lại lệnh trên.

Để áp dụng các thay đổi khi cấu hình ssl cho apache, hãy khởi động lại máy chủ Apache bằng lệnh:

sudo systemctl restart httpd.service

Sau đó, đảm bảo rằng cổng 80 và 443 đã được mở trong tường lửa. Nếu bạn không sử dụng tường lửa, bạn có thể bỏ qua phần này.

Nếu bạn đang sử dụng tường lửa firewall, bạn có thể mở cổng bằng cách chạy các lệnh sau:

sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent

Nếu bạn đang sử dụng tường lửa iptables, các lệnh bạn cần thực hiện sẽ phụ thuộc vào các quy tắc hiện tại của bạn. Nếu bạn chỉ cần thêm truy cập cho HTTP và HTTPS, bạn có thể sử dụng các lệnh sau:

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
tạo chứng chỉ ssl
Cách tạo chứng chỉ SSL trên Apache cho CentOS 7

Bước 5: Kiểm tra mã hóa

Để kiểm tra mã hóa, bạn hãy mở trình duyệt web và nhập https:// và domain hoặc địa chỉ IP server của bạn vào thanh địa chỉ như sau đây:

Bởi vì chứng chỉ mà bạn tạo ra không được ký bởi một trong những cơ quan chứng chỉ đáng tin cậy của trình duyệt nên sẽ xuất hiện một cảnh báo, tuy nhiên, vấn đề này sẽ không ảnh hưởng nhiều.  Tiếp theo, bạn chọn “ADVANCED” và nhấp vào liên kết để vào trang. Sau đó, bạn sẽ thấy biểu tượng bảo mật một phần trong thanh địa chỉ, chỉ cần quan tâm kết nối vẫn được mã hóa.

Bước tiếp theo, bạn dán http://your_domain_or_ip vào thanh địa chỉ. Nếu biểu tượng giống như trang HTTPS, chuyển hướng hoạt động thành công

FAQs ( Câu hỏi thường gặp)

Chứng chỉ self-signed là gì? Có an toàn không?

Chứng chỉ tự ký (self-signed certificate) là một loại chứng chỉ SSL/TLS mà do chính người quản trị tạo ra thay vì được cơ quan chứng thực bảo mật từ  bên ngoài xác nhận. Điều này có nghĩa là không có bên thứ ba nào  đáng tin cậy đã kiểm tra và xác nhận rằng máy chủ thực sự thuộc về người sở hữu hay không.Thay vào đó, người dùng có thể tự tạo và tự ký chứng chỉ này. Vậy nên, có nhiều nguy cơ rò rỉ thông tin bảo mật

Nên mua chứng chỉ SSL ở đâu uy tín nhất hiện nay?

Bạn đang cần tìm địa chỉ mua SSL uy tín chất lượng, LANIT chắc chắn sẽ là một nhà cung cấp nhất định bạn không thể bỏ qua. Với nhiều năm hoạt động trong lĩnh vực bảo mật thông tin, LANIT chắc chắn là  một đối tác uy tín cung cấp các loại chứng chỉ SSL đáng tin cậy cho doanh nghiệp và tổ chức.  LANIT cam kết đem đến sự lựa chọn đa dạng và hỗ trợ chuyên nghiệp trong việc cài đặt và quản lý chứng chỉ SSL.

Liên hệ ngay LANIT ngay hôm nay để được hỗ trợ tư vấn giải pháp bảo mật tốt nhất cùng với những ưu mãi hấp dẫn:

  • Trụ sở tại: Toà Báo Công An Nhân Dân, 23 Nghiêm Xuân Yêm, Thanh Liệt, Thanh Trì, Hà Nội.
  • Hotline: 0945.96.95.94
  • Email: [email protected]
  • Website: https://lanit.com.vn/

Lời kết

Qua bài viết này, chúng ta đã tìm hiểu cách tạo chứng chỉ ssl trên apache . Việc bảo vệ thông tin truyền tải qua mạng là cực kỳ quan trọng, ngoài ra, việc sử dụng chứng chỉ SSL giúp đảm bảo tính bảo mật cho dữ liệu của bạn và sự tin tưởng của khách hàng. Nếu bạn có bất kỳ thắc mắc gì về các bước trên thì hãy liên hệ ngay với LANIT, hoặc để lại bình luận bên dưới để được hỗ trợ kịp thời nhé!

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!