Hướng dẫn cài đặt Let's Encrypt trên Web Server Apache CentOS 7.x
Để cài đặt Let's Encrypt chúng ta cần trỏ tên miền về địa chỉ IP của VPS/Server.
Bước 1: Cài đặt các phần mềm cần thiết
Trước khi chúng ta cài đặt certbot để generate chứng chỉ SSLvà cài đặt mod_ssl để chứng thực gói tin. Chúng ta cần bật EPEL repository nơi chứa các gói cần cài đặt cho CentOS như certbot
Kích hoạt EPEL repository bằng lệnh
# yum install epel-release
Cài đặt Certbot và Mod_SSL
# yum install httpd mod_ssl python-certbot-apache
-> Nếu chúng ta đã cài đặt Apache thì chúng ta có thể bỏ cài đặt httpd
Khởi động dịch vụ Apache
# systemctl start httpd
Cho phép dịch vụ Apache chạy qua firewall
# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# firewall-cmd --runtime-to-permanent
Bước 2: Khởi tạo chứng chỉ SSL
Cho nhiều domain
# certbot --apache -d example.com -d www.example.com
Cho một domain
# certbot --apache -d example.com
Cho bất kỳ domain nào
# certbot --apache
Cấu hình SSL cho Apache an toàn hơn
# nano /etc/httpd/conf.d/ssl.conf
Bỏ comment 2 dòng sau:
# SSLProtocol all -SSLv2
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
Chống tấn công qua giao thức http và cookie
Thêm dòng sau vào sau </VirtualHost>
# Begin copied text
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
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"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
# SSLSessionTickets Off
Bước 3: Thiết lập tự động gia hạn chứng chỉ SSL
# certbot renew
Tạo crontab tự động
crontab -e
30 2 * * * /usr/bin/certbot renew >> /var/log/le-renew.log
Bước 1: Cài đặt các phần mềm cần thiết
Trước khi chúng ta cài đặt certbot để generate chứng chỉ SSLvà cài đặt mod_ssl để chứng thực gói tin. Chúng ta cần bật EPEL repository nơi chứa các gói cần cài đặt cho CentOS như certbot
Kích hoạt EPEL repository bằng lệnh
# yum install epel-release
Cài đặt Certbot và Mod_SSL
# yum install httpd mod_ssl python-certbot-apache
-> Nếu chúng ta đã cài đặt Apache thì chúng ta có thể bỏ cài đặt httpd
Khởi động dịch vụ Apache
# systemctl start httpd
Cho phép dịch vụ Apache chạy qua firewall
# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# firewall-cmd --runtime-to-permanent
Bước 2: Khởi tạo chứng chỉ SSL
Cho nhiều domain
# certbot --apache -d example.com -d www.example.com
Cho một domain
# certbot --apache -d example.com
Cho bất kỳ domain nào
# certbot --apache
Cấu hình SSL cho Apache an toàn hơn
# nano /etc/httpd/conf.d/ssl.conf
Bỏ comment 2 dòng sau:
# SSLProtocol all -SSLv2
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
Chống tấn công qua giao thức http và cookie
Thêm dòng sau vào sau </VirtualHost>
# Begin copied text
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
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"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
# SSLSessionTickets Off
Bước 3: Thiết lập tự động gia hạn chứng chỉ SSL
# certbot renew
Tạo crontab tự động
crontab -e
30 2 * * * /usr/bin/certbot renew >> /var/log/le-renew.log
No comments: