Copyright© Mat Bao Company. All Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Mắt Bão có nghĩa là bạn đồng ý với Thỏa thuận sử dụng và Chính sách bảo mật của chúng tôi.
Công ty cổ phần Mắt Bão - Giấy phép kinh doanh số: 0302712571 cấp ngày 04/09/2002 bởi Sở Kế Hoạch và Đầu Tư Tp. Hồ Chí Minh.
Giấy phép cung cấp dịch vụ Viễn thông số 247/GP-CVT cấp ngày 08 tháng 05 năm 2018.
Khắc phục lỗi HTTP2 không hỗ trợ trên trình duyệt web phiên bản cũ
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
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
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.