Triển khai HTTPS với httpd

HTTPS: HTTP qua SSL

Quy trình thiết lập phiên SSL đơn giản

(1) Máy khách gửi phương thức mã hóa khả dụng và yêu cầu chứng chỉ từ máy chủ(2) Máy chủ phản hồi với chứng chỉ và phương thức mã hóa đã chọn(3) Máy khách xác thực chứng chỉ qua các bước: - Kiểm tra tính hợp lệ của CA cấp chứng chỉ (a) Xác minh tính hợp pháp nguồn gốc: Dùng khóa công khai CA giải mã chữ ký số (b) Kiểm tra tính toàn vẹn nội dung chứng chỉ (c) Đối chiếu thời hạn hiệu lực (d) Tra cứu trạng thái thu hồi chứng chỉ (e) So khớp tên chủ sở hữu trong chứng chỉ với tên miền truy cập(4) Máy khách tạo khóa phiên tạm thời (khóa đối xứng), mã hóa bằng khóa công khai máy chủ và gửi đi để hoàn tất trao đổi khóa(5) Máy chủ dùng khóa này mã hóa tài nguyên yêu cầu và phản hồi về máy kháchLưu ý: SSL dựa trên địa chỉ IP. Máy chủ đơn IP chỉ hỗ trợ 1 máy chủ ảo HTTPS### Triển khai HTTPS

(1) Xin chứng chỉ số cho máy chủ Môi trường thử nghiệm: Tự xây dựng CA nội bộ (a) Tạo CA riêng (b) Tạo yêu cầu ký chứng chỉ (CSR) trên máy chủ (c) CA ký xác nhận Môi trường sản phẩm: Chỉ cần tạo CSR, gửi cho CA uy tín và nhập chứng chỉ nhận được vào đường dẫn cấu hình(2) Cấu hình httpd hỗ trợ SSL và chỉ định đường dẫn chứng chỉyum -y install mod_sslTệp cấu hình chính: /etc/httpd/conf.d/ssl.conf.Cấu hình mẫu dưới đây định nghĩa máy chủ ảo với SSL để triển khai HTTPS. Các thông số khác kế thừa từ common.conf (ví dụ: documentroot). Sau khi cấu hình, khởi động lại dịch vụ để truy cập Apache qua HTTPS.``` sed -i.bak -e '/^$/d' -e '/^[#].*/d' /etc/httpd/conf.d/ssl.conf more /etc/httpd/conf.d/ssl.conf   Listen 443 https   SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog   SSLSessionCache shmcb:/run/httpd/sslcache(512000)   SSLSessionCacheTimeout 300   SSLRandomSeed startup file:/dev/urandom 256   SSLRandomSeed connect builtin   SSLCryptoDevice builtin   <VirtualHost default:443>     ErrorLog logs/ssl_error_log     TransferLog logs/ssl_access_log     LogLevel warn     SSLEngine on     SSLProtocol all -SSLv2 -SSLv3     SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA     SSLCertificateFile /etc/pki/tls/certs/localhost.crt     SSLCertificateKeyFile /etc/pki/tls/private/localhost.key     <Files ~ ".(cgi|shtml|phtml|php3?)$">     SSLOptions +StdEnvVars     </Files>     <Directory "/var/www/cgi-bin">     SSLOptions +StdEnvVars     </Directory>     BrowserMatch "MSIE [2-5]"
  nokeepalive ssl-unclean-shutdown
  downgrade-1.0 force-response-1.0     CustomLog logs/ssl_request_log
  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"   </VirtualHost>


Truy cập thử nghiệm

### Chuyển hướng HTTP sang HTTPS

Dùng chuyển hướng để định tuyến yêu cầu HTTP sang URL HTTPSCách thực hiệnRedirect [trạng_thái] đường_dẫn_URL đích_URL Các trạng thái: Permanent: Mã 301 (chuyển hướng vĩnh viễn) Temp: Mã 302 (mặc định - chuyển hướng tạm thời)Ví dụ:Redirect temp / https://www.magedu.com/### Thí nghiệm: Chuyển hướng /var/www/html sang https://ssltest.com

Cấu hình độc lập không liên quan phần trên

/etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html" redirect temp / https://www.ssltest.com


Lỗi vòng lặp chuyển hướng khi dùng cấu hình trực tiếp trong httpd.conf

Giải pháp thay thế:


/etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html"#redirect temp / https://www.ssltest.com##Bỏ dòng nàyRewriteEngine onRewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=302]


Các tùy chọn curl -k: Cho phép kết nối HTTPS không chứng chỉ -L: Tự động theo dõi địa chỉ chuyển hướng -I: Chỉ lấy thông tin header

Thẻ: httpd HTTPS ssl apache mod_ssl

Đăng vào ngày 20 tháng 6 lúc 03:45