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é!

Chuẩn bị

Để tạo chứng chỉ SSL trên Apache cho CentOS 7, bạn cần chuẩn bị:

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

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 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 cài đặt mod_ssl trên máy chủ. Để cài đặt mod_ssl, bạn sử dụng lệnh yum sau đây: 

sudo yum install mod_ssl

Tiếp theo, Module sẽ được kích hoạt tự động 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 cho việc mã hóa, 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, 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à thư mục dùng để lưu trữ các chứng chỉ công khai có sẵn trên server. 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à việc hết sức quan trọng nên việc hạn chế quyền truy cậ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 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 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. “X.509” là chuẩn cơ bản về quản lý khóa công khai mà cả SSL và TLS đều 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, 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

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 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” phù hợp với địa chỉ của máy chủ 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 không hiển thị phần này, hãy kiểm tra lại cú pháp 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 Port 80 và 443 được mở trong tường lửa. (bỏ qua nếu ban không dùng tường lửa).

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

Tiếp theo, bạn chọn “ADVANCED” và nhấp vào liên kết để vào trang. Và 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.

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

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!