Let’s Encrypt là một cơ quan cấp chứng chỉ (CA) miễn phí, tự động và mở, được vận hành vì lợi ích của công chúng. Các nguyên tắc chính đằng sau Let’s Encrypt là:
Các nguyên tắc chính đằng sau Let’s Encrypt là Miễn phí: Bất kỳ ai sở hữu tên miền đều có thể sử dụng Let’s Encrypt để lấy chứng chỉ đáng tin cậy mà không mất phí.
Trong hướng dẫn này, chúng ta sẽ giải quyết sự không tương thích này theo một cách đơn giản nhưng vẫn khó chịu.
Không còn lý thuyết nào nữa:
Trong “/etc/apache2/sites-available/your_domain.com.conf” của bạn, hãy thêm phần sau vào cuối tệp:
RewriteCond lấy một chuỗi từ tiêu đề http của khách truy cập trang của bạn. Bạn chỉ cần kiểm tra trang của mình và tìm thêm thông tin tại đây:http://www.useragentstring.com/
Điều kiện chúng tôi sử dụng cho chúng tôi biết điều gì đó giống như "nếu chuỗi không chứa 'NT 5'" thì RewriteRule thực thi/áp dụng quy tắc chuyển hướng [R] sang biến thể https của miền của bạn, NT 5 là chuỗi phiên bản hệ điều hành dành cho thiết bị Windows XP. Nếu bạn không sử dụng chuyển hướng này, người dùng không tương thích sẽ không thể truy cập trang web https của bạn.
Nếu bạn không sử dụng chuyển hướng này, những người dùng không tương thích sẽ không thể truy cập trang web https của bạn. Tôi phải cảnh báo bạn về giải pháp này không hoàn hảo 100% vì một số
Tôi phải cảnh báo bạn về giải pháp này không hoàn hảo 100% vì một số khách không phải cung cấp cho bạn thông tin có liên quan hoặc thực tế. Tôi đã làm việc với AWStats để tìm ra tỷ lệ các hệ thống không xác định đang truy cập trang của tôi và tỷ lệ này là khoảng 1,3%, vì vậy khá ít yêu cầu. Nếu bạn muốn xử lý các hệ điều hành không xác định để đảm bảo khả năng tương thích của chúng, bạn cũng có thể thêm unknown vào điều kiện (RewriteCond %{HTTP_USER_AGENT} !(NT\ 5|unknown) [NC]).
Sau khi "không chuyển hướng" thành công những khách truy cập không tương thích (giữ họ trong thế giới http không an toàn), bạn có thể tập trung vào phía https.
Trong tệp cấu hình vhost của bạn một lần nữa, hãy thêm thông tin sau:
CipherSuite được sử dụng ở đây dài hơn bình thường một chút. Nó dành cho khả năng tương thích tốt hơn. Bạn có thể tải xuống từ: https://cipherli.st/ hoặc https://mozilla.github.io/server-side-tls/ssl-config-generator/https://mozilla.github.io/server-side-tls/ssl-config-generator/?utm_source=diendancongnghe.com
Tôi phải nhắc lại một lần nữa rằng bạn sẽ không bao giờ có được cấu hình hoàn hảo để đáp ứng chính sách bảo mật cao cũng như khả năng tương thích. Bạn nên tìm một sự thỏa hiệp.
Sau khi sử dụng các thiết lập này, bạn có thể kiểm tra cấu hình máy chủ và khả năng tương thích của mình tại:https://www.ssllabs.com/ssltest/index.htmlhttps://www.ssllabs.com/ssltest/index.html?utm_source=diendancongnghe.com
Bạn sẽ tìm thấy một danh sách dài các thiết bị tương thích và không tương thích, cũng như một số thông tin khác để chỉ cho bạn giải pháp "hoàn hảo" của riêng bạn.
Các nguyên tắc chính đằng sau Let’s Encrypt là Miễn phí: Bất kỳ ai sở hữu tên miền đều có thể sử dụng Let’s Encrypt để lấy chứng chỉ đáng tin cậy mà không mất phí.
- Miễn phí: Bất kỳ ai sở hữu tên miền đều có thể sử dụng Let’s Encrypt để lấy chứng chỉ đáng tin cậy mà không mất phí.
- Tự động: Phần mềm chạy trên máy chủ web có thể tương tác với Let’s Encrypt để dễ dàng lấy chứng chỉ, cấu hình an toàn để sử dụng và tự động xử lý việc gia hạn.
- Bảo mật: Let’s Encrypt sẽ đóng vai trò là nền tảng để thúc đẩy các biện pháp bảo mật TLS tốt nhất, cả về phía CA và bằng cách giúp các nhà điều hành trang web bảo mật máy chủ của họ một cách phù hợp.
- Minh bạch: Tất cả các chứng chỉ được cấp hoặc thu hồi sẽ được ghi lại công khai và bất kỳ ai cũng có thể kiểm tra.
- Mở: Giao thức cấp và gia hạn tự động sẽ được công bố dưới dạng tiêu chuẩn mở mà những người khác có thể áp dụng.
- Hợp tác: Giống như các giao thức Internet cơ bản, Let's Encrypt là nỗ lực chung nhằm mang lại lợi ích cho cộng đồng, vượt ra ngoài tầm kiểm soát của bất kỳ tổ chức nào.
(nguồn: https://letsencrypt.org/about/)
Giới thiệu
Đầu tiên, chúng ta phải đề cập đến một số mặt tối của dịch vụ Let's Encrypt. Mặc dù ý tưởng về cơ quan cấp chứng chỉ công khai và mở miễn phí tuyệt vời đến đâu, nó cũng mang đến cho chúng ta nhiều rắc rối. Các nhà phát triển đã cố gắng làm cho hệ thống lấy chứng chỉ đơn giản nhất có thể, nhưng vẫn đòi hỏi kỹ năng quản trị máy chủ cao hơn. Do đó, nhiều nhà phát triển như ISPConfig (http://www.ispconfig.org/) đã triển khai giải pháp này trực tiếp vào hệ thống của họ. Điều này giúp mọi người triển khai và giám sát toàn bộ hệ thống hiệu quả hơn, dễ dàng và linh hoạt hơn nhiều.Phức tạp thực sự
Nhiều người đã quyết định triển khai Let's Encrypt vào các trang web sản xuất của họ. Tôi thấy đây vẫn là một ý tưởng rất tệ nếu không thực sự (nhưng thực sự rất) cẩn thận. Let's Encrypt mang lại cho bạn sự tự do nhưng cũng hạn chế bạn trong việc sử dụng chứng chỉ với Mã hóa SHA-256 RSA. Hỗ trợ cho SHA-256 đã được cải thiện trong vài năm trở lại đây. Hầu hết các trình duyệt, nền tảng, máy khách thư và thiết bị di động đã hỗ trợ SHA-256. Tuy nhiên, một số hệ điều hành cũ hơn như Windows XP trước SP3 không hỗ trợ mã hóa SHA-256. Nhiều tổ chức sẽ có thể chuyển đổi sang SHA-256 mà không gặp phải sự cố về trải nghiệm người dùng và nhiều tổ chức có thể muốn khuyến khích người dùng đang chạy các hệ thống cũ hơn, kém an toàn hơn nâng cấp.Trong hướng dẫn này, chúng ta sẽ giải quyết sự không tương thích này theo một cách đơn giản nhưng vẫn khó chịu.
Điều kiện tiên quyết
- Apache phiên bản 2.4 trở lên
- OpenSSL phiên bản 1.0.1e trở lên
- Apache mod_rewrite được bật
Toàn bộ ý tưởng
Như đã đề cập trước đó, vẫn còn những thiết bị không tương thích với chữ ký SHA-256 trên Internet. Khi tôi buộc phải triển khai SSL cho một số trang web, tôi phải quyết định giữa hai lựa chọn:- Sử dụng Let's Encrypt miễn phí nhưng không phải cho tất cả.
- Mua chứng chỉ có chữ ký 128 bit.
Không còn lý thuyết nào nữa
Tôi hy vọng mình đã giải thích những điều cần thiết và giờ chúng ta có thể xử lý những người xem không được hỗ trợ của trang web. Có rất nhiều người sử dụng máy Windows XP với SP2 trở xuống (Vâng, vẫn còn rất nhiều người). Vì vậy, chúng ta phải lọc những người này.Trong “/etc/apache2/sites-available/your_domain.com.conf” của bạn, hãy thêm phần sau vào cuối tệp:
Mã:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !(NT\ 5) [NC]
RewriteRule ^(.*) https:// your_domain.com [R]
Điều kiện chúng tôi sử dụng cho chúng tôi biết điều gì đó giống như "nếu chuỗi không chứa 'NT 5'" thì RewriteRule thực thi/áp dụng quy tắc chuyển hướng [R] sang biến thể https của miền của bạn, NT 5 là chuỗi phiên bản hệ điều hành dành cho thiết bị Windows XP. Nếu bạn không sử dụng chuyển hướng này, người dùng không tương thích sẽ không thể truy cập trang web https của bạn.
Nếu bạn không sử dụng chuyển hướng này, những người dùng không tương thích sẽ không thể truy cập trang web https của bạn. Tôi phải cảnh báo bạn về giải pháp này không hoàn hảo 100% vì một số
Tôi phải cảnh báo bạn về giải pháp này không hoàn hảo 100% vì một số khách không phải cung cấp cho bạn thông tin có liên quan hoặc thực tế. Tôi đã làm việc với AWStats để tìm ra tỷ lệ các hệ thống không xác định đang truy cập trang của tôi và tỷ lệ này là khoảng 1,3%, vì vậy khá ít yêu cầu. Nếu bạn muốn xử lý các hệ điều hành không xác định để đảm bảo khả năng tương thích của chúng, bạn cũng có thể thêm unknown vào điều kiện (RewriteCond %{HTTP_USER_AGENT} !(NT\ 5|unknown) [NC]).
Awstats
Sau khi "không chuyển hướng" thành công những khách truy cập không tương thích (giữ họ trong thế giới http không an toàn), bạn có thể tập trung vào phía https.
Cấu hình HTTPS
Bây giờ chúng tôi giả sử bạn đã gán chứng chỉ cho máy chủ web của mình và cũng đã bật chứng chỉ đó.Trong tệp cấu hình vhost của bạn một lần nữa, hãy thêm thông tin sau:
Mã:
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECD SA-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-A ES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES1 28-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE -RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-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:!KRB5-DES-CBC3-SHA
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder On
Tôi phải nhắc lại một lần nữa rằng bạn sẽ không bao giờ có được cấu hình hoàn hảo để đáp ứng chính sách bảo mật cao cũng như khả năng tương thích. Bạn nên tìm một sự thỏa hiệp.
Sau khi sử dụng các thiết lập này, bạn có thể kiểm tra cấu hình máy chủ và khả năng tương thích của mình tại:https://www.ssllabs.com/ssltest/index.htmlhttps://www.ssllabs.com/ssltest/index.html?utm_source=diendancongnghe.com
Bạn sẽ tìm thấy một danh sách dài các thiết bị tương thích và không tương thích, cũng như một số thông tin khác để chỉ cho bạn giải pháp "hoàn hảo" của riêng bạn.