Mở đầu Trong bài viết trước tôi đã trình bày tổng quan về giao thức HTTP2. Trong bài viết này tôi xin chia sẻ cách xủ lý vấn đề khi website đang chạy với giao thức HTTP2 nhưng một số trình duyệt phiên bản cũ hơn không hỗ trợ. Bạn có thể kiểm tra phiên bản của trình duyệt theo bảng bên dưới
Tổng quan về giao thức HTTP2
Nguyên nhân dẫn đến lỗi này do NGINX đã loại bỏ bộ mật mã(ciphers) cũ không an toàn, ta cần phải thêm bộ ciphers này trong file cấu hình SSL của NGINX
Cấu hình Ở bài viết này tôi sẽ sử dụng
Browser: Chorme 49/ Windows XP Firefox 47 / Windows 7
NGINX Kết nối đến server thông qua SSH với quyền root, thực hiện điều chỉnh file /etc/nginx/conf.d/ssl.conf
nano /etc/nginx/conf.d/ssl.conf Thêm dòng
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLS-RSA-WITH-RC4-128-MD5:TLS-RSA-WITH-RC4-128-SHA:TLS-RSA-WITH-3DES-EDE-CBC-SHA:TLS-RSA-WITH-DES-CBC-SHA:TLS-RSA-EXPORT1024-WITH-RC4-56-SHA:TLS-RSA-EXPORT1024-WITH-DES-CBC-SHA:TLS-RSA-EXPORT-WITH-RC4-40-MD5:TLS-RSA-EXPORT-WITH-RC2-CBC-40-MD5:TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA:TLS-RSA-WITH-AES-128-GCM-SHA256:AES-128-GMC:ECDHE-RSA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on; Lưu file và khởi động lại NGINX
service nginx restart Plesk Linux Kết nối đến server thông qua SSH với quyền root, thực hiện điều chỉnh file nano /etc/sw-cp-server/conf.d/ssl.conf
nano /etc/sw-cp-server/conf.d/ssl.conf Thêm dòng
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLS-RSA-WITH-RC4-128-MD5:TLS-RSA-WITH-RC4-128-SHA:TLS-RSA-WITH-3DES-EDE-CBC-SHA:TLS-RSA-WITH-DES-CBC-SHA:TLS-RSA-EXPORT1024-WITH-RC4-56-SHA:TLS-RSA-EXPORT1024-WITH-DES-CBC-SHA:TLS-RSA-EXPORT-WITH-RC4-40-MD5:TLS-RSA-EXPORT-WITH-RC2-CBC-40-MD5:TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA:TLS-RSA-WITH-AES-128-GCM-SHA256:AES-128-GMC:ECDHE-RSA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on; Lưu file và khởi động lại
service sw-cp-server restart Sau khi hoàn tất bạn có thể mở trình duyệt và kiểm tra lại hoặc sử dụng link bên dưới để kiểm tra
https://www.ssllabs.com/ssltest/analyze.html
Kết luận HTTP / 2 có một danh sách đen lớn về mật mã cũ và không an toàn, vì vậy chúng ta phải tránh chúng. Bộ mã hóa là một loạt các thuật toán mã hóa, mô tả cách mã hóa dữ liệu.
Tôi khuyên bạn tốt nhất nâng cấp hệ điều hành và trình duyệt web, để phòng tránh những rủi ro về bảo mật.