SSL là gì và cách cấu hình

Jul 18, 2021

Hế lô mọi người! hôm nay mình cùng tìm hiểu về SSL và cách cấu hình SSL apache nhé

Tước tiên chúng ta cùng tìm hiểu xem SSL là gì ?

Theo mình tìm hiểu thì SSL là tiêu chuẩn của công nghệ bảo mật, truyền thông mã hoá giữa máy chủ Web server và trình duyệt. Tiêu chuẩn này hoạt động và đảm bảo rằng các dữ liệu truyền tải giữa máy chủ và trình duyệt của người dùng đều riêng tư và toàn vẹn. SSL hiện tại cũng là tiêu chuẩn bảo mật cho hàng triệu website trên toàn thế giới, nó bảo vệ dữ liệu truyền đi trên môi trường internet được an toàn.

Bây giờ mình sẽ bắt đầu cài đặt SSL, ở bài viết này mình sẽ cài đặt SSL apache trên Ubuntu .

1: tiến hành cài đặt apache, các bạn chạy các lệnh sau:

sudo apt update
sudo apt install apache2
sudo ufw allow "Apache Full"

Trước khi sử dụng bất kỳ chứng chỉ SSL nào , trước tiên chúng ta phải kích hoạt mod_ssl, một mô-đun Apache cung cấp hỗ trợ cho mã hóa SSL.

Kích hoạt mod_sslbằng a2enmodlệnh:

sudo a2enmod ssl

Khởi động lại apache

sudo systemctl restart apache2

2: Tạo chứng chỉ SSL

Chúng tôi có thể tạo khóa SSL và các tệp chứng chỉ bằng openssllệnh:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-sslsigned.key -out /etc/ssl/certs/apache-sslsigned.crt
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout -out
  • openssl: Đây là công cụ dòng lệnh để tạo và quản lý chứng chỉ OpenSSL, khóa và các tệp khác.
  • req -x509: Điều này chỉ định rằng chúng ta muốn sử dụng quản lý yêu cầu ký chứng chỉ (CSR) X.509. X.509 là tiêu chuẩn cơ sở hạ tầng khóa công khai mà SSL và TLS tuân thủ để quản lý khóa và chứng chỉ.
  • -nodes: Điều này yêu cầu OpenSSL bỏ qua tùy chọn bảo mật chứng chỉ của chúng ta bằng cụm mật khẩu. Chúng ta cần Apache để có thể đọc tệp mà không cần sự can thiệp của người dùng, khi máy chủ khởi động. Một cụm mật khẩu sẽ ngăn điều này xảy ra, vì chúng ta sẽ phải nhập nó sau mỗi lần khởi động lại.
  • -days 365: Tùy chọn này đặt khoảng thời gian mà chứng chỉ sẽ được coi là hợp lệ.
  • -newkey rsa:2048: Điều này chỉ định rằng chúng ta muốn tạo chứng chỉ mới và khóa mới cùng một lúc.
  • -keyout: Dòng này cho OpenSSL biết nơi đặt tệp khóa cá nhân đã tạo mà chúng ta đang tạo.
  • -out: Điều này cho OpenSSL biết nơi đặt chứng chỉ mà chúng ta đang tạo.

3: cấu hình apache để sử dụng SSL

Bây giờ chúng ta đã có chứng chỉ và khóa của mình, chúng ta cần cập nhật cấu hình Apache của mình để sử dụng chúng. Trên Ubuntu, các bạn có thể đặt các tệp cấu hình Apache mới (chúng phải kết thúc bằng .conf) vào /etc/apache2/sites-available/và chúng sẽ được tải vào lần tiếp theo quá trình Apache được tải lại hoặc khởi động lại.

Mở một tệp mới trong thư mục /etc/apache2/sites-available :

sudo nano /etc/apache2/sites-available/ssl_miichi.conf

Config VirtualHost như sau:

<VirtualHost *:443>
   ServerName ssl.miichi.local
   ServerAlias www.ssl.miichi.local

   DocumentRoot /var/www/ssl_miichi/

   SSLEngine on
   SSLCertificateFile /etc/ssl/certs/apache-sslsigned.crt
   SSLCertificateKeyFile /etc/ssl/private/apache-sslsigned.key


   <Directory /var/www/ssl_miichi/>
        Options +SymLinksIfOwnerMatch
        Options MultiViews
        AllowOverride All
    </Directory>

</VirtualHost>

tiếp theo chúng ta tạo file index.php như sau:

sudo mkdir /var/www/ssl_miichi
sudo nano /var/www/ssl_miichi/index.php

Thêm đoạn code sau vào file index.php

<?php

phpinfo();

Tiếp theo, chúng ta cần kích hoạt tệp cấu hình bằng công cụ a2ensite :

sudo a2ensite ssl_miichi.conf

kiểm tra lỗi cấu hình:

sudo apache2ctl configtest

ra kết quả sau là OK

tiếp theo cấu hình file /etc/hosts như sau:

127.0.0.1 ssl.miichi.local

bây giờ chúng ta cần reload lại apache :

sudo systemctl reload apache2

Cuối cùng mở trình duyệt lên điền link https://ssl.miichi.local/ kết quả là :

OK rồi như vậy là mình đã cấu hình xong SSL apache , hi vọng bài viết của mình sẽ giúp ích cho mọi người, cảm ơn và hẹn gặp lại

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.