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í.
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é.