Xem thêm: Chứng Chỉ SSL: phân biệt Let’s Encrypt, Commercial Certificate, Self-signed Certificate
Sự khác biệt giữa HTTP và HTTPS?
Các trang web sử dụng HTTP gửi dữ liệu được nhập trong các trường biểu mẫu từ trình duyệt của bạn qua internet đến trang web đích bằng văn bản thuần túy. Điều này có nghĩa là bất kỳ ai giám sát mạng của bạn đều có thể đọc dữ liệu của bạn trong khi mạng đang truyền.
Khi sử dụng HTTPS, dữ liệu được gửi đến trang web từ trình duyệt của bạn sẽ được mã hóa. Những người nghe trộm trên mạng của bạn đã thắng được có thể đọc thông tin mà bạn đã gửi từ trình duyệt của bạn trên đường đến trang web. Điều này cực kỳ quan trọng khi nhập dữ liệu nhạy cảm như tên người dùng và mật khẩu.
Internet đang dần chuyển sang HTTPS. Trong nỗ lực tăng tốc thuật toán công cụ tìm kiếm này đang bắt đầu xếp hạng các trang web HTTPS cao hơn trong kết quả tìm kiếm. Google Chrome hiện làm nổi bật các trang web HTTP một cách rõ ràng là không bảo mật, vì vậy, nó đáng để thay đổi để giúp người dùng của bạn yên tâm.
Cách bật HTTPS trên IIS
Trong hướng dẫn này, tôi sẽ thực hiện các bước đơn giản liên quan đến việc lấy và cài đặt Let’s Encrypt SSL/TLS hợp lệ trên các trang web được lưu trữ trên IIS trong Windows Server. Tôi sẽ sử dụng trang web mặc định đi kèm với IIS làm ví dụ, nhưng các bước này áp dụng cho bất kỳ trang web, ứng dụng web hoặc API web nào khác.
Trước khi chúng tôi bắt đầu, có một vài điều cần lưu ý:
Let’s Encrypt chỉ cung cấp chứng chỉ DV (xác thực tên miền).
Chứng chỉ SSL / TLS chỉ tồn tại trong 90 ngày, nhưng sẽ được tự động gia hạn trước đó.
Có giới hạn số lượng chứng chỉ bạn có thể tạo mỗi tuần.
Chứng chỉ bảo mật Let’s Encrypt:
Chứng chỉ SSL miễn phí phổ biến nhất hiện nay Let’s Encrypt
Let’s Encrypt cung cấp một cơ chế tự động để yêu cầu và gia hạn các chứng chỉ tên miền được chứng thực miễn phí. Họ đã tạo ra một giao thức chuẩn – ACME – để tương tác với dịch vụ để tự động lấy và khôi phục các chứng chỉ. Client của ACME chính thức được gọi là Certbot, mặc dù cũng có nhiều client khác thay thế.
- Quá trình: Thiết lập ban đầu và thay đổi được diễn ra tự động.
- Chi phí: Miễn phí
- Xác thực: Chỉ DV
- Độ tin cậy: Tin cậy theo mặc định trong hầu hết các trình duyệt và hệ điều hành
- Chứng chỉ Wildcard: có
- Chứng chỉ dành riêng cho IP: Không
- Thời hạn: 90 ngày
Chứng chỉ Let’s Encrypt có thời hạn ngắn để khuyến khích đổi mới tự động và giảm thời gian bất kỳ chứng chỉ bị tổn hại nào có thể bị lạm dụng bởi kẻ tấn công. Nếu bạn có một máy chủ được truy cập công khai và có một tên miền hợp lệ trỏ đến nó, Let’s Encrypt có thể là một lựa chọn tốt. Các máy chủ của Encrypt cần liên hệ với máy chủ web của bạn hoặc lấy ra một bản ghi DNS công cộng để xác minh rằng bạn kiểm soát miền, vì vậy sử dụng nó cho máy chủ cá nhân đằng sau tường lửa trên mạng nội bộ của bạn có thể phức tạp hơn một chút. Let’s Encrypt sẽ không cung cấp chứng chỉ cho một địa chỉ IP trống. Nếu bạn cần một chứng chỉ EV, hoặc một chứng chỉ Wildcard, Let’s Encrypt không phải là một lựa chọn tốt. Lưu ý rằng Let’s Encrypt có thể tạo một chứng chỉ với tối đa 100 tên máy chủ lưu trữ, vì vậy có thể bạn không thực sự cần một Wildcard cho trường hợp sử dụng của mình, bạn chỉ cần có chứng chỉ bao gồm tất cả các tên miền phụ hiện có của bạn. Tuy nhiên, do giới hạn tốc độ cho API mã hoá của Let’s Encrypt, nếu bạn có rất nhiều tên miền phụ, hoặc các tên miền phụ động (dynamic subdomain) có thể được tạo ngay lập tức, Let’s Encrypt có thể không còn phù hợp.
1. Tạo chứng chỉ tự ký trong IIS
Bước này là tùy chọn. Trước khi chúng tôi yêu cầu chứng chỉ sản xuất, hãy tạo một chứng chỉ Self-Signed Certificate để kiểm tra xem nó có thể phục vụ các trang HTTPS từ máy chủ của bạn không.
1. Mở IIS và bấm vào nút máy chủ trong cây bên trái.
2. Chọn “Server Certificates”.
3. Nhấp vào “Create Self-Signed Certificate…” bên phải và đặt tên cho nó.
4. Đi vào trang web “Default website” trong cây bên trái.
5. Nhấp vào “Bindings…” và thêm một ràng buộc mới.
6. Chọn loại là HTTPS, port là 443 và chọn chứng chỉ tự ký của bạn từ danh sách chứng chỉ SSL, sau đó đóng cửa sổ.
Bây giờ khi bạn truy cập phiên bản https của trang web, nó sẽ tải. Tuy nhiên, Google Chrome sẽ gắn cờ là không an toàn vì chứng chỉ không hợp lệ. Đây là những gì chúng tôi muốn bởi vì bây giờ chúng tôi biết rằng máy chủ web đã được thiết lập để cho phép kết nối HTTPS. Chúng tôi đã sẵn sàng để tiến hành.
Nếu trang web không tải hoặc tiếp tục quay, hãy kiểm tra xem tường lửa và nhà cung cấp máy chủ đám mây của bạn có chấp nhận các kết nối TCP gửi đến cổng 443 không.
2. Cài đặt Windows ACME Simple (WACS)
Giao thức để nhận các chứng chỉ Let's Encrypt được gọi là ACME (Môi trường quản lý chứng chỉ tự động). Chúng tôi sẽ cần cài đặt ứng dụng khách ACME để gửi yêu cầu chứng chỉ SSL / TLS miễn phí. Vì chứng chỉ Let's Encrypt hết hạn sau 3 tháng, ứng dụng khách ACME này tạo ra một tác vụ theo lịch trình cho các lần gia hạn tự động yêu cầu những cái mới một vài tuần trước khi chúng được thiết lập hết hạn.
Có nhiều khách hàng ACME có sẵn nhưng chúng tôi sẽ sử dụng win-acme bởi PKISharp. Tải xuống bản phát hành mới nhất của win-acme và trích xuất nội dung của nó vào một thư mục trên ổ cứng của bạn, C:\LetsEncrypt trong ví dụ này.
Phiên bản win-acme được sử dụng tại thời điểm viết bài viết này là v2.0.10.444
3. Tạo chứng chỉ Let Encrypt Encrypt và tự động thiết lập gia hạn
1. Mở PowerShell và chạy: cd c:\LetsEncrypt
2. Chạy: .\wacs.exe
Nhấn N để tạo chứng chỉ mới.
Chúng tôi chỉ có một trang web duy nhất trong ví dụ này, vì vậy Nhấn 1 để Single binding of an IIS site. Chứng chỉ SAN cho phép nhiều tên miền phụ cũng được hỗ trợ.
Chọn ràng buộc. Một lần nữa, chúng tôi chỉ có một trang web nên Nhấn 1.
Cung cấp (các) email để thông báo về các sự cố nếu gia hạn tự động không thành công. Bạn có thể để trống này và tiếp tục. (Địa chỉ email này sẽ không được công khai)
Đồng ý và Chấp nhận các điều khoản và điều kiện của họ sau đó để win-acme làm điều đó thì bạn đã hoàn thành!
4. Xác minh mọi thứ đang hoạt động
Nhấn L từ menu chính của win-acme client để thấy rằng gia hạn tự động đã được tạo. Tại đây bạn có thể xem chi tiết cho lần gia hạn tiếp theo.
Nhìn vào các ràng buộc cho HTTPS trong IIS và bạn sẽ thấy chứng chỉ của mình được chọn.
Bây giờ khi bạn điều hướng đến phiên bản HTTPS của URL, nó sẽ hiển thị dưới dạng an toàn trong Chrome.
Nhấp qua để xem chứng chỉ.
Để chuyển hướng tất cả lưu lượng truy cập HTTP đến phiên bản HTTPS, bạn có thể cài đặt Modun Rewrite URL của Microsoft và định cấu hình các chuyển hướng. Nó vượt quá phạm vi của hướng dẫn này nhưng xem ở đây để biết thêm thông tin.
Let's Encrypt được sử dụng rộng rãi bởi nhiều công ty và được tất cả các trình duyệt tin cậy. Nếu bạn đã thấy bài viết này hữu ích, vui lòng đăng ký bên dưới vào Ứng dụng Lama và nhận thông báo về bài viết mới.
Xem bài viết tiếng Anh tại đây.