Mục tiêu của tôi là đảm bảo an ninh thích hợp cho các khách hàng kết nối với nginx của tôi. Tôi đang làm theo hướng dẫn của Mozilla để định cấu hình TLS chính xác trong quá trình cài đặt nginx của tôi, nhưng tôi không có cái nhìn tổng quan về các giao thức / mật mã thực tế đang được sử dụng trong thực tế.
Những gì tôi có bây giờ:
server {
listen 443;
ssl on;
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_dhparam /path/to/dhparam.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'the_long_ciphersuite_listed_there';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
}
Với điều này, tôi muốn đăng nhập giao thức SSL nào được sử dụng cho kết nối và ciphersuite nào được chọn sau khi khách hàng / máy chủ đàm phán. Ví dụ:
10.1.2.3 - - [13/Aug/2014:12:34:56 +0200] "GET / HTTP/1.1" 200 1234 "-" "User agent bla"
đến
10.1.2.3 - - [13/Aug/2014:12:34:56 +0200] ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 "GET / HTTP/1.1" 200 1234 "-" "User agent bla"
Bằng cách này, tôi có thể nhanh chóng xác định các máy khách đang sử dụng các trình duyệt hoặc máy tự động lỗi thời không hỗ trợ PFS hoặc các công nghệ cho phép bảo mật có liên quan khác.
Làm cách nào để định cấu hình nginx để ghi thông tin này?