Download app

Quét mã QR để tải về ứng dụng

QR code

Tạo chứng chỉ SSL trên Apache cho CentOS 7 [HƯỚNG DẪN 5 BƯỚC CHI TIẾT]

31/10/2023, 05:09 pm
Elly Duong
521

Để bảo mật trang web, SSL là yếu tố vô cùng quan trọng, với chức năng mã hóa thông tin truyền tải giữa máy tính của người dùng với trình duyệt web. Liên quan đến nội dung này, trong bài viết dưới đây, chúng tôi sẽ hướng dẫn bạn cách tạo chứng chỉ SSL trên Apache cho CentOS 7 chi tiết nhất để bất kỳ ai cũng có thể thực hiện được.

Cần chuẩn bị gì để tạo chứng chỉ SSL trên Apache cho CentOS 7?

Để thực hiện tạo chứng chỉ SSL trên Apache cho CentOS 7, bạn cần:

+ Được cấp quyền truy cập vào máy chủ CentOS: Bạn bắt buộc cần có quyền truy cập vào CentOS 7 thông qua SSH hoặc phương pháp truy cập khác.

+ Tài khoản dùng non-root và 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 trên hệ thống.

+ Cài đặt máy chủ web Apache: Hãy đảm bảo rằng bạn đã cài đặt và cấu hình máy chủ web Apache trên CentOS 7 trước khi tiến hành tạo chứng chỉ SSL trên Apache cho CentOS 7.

Sau khi chuẩn bị đầy đủ, bạn có thể đăng nhập vào tài khoản người dùng non-root qua SSH và tiếp tục bước 1 dưới đây.

XEM THÊM: 

+ Thuê Hosting WordPress - Lựa chọn phù hợp cho website WordPress

+ Nhân Hòa - Nhà cung cấp dịch vụ hosting giá rẻ, tốc độ cao 

+ Hosting tốc độ cao  - NVMe Hosting Nhân Hòa chất lượng [SỐ 1] thị trường

Hướng dẫn 5 bước tạo chứng chỉ  SSL trên Apache cho CentOS 7 đơn giản

Bước 1: Cài đặt mod_ssl trên máy chủ

mod_ssl là một module Apache cung cấp nhằm hỗ trợ mã hóa SSL. Để cài đặt được chứng chỉ self-signed, việc đầu tiên bạn cần làm chính là cài đặt mod_ssl trên máy chủ bằng lệnh yum:

sudo yum install mod_ssl

Module tự bật trong quá trình cài đặt. Sau đó, khi khởi động lại Apache sẽ bắt đầu sử dụng SSL, bạn không cần làm thêm gì khác để cài đặt mod_SSL.

Bước 2: Tạo chứng chỉ SSL hoàn toàn mới

Khi Apache đã sẵn sàng mã hóa, bạn có thể tạo chứng chỉ SSL mới, TTL/SSL hoạt động bằng cách kết hợp đồng thời chứng chỉ công khai và khóa riêng tư, Khóa SSL được giữ bí mật tuyệt đối trên server, được sử dụng nhằm mã hóa nội dung gửi đến các Client và giải mã nội dung được ký bằng khóa SSL liên quan.

Thư mục /etc/ssl/certs được sử dụng để chứa chứng chỉ công khai đã có trên server. Tiếp theo, bạn cũng cần tạo một thư mục /etc/ssl/private để chứa file khóa riêng tư, tính bảo mật của khóa này vô cùng quan trọng. Chính vì vậy, việc khóa quyền truy cập để ngăn chặn truy cập trái phép là rất cần thiết.

sudo mkdir /etc/ssl/private

sudo chmod 700 /etc/ssl/private

Bạn tạo một cặp khóa và chứng chỉ self-signed với OpenSSL bằng lệnh sau:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

Trong đó:

+ sudo: Thực hiện với quyền hạn người dùng siêu (superuser) để được cấp quyền truy cập vào các thư mục và tệp hệ thống cần thiết.

+ openssl req: Công cụ OpenSSL được sử dụng với chứng năng là tạo yêu cầu chứng chỉ.

