Настройка SSL/TLS для Apache в CentOS 8
Mục lục:
- Điều kiện tiên quyết
- Cài đặt Certbot
- Tạo nhóm Strong Dh (Diffie-Hellman)
- Nhận chứng chỉ SSL Hãy mã hóa
- Tự động gia hạn Hãy mã hóa chứng chỉ SSL
- Phần kết luận
Let Encrypt là cơ quan cấp chứng chỉ mở, tự động và miễn phí được phát triển bởi Nhóm nghiên cứu bảo mật Internet (ISRG) cung cấp chứng chỉ SSL miễn phí.
Chứng chỉ do Let Encrypt cấp được tin cậy bởi tất cả các trình duyệt chính và có giá trị trong 90 ngày kể từ ngày phát hành.
Hướng dẫn này giải thích cách cài đặt chứng chỉ SSL Encrypt SSL miễn phí trên CentOS 8 chạy Apache dưới dạng máy chủ web. Chúng tôi sẽ sử dụng công cụ certbot để lấy và gia hạn các chứng chỉ.
Điều kiện tiên quyết
Đảm bảo rằng các điều kiện tiên quyết sau được đáp ứng trước khi tiếp tục:
- Có một tên miền trỏ đến IP máy chủ công cộng của bạn. Chúng tôi sẽ sử dụng
example.com.Apache được cài đặt và chạy trên máy chủ của bạn với máy chủ ảo được định cấu hình cho miền của bạn. Cổng 80 và 443 được mở trong tường lửa của bạn.
Cài đặt các gói sau đây được yêu cầu cho máy chủ web được mã hóa SSL:
sudo dnf install mod_ssl openssl
Khi gói mod_ssl được cài đặt, nó sẽ tạo một khóa tự ký và các tệp chứng chỉ cho localhost. Nếu các tệp không được tạo tự động, bạn có thể tạo chúng bằng lệnh
openssl
:
sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \
-out /etc/pki/tls/certs/localhost.crt \
-keyout /etc/pki/tls/private/localhost.key
Cài đặt Certbot
Certbot là một công cụ dòng lệnh miễn phí giúp đơn giản hóa quy trình lấy và làm mới Chứng chỉ SSL mã hóa từ và tự động kích hoạt HTTPS trên máy chủ của bạn.
Gói certbot không được bao gồm trong kho CentOS 8 tiêu chuẩn, nhưng có thể tải xuống từ trang web của nhà cung cấp.
Chạy lệnh
wget
sau với tư cách là người dùng root hoặc sudo để tải tập lệnh certbot vào thư mục
/usr/local/bin
:
sudo wget -P /usr/local/bin
Khi quá trình tải xuống hoàn tất, hãy thực hiện tệp:
sudo chmod +x /usr/local/bin/certbot-auto
Tạo nhóm Strong Dh (Diffie-Hellman)
Trao đổi khóa Diffieifer Hellman (DH) là một phương pháp trao đổi khóa mật mã an toàn qua một kênh liên lạc không bảo mật. Tạo một bộ tham số DH 2048 bit mới để tăng cường bảo mật:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Bạn có thể thay đổi kích thước lên tới 4096 bit, nhưng việc tạo có thể mất hơn 30 phút tùy thuộc vào entropy của hệ thống.
Nhận chứng chỉ SSL Hãy mã hóa
Để có được chứng chỉ SSL cho tên miền, chúng tôi sẽ sử dụng plugin Webroot hoạt động bằng cách tạo một tệp tạm thời để xác thực tên miền được yêu cầu trong thư mục
${webroot-path}/.well-known/acme-challenge
. Máy chủ Let Encrypt tạo các yêu cầu HTTP đến tệp tạm thời để xác thực rằng miền được yêu cầu phân giải đến máy chủ nơi certbot chạy.
Để làm cho việc thiết lập đơn giản hơn, chúng tôi sẽ ánh xạ tất cả các yêu cầu HTTP cho
.well-known/acme-challenge
vào một thư mục duy nhất,
/var/lib/letsencrypt
.
Chạy các lệnh sau để tạo thư mục và làm cho nó có thể ghi được cho máy chủ Apache.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Để tránh trùng lặp mã và làm cho cấu hình dễ bảo trì hơn, hãy tạo hai đoạn cấu hình sau:
/etc/httpd/conf.d/letsencrypt.conf
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM # Requires Apache 2.4.36 & OpenSSL 1.1.1 SSLProtocol -all +TLSv1.3 +TLSv1.2 SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1 # Older versions # SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" 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 SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Đoạn mã ở trên đang sử dụng các trình cắt được đề xuất bởi Codesli.st. Nó cho phép OCSP Stapling, HTTP Strict Transport Security (HSTS), khóa Dh và thực thi một số tiêu đề HTTP tập trung vào bảo mật.
Tải lại cấu hình Apache để các thay đổi có hiệu lực:
sudo systemctl reload
Bây giờ, bạn có thể chạy tập lệnh certbot với plugin webroot và tìm nạp các tệp chứng chỉ SSL:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Khi thành công, certbot sẽ in thông báo sau:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-01-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Bây giờ mọi thứ đã được thiết lập, hãy chỉnh sửa cấu hình máy chủ ảo tên miền của bạn như sau:
/etc/httpd/conf.d/example.com
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
Cấu hình ở trên đang buộc HTTPS và chuyển hướng từ www sang phiên bản không có www. Nó cũng cho phép HTTP / 2, giúp trang web của bạn nhanh hơn và mạnh hơn. Được miễn phí để điều chỉnh cấu hình theo nhu cầu của bạn.
Khởi động lại dịch vụ Apache:
sudo systemctl restart
Bây giờ bạn có thể mở trang web của mình bằng
https://
và bạn sẽ thấy biểu tượng khóa màu xanh lá cây.

