Cài đặt chứng chỉ SSL lên máy chủ Ubuntu sử dụng webserver Apache

Trước đây mình có hướng dẫn về cài đặt SSL cho webserver Apache trên CentOS, vậy còn cài đặt trên Ubuntu thì sẽ như thế nào, cùng mình tìm hiểu nhé.

Bài viết cũ bạn có thể xem:

Cài đặt chứng chỉ SSL lên máy chủ CentOS sử dụng webserver Apache

Bước 1: Tạo chứng chỉ SSL

Bạn cần tạo chứng chỉ SSL để sử dụng, bạn có thể tạo chứng chỉ miễn phí hoặc có phí của bất kỳ đơn vị nào, bạn cũng có thể xem lại bài viết tạo chứng chỉ miễn phí.

Hướng dẫn cài SSL miễn phí


Bước 2: Thực hiện SSH vào máy chủ Ubuntu

Bạn dùng bất kỳ phần mềm nào có tính năng SSH vào VPS thì bạn hãy sử dụng nhé, ngoài ra thì bạn cũng có thể tham khảo thêm cách dùng SSH key để bảo mật hơn.

Hướng dẫn tạo SSH key VPS trên Windows

Hướng dẫn tạo SSH key VPS trên Linux

Bước 3: Cài đặt a2enmod SSL

Bạn sẽ cần phải cài đặt a2enmod này để hỗ trợ cho kết nối SSL.

a2enmod ssl
[email protected]:~# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
service apache2 restart

Sau khi lệnh trên chạy xong thì bạn hãy restart lại apache luôn nhé.

Trước và sau khi cài a2enmod SSL

[email protected]:~# netstat -tulpn | grep apache
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN 1080/apache2

[email protected]:~# service apache2 restart

[email protected]:~# netstat -tulpn | grep apache
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN 2178/apache2
tcp6 0 0 :::443 :::* LISTEN 2178/apache2

Bước 4: Tạo thư mục, file chứa chứng chỉ

Sau khi có đầy đủ các file chứng chỉ, bạn hãy thực hiện tạo các file crt, key, ca-bundle tương ứng tại đường dẫn

/etc/ssl/certs/

Thông thường thì mình sẽ đặt tên các file bao gồm tên miền để dễ phân biệt. Ví dụ: domain.crt, domain.key, ca-domain.crt

Bước 5: Cấu hình lại file virtual host

Bạn thực hiện thêm đoạn sau vào file config website, thường file config sẽ nằm tại /etc/apache2/sites-enabled/domain.conf , bạn hãy thay lại cho đúng với website của bạn nhé

<VirtualHost *:443>
ServerName www.domain.com                      
ServerAlias domain.com             
DocumentRoot /var/www/domain.com/public_html                         
ErrorLog /var/www/domain.com/error.log                         
CustomLog /var/www/domain.com/requests.log combined                         SSLEngine on                         
SSLCertificateFile /etc/ssl/certs/domain.crt                         SSLCertificateKeyFile /etc/ssl/certs/domain.key                                  SSLCertificateChainFile /etc/ssl/certs/ca-domain.crt
</VirtualHost>

Bước 6: Kiểm tra lại service Apache

Bạn thực hiện chạy lệnh sau để kiểm tra lại cấu hình cài đặt trước đó xem có lỗi gì xảy ra không.

apachectl configtest

Khi bạn chạy lệnh này xong sẽ bạn sẽ nhận được thông báo sau là thành công.

Syntax OK.

Cuối cùng bạn khởi động lại dịch vụ Apache để nhận lại cấu hình mới nhé.

systemctl restart httpd

Vậy là quá trình cài đặt SSL lên máy chủ Apache trên server Ubuntu đã hoàn tất. Chúc bạn thực hiện thành công.

Ngoài ra thì bạn hãy kiểm tra thêm trạng thái SSL của website theo link này nhé.

Leave a Reply