+ -x509: 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ỉ. Giúp tạo chứng chỉ ký, không yêu cầu chứng nhận bên ngoài.

+ -nodes: Cho phép OpenSSL biết bỏ qua tùy chọn bảo vệ chứng chỉ bằng mật khẩu. Bạn cần Apache để đọc file mà không cần đến sự can thiệp của người dùng mỗi khi server khởi động lại. Mật khẩu giữ nhiệm vụ ngăn cản điều này xảy ra do cần nhập mật khẩu mỗi lần khởi động lại.

+ -days 365: -day là xác định thời hạn có hiệu lực của chứng chỉ, trong trường hợp này là 1 năm.

+ -newkey rsa:2048: Thuật ngữ này dùng để chỉ định bạn muốn tạo ra một chứng chỉ và khóa mới cùng lúc. Nếu bạn chưa tạo khóa được yêu cầu để ký chứng chỉ trong 1 bước trước đó, cần tạo khóa cùng với chứng chỉ. Phần rsa:2048 chỉ định tạo ra một khóa RSA với độ dài 2048 bit.

+ -keyout /etc/ssl/private/apache-selfsigned.key: Cho bạn biết nơi đặt file khóa riêng tư được tạo ra.

+ -out /etc/ssl/certs/apache-selfsigned.crt: Thuật ngữ này cho OpenSSL biết nơi đặt chứng chỉ được tạo ra.

Lưu ý: Nhập tên miền hoặc địa chỉ IP công khai của server khi được yêu cầu nhập Common Name cần khớp chính xác với cách người dùng truy cập vào website của bạn.

Tất cả các câu hỏi sẽ bao gồm như sau:

Output

Country Name (2 letter code) [XX]:US

State or Province Name (full name) []:Example

Locality Name (eg, city) [Default City]:Example 

Organization Name (eg, company) [Default Company Ltd]:Example Inc

Organizational Unit Name (eg, section) []:Example Dept