Tự động gia hạn Hãy mã hóa chứng chỉ SSL
Chứng chỉ của Encrypt có hiệu lực trong 90 ngày. Để tự động gia hạn chứng chỉ trước khi chúng hết hạn, chúng tôi sẽ tạo một cronjob sẽ chạy hai lần một ngày và tự động gia hạn bất kỳ chứng chỉ nào 30 ngày trước khi hết hạn.
Chạy lệnh sau để tạo một cronjob mới sẽ làm mới chứng chỉ và khởi động lại Apache:
echo "0 0, 12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload httpd\"" | sudo tee -a /etc/crontab > /dev/null
Để kiểm tra quá trình gia hạn, hãy sử dụng lệnh certbot theo sau là công tắc
--dry-run
:
sudo /usr/local/bin/certbot-auto renew --dry-run
Nếu không có lỗi, điều đó có nghĩa là quá trình gia hạn đã thành công.
Phần kết luận
Trong hướng dẫn này, chúng tôi đã nói về cách sử dụng chứng chỉ ứng dụng khách Encrypt trên CentOS để lấy chứng chỉ SSL cho tên miền của bạn. Bạn cũng đã chỉ cho bạn cách định cấu hình Apache để sử dụng các chứng chỉ và thiết lập một cronjob để gia hạn chứng chỉ tự động.
Để tìm hiểu thêm về tập lệnh Certbot, hãy truy cập tài liệu của Certbot.
apache centos hãy mã hóa certbot sslChỉ một phần ba số thông tin nhạy cảm được lưu trữ trên máy tính xách tay của chính phủ Hoa Kỳ và các thiết bị di động, bao gồm thông tin cá nhân của người dân Hoa Kỳ, đã được mã hóa một năm trước, mặc dù hàng loạt vụ vi phạm dữ liệu tại các cơ quan chính phủ trong những năm gần đây, Báo cáo của Văn phòng Giải trình Trách nhiệm Chính phủ Hoa Kỳ cho thấy 70% thông tin nhạy cảm được lưu giữ trên máy tính xách tay và các thiết bị di động tại 24 cơ quan lớn của Hoa Kỳ đã không được mã hóa kể từ thán
Báo cáo theo dõi hàng loạt những rủi ro về an ninh của các cơ quan chính phủ Hoa Kỳ trong những năm gần đây. Tháng 3 năm 2007, Cơ quan Dịch vụ Thu nội địa của Hoa Kỳ báo cáo rằng 490 máy tính xách tay đã bị mất tích hoặc bị mất cắp trong một khoảng thời gian ba năm. Vào tháng 9 năm 2006, Bộ Thương mại Hoa Kỳ đã báo cáo rằng 1.137 máy tính xách tay bị mất hoặc bị đánh cắp từ năm 2001, trong đó có 249 máy tính xách tay có chứa một số dữ liệu cá nhân. Vào tháng 5 năm 2006, Bộ Cựu chiến binh báo cáo
Trong một số trường hợp, các cử tri nói với tờ báo rằng họ cố gắng bỏ phiếu cho thượng nghị sĩ Barack Obama cho tổng thống được chuyển sang thượng nghị sĩ John McCain. Thẩm phán Quận Jackson, Jeff Waybright, một thành viên của đảng Cộng hòa cho hay, cả ba người phàn nàn đều có thể chuyển phiếu bầu cho những ứng cử viên mà họ muốn. Các máy bỏ phiếu của ES & S đang được sử dụng trên toàn tiểu bang bao gồm một bản in bằng giấy ghi âm, cộng với hai lời nhắc trên màn hình yêu cầu cử tri xác nhận chọn
"Có ba kiểm tra Waybright cho biết các cử tri có thể đã chạm vào nút của nút ứng cử viên đảng Cộng hòa trên màn hình khi cố gắng bỏ phiếu cho một đảng viên Dân chủ. Waybright nói: "Tôi không biết chuyện gì đã xảy ra". Nhân viên của Waybright đã yêu cầu cử tri về việc thực hiện các máy bỏ phiếu điện tử kể từ khi có tin tức đưa ra ra thứ sáu tuần trước. Văn phòng của Waybright đã hiệu chỉnh lại các máy sau khi có tin tức, và văn phòng của lục sự đã cung cấp cho các cử tri bút chì vút nhám để sử dụ
Apache an toàn với mã hóa trên centos 7
Trong hướng dẫn này, chúng tôi sẽ đề cập đến các bước cần thiết để cài đặt chứng chỉ SSL Encrypt SSL miễn phí trên máy chủ CentOS 7 chạy Apache dưới dạng máy chủ web.