Common Name (eg, your name or your server's hostname) []:your_domain_or_ip

Email Address []:webmaster@example.com

Cả 2 file sẽ được đặt trong thư mục con của thư mục /etc/ssl. Khi sử dụng OpenSSL, các bạn nên tạo một nhóm Diffie-Hellman sử dụng đàm phán Forward Secrecy tuyệt đối với client.

Cách tạo nhóm Diffie-Hellman bằng cách gõ:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Việc tạo nhóm này sẽ mất vài phút, khi hoàn tất, bạn sẽ có một nhóm DH mạnh tại /etc/ssl/certs/dhparam.pem để sử dụng trong cấu hình của mình.

Bước 3: Thiết lập 1 chứng chỉ hoàn chỉnh

Sau khi có được tất cả các thành phần cần thiết cho một giao diện hoàn chỉnh việc tiếp theo bạn cần làm là thiết lập server ảo để hiển thị chứng chỉ mới.

Đầu tiên mở 1 file mới trong thư mục /etc/httpd/conf.d:

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

Dán vào đó đoạn cấu hình dưới đây:

 

    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

 

Lưu ý: Cập nhật dòng Server Name phù hợp với thanh địa chỉ server của mình  và Common Name mà bạn chọn khi tạo chứng chỉ (hostname/tên miền đầy đủ/địa chỉ IP). 

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

Bước tiếp theo, bạn cần thêm một số tùy chọn SSL để tăng tính bảo mật cho website. Các tùy chọn sử dụng được đề xuất từ Cipherlist.eu. Trang web này được thiết kế với mục đích cung cấp các thiết lập mã hóa dễ sử dụng cho phần mềm phổ biến.

Lưu ý:

+ Các thiết lập Cipherlist.eu cung cấp bảo mật mạnh mẽ, tuy nhiên tương thích kém với client cũ. Trong trường hợp hỗ trợ khách hàng cũ, bạn có thể sử dụng danh sách tương thích thay thế bằng cách nhập vào liên kết có nhãn “Yes, give me a ciphersuite that works with legacy/old software.”

+ Bạn có thể thêm server DNS của mình cho yêu cầu upstream vào chỉ thị resolver. Hoặc thay vì sử dụng Google bạn có thể thay đổi sang DNS khác.

Dán các thiết lập từ trang web khi kết thúc khối VirtualHost:

. . .

 

. . .


# 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

Khi đã hoàn thành các thay đổi này, bạn lưu và đóng file.

Chuyển hướng  HTTP => HTTPS (Không bắt buộc)

Server cung cấp cả lưu lượng HTTPS được mã hóa và lưu lượng HTTP không mã hóa. Để an toàn hơn, bạn có thể chuyển hướng HTTP sang HTTPS tự động (chức năng này hoàn toàn không bắt buộc).

Việc chuyển hướng được thực hiện như sau:

+ Bạn tạo và mở một file có đuôi .conf ở thư mục /etc/httpd/conf.d:

sudo vi /etc/httpd/conf.d/non-ssl.conf

+ Tiếp theo tạo một khối VirtualHost phù hợp với các yêu cầu:

 

       ServerName your_domain_or_ip

        Redirect "/" "https://your_domain_or_ip/"

 

Lưu và đóng file này khi bạn đã hoàn thành.

Bước 4: Thay đổi cấu hình SSL cho apache

Để bắt đầu sử dụng mã hóa SSL, bạn khởi động lại Server Apache để tải lại cấu hình và các module.

+ Đầu tiên cần kiểm tra file cấu hình của bạn có bị lỗi cú pháp không bằng cách nhập:

sudo apachectl configtest

Nếu Output kết thúc bằng Syntax OK thì bạn có thể tiếp tục, trong trường hợp không thấy hiện phần này, hãy kiểm tra bằng cú pháp của các file và thử lại:

Output

. . .

Syntax OK

+ Tiếp theo khởi động lại server bằng cách nhập:

sudo systemctl restart httpd.service

+ Cổng 80 và 443 được mở trong tường lửa iptables (Nếu không chạy tường lửa có thể bỏ qua phần này) bằng cách nhập:

sudo firewall-cmd --add-service=http

sudo firewall-cmd --add-service=https

sudo firewall-cmd --runtime-to-permanent

+ Nếu chạy tường lửa, bạn thêm truy cập HTTP và HTTPS bằng cách:

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

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

Mở trình duyệt web và nhập https:// theo sau là tên server’s domain hoặc địa chỉ IP server của bạn vào thanh địa chỉ:

+ Mở trình duyệt web và nhập https://*tên server’s domain/địa chỉ IP server* vào thanh địa chỉ:

https://your_domain_or_ip

+ Bạn có thể gặp một số cảnh báo như sau:

ảnh

Lúc này nhấp vào “ADVANCED” và click vào liên kết được cung cấp để tiếp tục vào server, đi đến trang web.

anh

Bên cạnh đó nếu đã cấu hình Apache để chuyển hướng các yêu cầu HTTP sang HTTPS, các bạn cũng có thể kiểm tra chức năng chuyển hướng chính xác chưa:

https://your_domain_or_ip

Nếu kết quả chuyển đến cùng một biểu tượng, đồng nghĩa với việc chuyển hướng của bạn hoạt động chính xác.

3 thắc mắc liên quan

SSL là gì, liệu có an toàn không?

SSL là viết tắt của cụm từ Secure Sockets Layer - một tiêu chuẩn an ninh công nghệ toàn cầu tạo ra nhằm liên kết giữa máy chủ web và trình duyệt web, nhằm đảm bảo tất cả dữ liệu được trao đổi giữa máy chủ web và trình duyệt được bảo mật và an toàn tuyệt đối.

Sử dụng SSL có an toàn không hay có nên sử dụng SSL không, câu trả lời chắc chắn là "CÓ".

+ SSL bảo vệ website và khách hàng của bạn khỏi những lỗ hổng bảo mật, hacker tấn công...

+ Dữ liệu được mã hóa và chỉ người nhận đích thực mới có thể giải mã này.

+ Bảo vệ toàn vẹn dữ liệu, tránh tình trạng thay đổi bởi tin tặc.

+ Ngăn chặn đối tượng thực hiện gửi dữ liệu không thể phủ nhận.

Khi một máy tính kết nối với một Website có SSL điều gì sẽ xảy ra?

+ Trình duyệt yêu cầu website cung cấp thông tin để xác nhận danh tính.

+ Website gửi cho trình duyệt chứng chỉ SSL được cấp.

+ Trình duyệt kiểm tra tính xác thực của SSL, nếu đúng nó sẽ thông báo lại cho website là SSL của nó được chấp thuận.

+ Website gửi ngược lại chữ ký số sẽ dùng với mục đích mã hóa và giải mã trong suốt quá trình giao dịch tiếp theo.

+ Dữ liệu giữa trình duyệt và website sẽđược mã hóa.

Nên mua SSL ở đâu uy tín, giá phải chăng?

Nếu bạn đang tìm kiếm địa chỉ mua SSL uy tín, chất lượng hãy đến với Nhân Hòa. Với kinh nghiệm hơn 22 năm trong lĩnh vực bảo mật thông tin, Nhân Hòa là nhà cung cấp uy tín, đáng tin cậy được các doanh nghiệp, tổ chức và cá nhân lựa chọn. 

Ngoài ra, bạn cũng có thể tham khảo gói dịch vụ Cloud VPS giá rẻ, cấu hình đa dạng của Nhân Hòa, hãy liên hệ theo thông tin dưới đây để được hỗ trợ:

+ Tổng đài: 1900 6680

+ Website: https://nhanhoa.com/

+ Fanpage: https://www.facebook.com/nhanhoacom

+ Chỉ đường: https://g.page/nhanhoacom

+ Ưu đãi Nhân Hòa: https://nhanhoa.com/uu-dai-nhan-hoa.html

Lời kết

Trên đây là hướng dẫn tạo chứng chỉ SSL trên Apache cho CentOS 7. Mong rằng những thông tin này hữu ích với các bạn, từ đó giúp bạn có thể mã hóa và bảo mật thông tin website của mình tốt nhất. 

XEM THÊM: 

+ Địa chỉ mua tên miền uy tín, giá cả phải chăng [CLICK TẠI ĐÂY]

+ Check tên miền đẹp, nhanh gọn ngay hôm nay

Bài viết liên quan
11/04/2024
Với mong muốn hỗ trợ quá trình học tập, phát triển và mở ra cơ hội việc làm cho các bạn sinh viên, ngày 09/04/2024 vừa...
28/02/2024
Ngày 19/01/2024, Trung tâm Internet Việt Nam (VNNIC) tổ chức Hội nghị CEO các Nhà đăng ký tên miền quốc gia ".vn" năm 2024 nhằm...
27/02/2024
VPS Quốc Tế do Nhân Hòa phát triển được xây dựng trên một hạ tầng mạnh mẽ với các tính năng ưu việt, nhờ đó giúp...
Chuyên nghiệp và tận tình
Hỗ Trợ Trực Tuyến 24/7
Đội ngũ chuyên gia giúp xử lý vấn đề kỹ thuật để website của bạn luôn hoạt động tốt và chạy nhanh. Bất kỳ lúc nào.
Kết nối với Nhân Hoà

Map Tầng 4 - Toà nhà 97 - 99 Láng Hạ, Quận Đống Đa, Thành Phố Hà Nội

Phone Điện thoại: (024) 7308 6680

Mail Mail: sales@nhanhoa.com

Hotline Hotline: 091 140 8966

Map 927/1 CMT8, Phường 7, Quận Tân Bình, Thành phố Hồ Chí Minh

Phone Điện thoại: (028) 7308 6680

Mail Mail: hcmsales@nhanhoa.com

Hotline Hotline: 091 285 1416

Map Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Phone Điện thoại: (024) 7308 6680 - nhánh 6

Mail Mail: contact@nhanhoa.com

Hotline Hotline : 091 522 1384

Kết nối với Nhân Hoà
Gọi lại cho tôi
Gọi miễn phí
Gọi miễn phí
×
Thông báo

Đăng nhập thành công!