Hướng dẫn python https request with certificate - yêu cầu https python với chứng chỉ
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Khám phá HTTPS và mật mã trong Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Exploring HTTPS and Cryptography in Python Show
Bạn đã bao giờ tự hỏi tại sao bạn có thể gửi thông tin thẻ tín dụng của mình qua internet không? Bạn có thể nhận thấy 7 trên URL trong trình duyệt của bạn, nhưng nó là gì và làm thế nào để giữ thông tin của bạn an toàn? Hoặc có lẽ bạn muốn tạo một ứng dụng Python HTTPS, nhưng bạn không chắc chắn chính xác điều đó có nghĩa là gì. Làm thế nào bạn có thể chắc chắn rằng ứng dụng web của bạn an toàn?keep your information safe? Or perhaps you want to create a Python HTTPS application, but you’re not exactly sure what that means. How can you be sure that your web application is safe?Bạn có thể ngạc nhiên khi biết rằng bạn không phải là một chuyên gia về bảo mật để trả lời những câu hỏi này! Trong hướng dẫn này, bạn sẽ có được kiến thức làm việc về các yếu tố khác nhau kết hợp để giữ liên lạc qua internet an toàn. Bạn sẽ thấy các ví dụ cụ thể về cách ứng dụng HTTPS Python giữ an toàn thông tin. Trong hướng dẫn này, bạn sẽ học cách:
HTTP là gì?Trước khi bạn đi sâu vào HTTPS và việc sử dụng nó trong Python, điều quan trọng là phải hiểu cha mẹ của nó, HTTP. Từ viết tắt này là viết tắt của Giao thức chuyển siêu văn bản, củng cố hầu hết các liên lạc diễn ra khi bạn lướt các trang web yêu thích của mình. Cụ thể hơn, HTTP là cách một tác nhân người dùng, như trình duyệt web của bạn, giao tiếp với một máy chủ web, như realpython.com. Ở đây, một sơ đồ đơn giản hóa của truyền thông HTTP:HyperText Transfer Protocol, which underpins most of the communications that go on when you’re surfing your favorite websites. More specifically, HTTP is how a user agent, like your web browser, communicates with a web server, like realpython.com. Here’s a simplified diagram of HTTP communications: Sơ đồ này hiển thị một phiên bản đơn giản hóa cách máy tính của bạn giao tiếp với máy chủ. Ở đây, sự cố của từng bước:
Sự cố này nắm bắt những điều cơ bản của HTTP. Bạn yêu cầu một máy chủ và máy chủ trả về phản hồi. Mặc dù HTTP không yêu cầu TCP, nhưng nó yêu cầu một giao thức cấp thấp hơn đáng tin cậy. Trong thực tế, điều này hầu như luôn luôn TCP qua IP (mặc dù Google đang cố gắng tạo ra một sự thay thế). Nếu bạn cần bồi dưỡng, sau đó kiểm tra lập trình ổ cắm trong Python (Hướng dẫn). Khi các giao thức đi, HTTP là một trong những giao thức đơn giản hơn. Nó được thiết kế để gửi nội dung qua Internet, như HTML, video, hình ảnh, v.v. Điều này được thực hiện với một yêu cầu và phản hồi HTTP. Yêu cầu HTTP chứa các yếu tố sau:
Đây là những công cụ mà trình duyệt của bạn sử dụng để giao tiếp với máy chủ. Máy chủ phản hồi với phản hồi HTTP. Phản hồi HTTP chứa các yếu tố sau:
Đây là những khối xây dựng cho HTTP. Nếu bạn quan tâm đến việc tìm hiểu thêm về HTTP, thì bạn có thể xem trang tổng quan để tìm hiểu về giao thức ở độ sâu hơn. HTTPS là gì?Bây giờ bạn đã hiểu thêm một chút về HTTP, HTTPS là gì? Tin tốt là, bạn đã biết điều này! HTTPS là viết tắt của giao thức chuyển siêu văn bản an toàn. Về cơ bản, HTTPS là cùng một giao thức với HTTP nhưng với hàm ý thêm rằng thông tin liên lạc được bảo mật.HyperText Transfer Protocol Secure. Fundamentally, HTTPS is the same protocol as HTTP but with the added implication that the communications are secure. HTTPS không viết lại bất kỳ nguyên tắc cơ bản nào của HTTP mà nó đã xây dựng. Thay vào đó, HTTPS bao gồm HTTP thông thường được gửi qua kết nối được mã hóa. Thông thường, kết nối được mã hóa này được cung cấp bởi TLS hoặc SSL, là các giao thức mật mã mã hóa thông tin trước khi nó gửi qua mạng.cryptographic protocols that encrypt the information before it’s sent over a network. Vì vậy, tại sao tạo ra sự tách biệt này? Tại sao không giới thiệu sự phức tạp vào chính giao thức HTTP? Câu trả lời là tính di động. Đảm bảo truyền thông là một vấn đề quan trọng và khó khăn, nhưng HTTP chỉ là một trong nhiều giao thức yêu cầu bảo mật. Có vô số người khác trên nhiều ứng dụng khác nhau:portability. Securing communications is an important and hard problem, but HTTP is only one of many protocols that require security. There are countless others across a wide variety of applications:
Có những người khác, là tốt! Nếu mỗi giao thức này phải tạo ra cơ chế bảo mật của riêng họ, thì thế giới sẽ kém an toàn hơn và khó hiểu hơn nhiều. TLS, thường được sử dụng bởi các giao thức trên, cung cấp một phương pháp chung để bảo mật liên lạc. Hầu như tất cả các thông tin bạn sẽ học trong hướng dẫn này sẽ được áp dụng cho nhiều thứ hơn là chỉ các ứng dụng Python HTTPS. Bạn sẽ học được những điều cơ bản của giao tiếp an toàn cùng với cách áp dụng cụ thể cho HTTPS. Tại sao HTTPS lại quan trọng?Truyền thông an toàn là rất quan trọng trong việc cung cấp một môi trường trực tuyến an toàn. Khi nhiều thế giới di chuyển trực tuyến, bao gồm các ngân hàng và các trang web chăm sóc sức khỏe, nó ngày càng trở nên quan trọng hơn đối với các nhà phát triển để tạo ra các ứng dụng Python HTTPS. Một lần nữa, HTTPS chỉ là HTTP trên TLS hoặc SSL. TLS được thiết kế để cung cấp sự riêng tư từ những người nghe lén. Nó cũng có thể cung cấp xác thực của cả máy khách và máy chủ. Trong phần này, bạn sẽ khám phá những khái niệm này một cách sâu sắc bằng cách thực hiện như sau:
Bắt đầu nào! Tạo một ứng dụng ví dụGiả sử bạn là người lãnh đạo của một câu lạc bộ Python mát mẻ được gọi là Squirrels. Những con sóc, là bí mật, đòi hỏi một thông điệp bí mật để tham dự các cuộc họp của họ. Là người lãnh đạo, bạn chọn thông điệp bí mật, thay đổi cho mỗi cuộc họp. Tuy nhiên, đôi khi, bạn rất khó để gặp tất cả các thành viên trước cuộc họp để nói với họ thông điệp bí mật! Bạn quyết định thiết lập một máy chủ bí mật nơi các thành viên chỉ có thể xem thông điệp bí mật cho chính họ. Bạn đã làm theo một số hướng dẫn về Python thực sự và quyết định sử dụng một số phụ thuộc mà bạn biết:
Để cài đặt tất cả các phụ thuộc này, bạn có thể sử dụng 5:
Với các phụ thuộc của bạn được cài đặt, bạn bắt đầu viết ứng dụng của mình. Trong một tệp có tên 6, bạn tạo một ứng dụng bình:
Ứng dụng Bình này sẽ hiển thị thông báo bí mật bất cứ khi nào ai đó truy cập đường dẫn 7 của máy chủ của bạn. Không có cách nào, bạn triển khai ứng dụng của mình trên máy chủ bí mật của mình và chạy nó:
Lệnh này bắt đầu một máy chủ bằng ứng dụng bình ở trên. Bạn bắt đầu nó trên một cổng kỳ lạ bởi vì bạn không muốn mọi người có thể tìm thấy nó, và tự vỗ lưng vì rất lén lút! Bạn có thể xác nhận rằng nó làm việc bằng cách truy cập 8 trong trình duyệt của bạn.Vì tất cả mọi người trong những con sóc bí mật đều biết Python, bạn quyết định giúp đỡ họ. Bạn viết một tập lệnh có tên là 9 sẽ giúp họ nhận được tin nhắn bí mật:
Mã này sẽ in ra thông điệp bí mật miễn là chúng có bộ biến môi trường 0. Trong trường hợp này, 0 là 2. Vì vậy, kế hoạch của bạn là cung cấp cho mỗi thành viên câu lạc bộ URL bí mật và bảo họ giữ bí mật và an toàn.Trong khi điều này có vẻ ổn, hãy yên tâm với nó thì không! Trên thực tế, ngay cả khi bạn đặt tên người dùng và mật khẩu trên trang web này, nó vẫn sẽ an toàn. Nhưng ngay cả khi nhóm của bạn bằng cách nào đó đã quản lý để giữ cho URL an toàn, thông điệp bí mật của bạn vẫn không được bảo mật. Để chứng minh lý do tại sao bạn sẽ cần biết một chút về lưu lượng truy cập mạng. Để làm điều này, bạn sẽ sử dụng một công cụ gọi là Wireshark.Wireshark. Thiết lập WiresharkWireshark là một công cụ được sử dụng rộng rãi để phân tích mạng và giao thức. Điều này có nghĩa là nó có thể giúp bạn thấy những gì xảy ra trên các kết nối mạng. Cài đặt và thiết lập Wireshark là tùy chọn cho hướng dẫn này, nhưng cảm thấy tự do nếu bạn muốn theo dõi. Trang tải xuống có sẵn một số trình cài đặt:
Nếu bạn sử dụng Windows hoặc Mac, thì bạn sẽ có thể tải xuống trình cài đặt thích hợp và làm theo lời nhắc. Cuối cùng, bạn nên có một wireshark đang chạy. Nếu bạn ở trên môi trường Linux dựa trên Debian, thì việc cài đặt sẽ khó hơn một chút, nhưng vẫn có thể. Bạn có thể cài đặt Wireshark với các lệnh sau:
Bạn nên được gặp một màn hình trông giống như thế này: Với việc chạy Wireshark, đó là thời gian để phân tích một số lưu lượng truy cập! Thấy rằng dữ liệu của bạn không an toànCách máy khách và máy chủ hiện tại của bạn đang chạy không an toàn. HTTP sẽ gửi mọi thứ rõ ràng cho bất cứ ai xem. Điều này có nghĩa là ngay cả khi ai đó không có 0 của bạn, họ vẫn có thể thấy mọi thứ bạn làm miễn là họ có thể theo dõi lưu lượng trên bất kỳ thiết bị nào giữa bạn và máy chủ.not secure. HTTP will send everything in the clear for anyone to see. What this means is that even if someone doesn’t have your
0, they can still see everything you do as long as they can monitor traffic on any device between you and the server.Điều này tương đối đáng sợ cho bạn. Rốt cuộc, bạn không muốn những người khác xuất hiện cho các cuộc họp sóc bí mật của bạn! Bạn có thể chứng minh rằng điều này đang xảy ra. Đầu tiên, hãy khởi động máy chủ của bạn nếu bạn vẫn không chạy nó:
Điều này sẽ khởi động ứng dụng Flask của bạn trên cổng 5683. Tiếp theo, bạn sẽ bắt đầu chụp gói trong Wireshark. Việc bắt gói này sẽ giúp bạn thấy tất cả lưu lượng truy cập đi và từ máy chủ. Bắt đầu bằng cách chọn Loopback: LO Giao diện trên Wireshark: Bạn có thể thấy rằng phần Loopback: LO được tô sáng. Điều này hướng dẫn Wireshark giám sát cổng này cho lưu lượng truy cập. Bạn có thể làm tốt hơn và chỉ định cổng và giao thức nào bạn muốn nắm bắt. Bạn có thể nhập 4 vào bộ lọc chụp và 5 trong bộ lọc hiển thị:Hộp màu xanh lá cây cho biết Wireshark hài lòng với bộ lọc bạn đã gõ. Bây giờ bạn có thể bắt đầu bắt giữ bằng cách nhấp vào vây ở phía trên bên trái: Nhấp vào nút này sẽ sinh ra một cửa sổ mới trong Wireshark: Cửa sổ mới này khá đơn giản, nhưng thông điệp ở phía dưới cho biết 6, cho thấy nó hoạt động. Don Tiết lo lắng rằng không có gì được hiển thị, vì điều đó bình thường. Để Wireshark báo cáo bất cứ điều gì, phải có một số hoạt động trên máy chủ của bạn. Để nhận một số dữ liệu, hãy thử chạy máy khách của bạn:
Sau khi thực thi mã 9 từ trên cao, bây giờ bạn sẽ thấy một số mục trong Wireshark. Nếu tất cả đã diễn ra tốt đẹp, thì bạn sẽ thấy hai mục trông giống như thế này:Hai mục này đại diện cho hai phần của giao tiếp xảy ra. Đầu tiên là yêu cầu của máy khách đến máy chủ của bạn. Khi bạn nhấp vào mục đầu tiên, bạn sẽ thấy rất nhiều thông tin: Đó là rất nhiều thông tin! Ở trên cùng, bạn vẫn có yêu cầu và phản hồi HTTP. Khi bạn chọn một trong các mục này, bạn sẽ thấy hàng giữa và dưới cùng với thông tin. Hàng giữa cung cấp cho bạn một sự cố của các giao thức mà Wireshark có thể xác định cho yêu cầu đã chọn. Sự cố này cho phép bạn khám phá những gì thực sự đã xảy ra trong yêu cầu HTTP của bạn. Dưới đây, một bản tóm tắt nhanh chóng về thông tin Wireshark mô tả ở hàng giữa từ trên xuống dưới:
Khi bạn mở rộng lớp giao thức chuyển siêu văn bản, bạn có thể thấy tất cả thông tin tạo nên yêu cầu HTTP: Hình ảnh này cho bạn thấy tập lệnh của bạn yêu cầu HTTP HTTP:
Hàng cuối cùng bạn sẽ thấy là một kết xuất dữ liệu hex. Bạn có thể nhận thấy trong bãi Hex này mà bạn thực sự có thể thấy các phần trong yêu cầu HTTP của bạn. Đó là vì yêu cầu HTTP của bạn đã được gửi tại Open. Nhưng những gì về câu trả lời? Nếu bạn nhấp vào phản hồi HTTP, thì bạn sẽ thấy một chế độ xem tương tự: Một lần nữa, bạn có ba phần giống nhau. Nếu bạn nhìn kỹ vào bãi rác hex, thì bạn sẽ thấy thông điệp bí mật bằng văn bản đơn giản! Đây là một vấn đề lớn đối với những con sóc bí mật. Điều này có nghĩa là bất cứ ai có một số bí quyết kỹ thuật đều có thể rất dễ dàng nhìn thấy lưu lượng truy cập này nếu họ quan tâm. Vì vậy, làm thế nào để bạn giải quyết vấn đề này? Câu trả lời là mật mã.cryptography. Làm thế nào để mật mã giúp?Trong phần này, bạn sẽ học một cách để giữ dữ liệu của mình an toàn bằng cách tạo các khóa mật mã của riêng bạn và sử dụng chúng trên cả máy chủ và máy khách của bạn. Mặc dù chiến thắng này là bước cuối cùng của bạn, nhưng nó sẽ giúp bạn có được một nền tảng vững chắc về cách xây dựng các ứng dụng Python HTTPS.cryptography keys and using them on both your server and your client. While this won’t be your final step, it will help you get a solid foundation for how to build Python HTTPS applications. Hiểu về cơ bản về mật mãCryptography là một cách để bảo mật thông tin liên lạc từ những người nghe lén hoặc đối thủ. Một cách khác để nêu điều này là bạn có thể lấy thông tin bình thường, được gọi là Plaintext và chuyển đổi nó thành văn bản bị xáo trộn, được gọi là CodeText.plaintext, and converting it to scrambled text, called ciphertext. Mật mã học có thể đáng sợ lúc đầu, nhưng các khái niệm cơ bản là khá dễ tiếp cận. Trên thực tế, bạn có lẽ đã thực hành mật mã trước đây. Nếu bạn đã từng có một ngôn ngữ bí mật với bạn bè của bạn và sử dụng nó để vượt qua các ghi chú trong lớp, thì bạn đã thực hành mật mã. . Bằng cách nào đó, bạn cần lấy chuỗi 3 và chuyển đổi nó thành một cái gì đó không thể hiểu được. Một cách để làm điều này là ánh xạ một số ký tự nhất định lên các ký tự khác nhau. Một cách hiệu quả để làm điều này là thay đổi các nhân vật trở lại một vị trí trong bảng chữ cái. Làm như vậy sẽ trông giống như thế này:Hình ảnh này chỉ cho bạn cách dịch từ bảng chữ cái gốc sang bảng chữ cái mới và trở lại. Vì vậy, nếu bạn có tin nhắn 4, thì bạn thực sự sẽ gửi tin nhắn 5. Nếu bạn áp dụng điều này vào 3, thì giả sử rằng không gian giữ nguyên, bạn sẽ nhận được 7. Mặc dù nó không hoàn hảo, nhưng nó có thể trông giống như vô nghĩa đối với bất cứ ai nhìn thấy nó.Xin chúc mừng! Bạn đã tạo ra những gì được biết đến trong mật mã như một mật mã, mô tả cách chuyển đổi bản rõ thành bản mã và trở lại. Mật mã của bạn, trong trường hợp này, được mô tả bằng tiếng Anh. Loại mật mã đặc biệt này được gọi là mật mã thay thế. Về cơ bản, đây là cùng một loại mật mã được sử dụng trong máy Enigma, mặc dù là một phiên bản đơn giản hơn nhiều.cipher, which describes how to convert plaintext to ciphertext and back. Your cipher, in this case, is described in English. This particular type of cipher is called a substitution cipher. Fundamentally this is the same type of cipher used in the Enigma Machine, albeit a much simpler version. Bây giờ, nếu bạn muốn nhận được một tin nhắn cho các sóc bí mật, thì trước tiên bạn sẽ cần nói với họ có bao nhiêu chữ cái để thay đổi và sau đó cung cấp cho chúng tin nhắn được mã hóa. Trong Python, điều này có thể trông giống như sau:
Tại đây, bạn đã tạo ra một hàm gọi là 8, sẽ lấy bản rõ và chuyển đổi nó thành bản mã. Hãy tưởng tượng bạn có một từ điển 9 có tất cả các nhân vật được vạch ra. Tương tự, bạn có thể tạo một 0:
Chức năng này trái ngược với 8. Nó sẽ lấy bản mã và chuyển đổi nó thành bản rõ. Trong hình thức của mật mã này, bạn có một khóa đặc biệt mà người dùng cần biết để mã hóa và giải mã các tin nhắn. Đối với ví dụ trên, khóa đó là 2. Đó là, mật mã cho biết bạn nên chuyển từng chữ cái theo một ký tự. Điều quan trọng là rất quan trọng để giữ bí mật bởi vì bất kỳ ai có chìa khóa đều có thể dễ dàng giải mã thông điệp của bạn.Trong thời đại hiện đại, mật mã học tiên tiến hơn rất nhiều. Nó dựa vào lý thuyết toán học phức tạp và khoa học máy tính để được bảo mật. Trong khi toán học đằng sau những mật mã này nằm ngoài phạm vi của hướng dẫn này, các khái niệm cơ bản vẫn giống nhau. Bạn có một mật mã mô tả cách lấy bản rõ và chuyển đổi nó thành bản mã. Sự khác biệt thực sự duy nhất giữa mật mã thay thế của bạn và mật mã hiện đại là các mật mã hiện đại được chứng minh về mặt toán học là không thực tế để phá vỡ một kẻ nghe trộm. Bây giờ, hãy để Lừa xem cách sử dụng mật mã mới của bạn. Sử dụng mật mã trong các ứng dụng Python HTTPSMay mắn cho bạn, bạn không phải là một chuyên gia về toán học hoặc khoa học máy tính để sử dụng mật mã. Python cũng có mô-đun 3 có thể giúp bạn tạo dữ liệu ngẫu nhiên an toàn về mặt mật mã. Trong hướng dẫn này, bạn sẽ tìm hiểu về một thư viện Python có tên là 4. Nó có sẵn trên PYPI, vì vậy bạn có thể cài đặt nó với PIP:
Điều này sẽ cài đặt 4 vào môi trường ảo của bạn. Với 4 được cài đặt, giờ đây bạn có thể mã hóa và giải mã mọi thứ theo cách bảo mật toán học bằng cách sử dụng phương pháp 7.Hãy nhớ lại rằng khóa bí mật của bạn trong mật mã của bạn là 2. Trong cùng một tĩnh mạch, bạn cần tạo một khóa để Fernet hoạt động chính xác:>>> 0Trong mã này, bạn đã nhập 7 và tạo khóa. Chìa khóa chỉ là một loạt các byte, nhưng nó cực kỳ quan trọng là bạn giữ bí mật và an toàn quan trọng này. Giống như ví dụ thay thế ở trên, bất kỳ ai có khóa này đều có thể dễ dàng giải mã tin nhắn của bạn.Chìa khóa này hoạt động giống như chìa khóa trước đó. Nó bắt buộc phải thực hiện quá trình chuyển đổi sang bản mã và trở lại Plaintext. Bây giờ nó thời gian cho phần thú vị! Bạn có thể mã hóa một tin nhắn như thế này: >>> 1Trong mã này, bạn đã nhập 7 và tạo khóa. Chìa khóa chỉ là một loạt các byte, nhưng nó cực kỳ quan trọng là bạn giữ bí mật và an toàn quan trọng này. Giống như ví dụ thay thế ở trên, bất kỳ ai có khóa này đều có thể dễ dàng giải mã tin nhắn của bạn.Chìa khóa này hoạt động giống như chìa khóa trước đó. Nó bắt buộc phải thực hiện quá trình chuyển đổi sang bản mã và trở lại Plaintext. Bây giờ nó thời gian cho phần thú vị! Bạn có thể mã hóa một tin nhắn như thế này: Trong mã này, bạn đã tạo ra một đối tượng Fernet có tên DECIPHER = {v: k for k, v in CIPHER.items()} def decrypt(ciphertext: str): return "".join(DECIPHER.get(letter, letter) for letter in ciphertext) 0, sau đó bạn có thể sử dụng để mã hóa tin nhắn của mình. Lưu ý rằng tin nhắn bí mật của bạn $ SECRET_URL="http://127.0.0.1:5683" python client.py The secret message is: fluffy tail 3 cần phải là một đối tượng DECIPHER = {v: k for k, v in CIPHER.items()} def decrypt(ciphertext: str): return "".join(DECIPHER.get(letter, letter) for letter in ciphertext) 2 để mã hóa nó. Sau khi mã hóa, bạn có thể thấy rằng DECIPHER = {v: k for k, v in CIPHER.items()} def decrypt(ciphertext: str): return "".join(DECIPHER.get(letter, letter) for letter in ciphertext) 3 là một luồng dài các byte.Nhờ Fernet, bản mã hóa này có thể bị thao túng hoặc đọc mà không cần chìa khóa! Loại mã hóa này yêu cầu cả máy chủ và máy khách đều có quyền truy cập vào khóa. Khi cả hai bên yêu cầu cùng một khóa, đây được gọi là mã hóa đối xứng. Trong phần tiếp theo, bạn sẽ thấy cách đặt mã hóa đối xứng này để sử dụng để giữ dữ liệu của bạn an toàn. 2Mã này kết hợp mã máy chủ gốc của bạn với đối tượng 7 bạn đã sử dụng trong phần trước. Chìa khóa hiện được đọc dưới dạng đối tượng 2 từ môi trường bằng cách sử dụng 7. Với máy chủ tránh đường, giờ đây bạn có thể tập trung vào máy khách. Dán phần sau vào 8: 3Một lần nữa, đây là mã được sửa đổi để kết hợp ứng dụng khách trước đó của bạn với cơ chế mã hóa 7. 0 Làm như sau:
Nếu bạn chạy cả máy chủ và máy khách, thì bạn sẽ thấy rằng bạn đã mã hóa thành công và giải mã thông điệp bí mật của mình: 4Trong cuộc gọi này, bạn sẽ khởi động máy chủ trên cổng 5683 một lần nữa. Lần này, bạn vượt qua trong một chuỗi được mã hóa 1 ít nhất là một chuỗi được mã hóa 32 chiều dài. Với máy chủ của bạn đã khởi động lại, bây giờ bạn có thể truy vấn nó: 5Woohoo! Bạn đã có thể mã hóa và giải mã thông điệp của bạn. Nếu bạn thử chạy nó với 1 không hợp lệ, thì bạn sẽ gặp lỗi: 6Vì vậy, bạn biết mã hóa và giải mã đang hoạt động. Nhưng nó có an toàn không? Vâng, vâng, nó là. Để chứng minh điều này, bạn có thể quay lại Wireshark và bắt đầu một bản ghi mới với cùng các bộ lọc như trước đây. Sau khi bạn có thiết lập chụp, hãy chạy lại mã máy khách:secure? Well, yes, it is. To prove this, you can go back to Wireshark and start a new capture with the same filters as before. After you have the capture setup, run the client code again: 5Bạn đã thực hiện một yêu cầu và phản hồi HTTP thành công khác, và một lần nữa, bạn thấy những tin nhắn này trong Wireshark. Vì tin nhắn bí mật chỉ được chuyển trong phản hồi, bạn có thể nhấp vào đó để xem dữ liệu: Ở hàng giữa của hình ảnh này, bạn có thể thấy dữ liệu thực sự được chuyển: 8Đáng kinh ngạc! Điều này có nghĩa là dữ liệu được mã hóa và các trình nghe lén không biết nội dung tin nhắn thực sự là gì. Không chỉ vậy, điều đó cũng có nghĩa là họ có thể dành một lượng thời gian dài cực kỳ để cố gắng phá vỡ dữ liệu này và họ gần như sẽ không bao giờ thành công. Dữ liệu của bạn là an toàn! Nhưng hãy đợi một phút, bạn không bao giờ phải biết bất cứ điều gì về chìa khóa khi bạn đang sử dụng các ứng dụng Python HTTPS trước đây. Điều đó vì HTTPS không sử dụng mã hóa đối xứng. Hóa ra, chia sẻ bí mật là một vấn đề khó khăn. Để chứng minh khái niệm này, điều hướng đến 3 trong trình duyệt của bạn và bạn sẽ thấy văn bản phản hồi được mã hóa. Điều này là do trình duyệt của bạn không biết gì về khóa mật mã bí mật của bạn. Vậy làm thế nào để các ứng dụng Python HTTP thực sự hoạt động? Đó là nơi mà mã hóa không đối xứng xuất hiện.asymmetric encryption comes into play.Các phím được chia sẻ như thế nào?Trong phần trước, bạn đã thấy cách bạn có thể sử dụng mã hóa đối xứng để giữ an toàn cho dữ liệu của mình khi nó đi qua internet. Tuy nhiên, mặc dù mã hóa đối xứng là an toàn, nhưng đó không phải là kỹ thuật mã hóa duy nhất được sử dụng bởi các ứng dụng Python HTTPS để giữ cho dữ liệu của bạn an toàn. Mã hóa đối xứng giới thiệu một số vấn đề cơ bản không dễ dàng được giải quyết. Vì vậy, làm thế nào để bạn thay đổi khóa của bạn? Nếu bạn chỉ có một máy chủ và một máy khách, thì đây có thể là một nhiệm vụ nhanh chóng. Tuy nhiên, khi bạn nhận được nhiều máy khách và nhiều máy chủ hơn, ngày càng có nhiều sự phối hợp cần phải xảy ra để thay đổi khóa và giữ bí mật của bạn một cách an toàn.change your key? If you only have one server and one client, then this might be a quick task. However, as you get more clients and more servers, there is more and more coordination that needs to happen in order to change the key and keep your secrets safe effectively. Hơn nữa, bạn phải chọn một bí mật mới mỗi lần. Trong ví dụ trên, bạn đã thấy một khóa được tạo ngẫu nhiên. Nó có thể là không thể để bạn cố gắng và khiến mọi người nhớ chìa khóa đó. Khi số khách hàng và máy chủ của bạn phát triển, bạn có thể sẽ sử dụng các khóa dễ nhớ và đoán hơn. Nếu bạn có thể đối phó với việc thay đổi khóa của mình, thì bạn vẫn còn một vấn đề nữa để giải quyết. Làm thế nào để bạn chia sẻ khóa ban đầu của bạn? Trong ví dụ Squirrels, bạn đã giải quyết vấn đề này bằng cách truy cập vật lý vào từng thành viên. Bạn có thể cung cấp cho mỗi thành viên bí mật và bảo họ giữ bí mật, nhưng hãy nhớ rằng ai đó sẽ là liên kết yếu nhất.share your initial key? In the Secret Squirrels example, you solved this problem by having physical access to each of the members. You could give each member the secret in person and tell them to keep it secret, but remember that someone will be the weakest link. Bây giờ, giả sử bạn thêm một thành viên vào những con sóc bí mật từ một vị trí vật lý khác. Làm thế nào để bạn chia sẻ bí mật với thành viên này? Bạn có làm cho họ đi máy bay cho bạn mỗi khi chính thay đổi không? Sẽ thật tuyệt nếu bạn có thể đặt khóa bí mật trên máy chủ của mình và tự động chia sẻ nó. Thật không may, điều này sẽ đánh bại toàn bộ mục đích mã hóa, vì bất cứ ai cũng có thể nhận được chìa khóa bí mật! Tất nhiên, bạn có thể cung cấp cho mọi người một khóa chính ban đầu để nhận được thông điệp bí mật, nhưng bây giờ bạn chỉ có nhiều vấn đề gấp đôi so với trước đây. Nếu đầu bạn đau, thì đừng lo lắng! Bạn không phải là người duy nhất. Những gì bạn cần là cho hai bên chưa bao giờ truyền đạt để có một bí mật chung. Nghe có vẻ không thể, phải không? May mắn thay, ba chàng trai với tên của Ralph Merkle, Whitfield Diffie và Martin Hellman có lưng của bạn. Họ đã giúp chứng minh rằng mật mã khóa công cộng, còn được gọi là mã hóa không đối xứng, là có thể. Mã hóa không đối xứng cho phép hai người dùng chưa bao giờ giao tiếp trước đây để chia sẻ một bí mật chung. Một trong những cách dễ nhất để hiểu các nguyên tắc cơ bản là sử dụng một sự tương tự màu sắc. Hãy tưởng tượng bạn có kịch bản sau: allows for two users who have never communicated before to share a common secret. One of the easiest ways to understand the fundamentals is to use a color analogy. Imagine you have the following scenario: Trong sơ đồ này, bạn đã cố gắng giao tiếp với một con sóc bí mật mà bạn chưa từng gặp trước đây, nhưng một điệp viên có thể thấy mọi thứ bạn gửi. Bạn biết về mã hóa đối xứng và muốn sử dụng nó, nhưng trước tiên bạn cần chia sẻ một bí mật. May mắn thay, cả hai bạn đều có một khóa riêng. Thật không may, bạn có thể gửi khóa riêng của mình vì gián điệp sẽ thấy nó. Vậy bạn làm gì? Điều đầu tiên bạn cần làm là đồng ý với đối tác của mình trên một màu, như màu vàng: Lưu ý ở đây rằng gián điệp có thể nhìn thấy màu chia sẻ, cũng như bạn và con sóc bí mật. Màu sắc được chia sẻ là công khai hiệu quả. Bây giờ, cả bạn và con sóc bí mật đều kết hợp các khóa riêng của bạn với màu chia sẻ:public. Now, both you and the Secret Squirrel combine your private keys with the shared color: Màu sắc của bạn kết hợp để tạo màu xanh lá cây, trong khi màu Squirrel bí mật kết hợp với nhau để tạo ra màu cam. Cả hai bạn đều được thực hiện với màu chia sẻ và bây giờ bạn cần chia sẻ màu kết hợp của mình với nhau: Bây giờ bạn có chìa khóa riêng của bạn và màu Squirrel bí mật kết hợp màu sắc. Tương tự như vậy, con sóc bí mật có chìa khóa riêng và màu kết hợp của bạn. Nó khá nhanh cho bạn và con sóc bí mật để kết hợp màu sắc của bạn. Spy, tuy nhiên, chỉ có những màu kết hợp này. Cố gắng tìm ra màu gốc chính xác của bạn là rất khó, thậm chí với màu chia sẻ ban đầu. Các điệp viên sẽ phải đến cửa hàng và mua rất nhiều màu xanh lam khác nhau để thử. Ngay cả sau đó, thật khó để biết nếu họ đang nhìn vào màu xanh lá cây phù hợp sau sự kết hợp! Nói tóm lại, khóa riêng của bạn vẫn còn riêng tư.private. Nhưng còn bạn và con sóc bí mật thì sao? Bạn vẫn không có một bí mật kết hợp! Đây là nơi khóa riêng của bạn trở lại. Nếu bạn kết hợp khóa riêng của mình với màu kết hợp mà bạn nhận được từ con sóc bí mật, thì cả hai bạn sẽ kết thúc với cùng một màu: Bây giờ, bạn và con sóc bí mật có cùng màu bí mật. Bây giờ bạn đã chia sẻ thành công một bí mật an toàn với một người hoàn toàn xa lạ. Điều này là chính xác đáng ngạc nhiên đối với cách thức hoạt động của mật mã khóa công cộng. Một tên phổ biến khác cho chuỗi sự kiện này là trao đổi khóa Diffie-Hellman. Trao đổi quan trọng được tạo thành từ các phần sau:Diffie-Hellman key exchange. The key exchange is made up of the following parts:
Chìa khóa riêng là thứ bạn luôn giữ riêng tư, trong khi khóa công khai có thể được chia sẻ với bất kỳ ai. Những khái niệm này ánh xạ trực tiếp đến thế giới thực của các ứng dụng Python HTTPS. Bây giờ máy chủ và máy khách có bí mật chia sẻ, bạn có thể sử dụng mã hóa đối xứng Pal cũ của mình để mã hóa tất cả các tin nhắn tiếp theo! Khi bạn giao tiếp qua một trang web an toàn, như trang web này, trình duyệt của bạn và máy chủ đã thiết lập một giao tiếp an toàn bằng cách sử dụng các nguyên tắc tương tự:
May mắn cho bạn, bạn không cần phải thực hiện bất kỳ chi tiết nào trong số này. Có rất nhiều thư viện tích hợp và bên thứ ba có thể giúp bạn giữ an toàn cho khách hàng và máy chủ. HTTPS như thế nào trong thế giới thực?Đưa ra tất cả thông tin này về mã hóa, hãy để thu nhỏ một chút và nói về cách các ứng dụng Python HTTPS thực sự hoạt động trong thế giới thực. Mã hóa chỉ là một nửa của câu chuyện. Khi truy cập một trang web an toàn, có hai thành phần chính cần thiết:
Bạn đã nghe nhiều về cách thức mã hóa hoạt động, nhưng còn xác thực thì sao? Để hiểu xác thực trong thế giới thực, bạn sẽ cần biết về cơ sở hạ tầng chính của công chúng. PKI giới thiệu một khái niệm quan trọng khác vào hệ sinh thái bảo mật, được gọi là chứng chỉ.Public Key Infrastructure. PKI introduces another important concept into the security ecosystem, called certificates. Giấy chứng nhận giống như hộ chiếu cho Internet. Giống như hầu hết mọi thứ trong thế giới máy tính, chúng chỉ là những dữ liệu trong một tệp. Nói chung, chứng chỉ bao gồm các thông tin sau:
Giống như hộ chiếu, chứng chỉ chỉ thực sự hữu ích nếu chúng được tạo ra và công nhận bởi một số cơ quan có thẩm quyền. Nó không thực tế cho trình duyệt của bạn để biết về mỗi chứng chỉ của mỗi trang web bạn truy cập trên internet. Thay vào đó, PKI dựa vào một khái niệm được gọi là cơ quan chứng chỉ (CA).Certificate Authorities (CA). Cơ quan chứng chỉ chịu trách nhiệm cấp giấy chứng nhận. Họ được coi là một bên thứ ba đáng tin cậy (TTP) trong PKI. Về cơ bản, các thực thể này đóng vai trò là cơ quan hợp lệ cho một chứng chỉ. Giả sử bạn muốn đến thăm một quốc gia khác và bạn có hộ chiếu với tất cả thông tin của bạn về nó. Làm thế nào để các nhân viên nhập cư ở nước ngoài biết rằng hộ chiếu của bạn chứa thông tin hợp lệ? Nếu bạn tự điền vào tất cả thông tin và ký tên, thì mỗi nhân viên nhập cư ở mỗi quốc gia bạn muốn truy cập sẽ cần phải biết cá nhân bạn và có thể chứng thực rằng thông tin thực sự chính xác. Một cách khác để xử lý điều này là gửi tất cả thông tin của bạn vào bên thứ ba đáng tin cậy (TTP). TTP sẽ thực hiện một cuộc điều tra kỹ lưỡng về thông tin bạn cung cấp, xác minh các yêu cầu của bạn và sau đó ký vào hộ chiếu của bạn. Điều này hóa ra là thực tế hơn nhiều vì các nhân viên nhập cư chỉ cần biết các bên thứ ba đáng tin cậy.Trusted Third Party (TTP). The TTP would do a thorough investigation of the information you provided, verify your claims, and then sign your passport. This turns out to be much more practical because the immigration officers only need to know the trusted third parties. Kịch bản TTP là cách xử lý chứng chỉ trong thực tế. Quá trình diễn ra như thế này:
Lưu ý rằng CSR được buộc bằng mật mã với khóa riêng của bạn. Như vậy, cả ba mẩu thông tin, khóa công khai, khóa riêng và cơ quan chứng chỉ, có liên quan theo cách này hay cách khác. Điều này tạo ra những gì được gọi là một chuỗi niềm tin, vì vậy bây giờ bạn có một chứng chỉ hợp lệ có thể được sử dụng để xác minh danh tính của bạn. Thông thường, đây chỉ là trách nhiệm của chủ sở hữu trang web. Một chủ sở hữu trang web sẽ làm theo tất cả các bước này. Vào cuối quá trình này, chứng chỉ của họ cho biết như sau:
Câu này là tất cả những gì một chứng chỉ thực sự cho bạn biết. Các biến có thể được điền vào như sau:
Về cơ bản, đây là tất cả một chứng chỉ mô tả. Nói cách khác, có một chứng chỉ không nhất thiết có nghĩa là bạn là người mà bạn nói, chỉ là bạn có 7 để đồng ý rằng bạn là người mà bạn nói. Đây là nơi mà phần đáng tin cậy của các bên đáng tin cậy của các bên thứ ba đáng tin cậy xuất hiện.TTP cần được chia sẻ giữa các máy khách và máy chủ để mọi người hài lòng về việc bắt tay HTTPS. Trình duyệt của bạn đi kèm với rất nhiều cơ quan chứng chỉ được cài đặt tự động. Để xem chúng, hãy thực hiện các bước sau:
Điều này bao gồm cơ sở hạ tầng cần thiết để tạo các ứng dụng Python HTTPS trong thế giới thực. Trong phần tiếp theo, bạn sẽ áp dụng các khái niệm này vào mã của riêng bạn. Bạn sẽ đi qua các ví dụ phổ biến nhất và trở thành cơ quan chứng chỉ của riêng bạn cho những con sóc bí mật! Ứng dụng HTTP Python trông như thế nào?Bây giờ bạn có một sự hiểu biết về các phần cơ bản cần thiết để tạo ứng dụng Python HTTPS, đã đến lúc kết hợp tất cả các phần với nhau từng người một với ứng dụng của bạn từ trước. Điều này sẽ đảm bảo rằng giao tiếp của bạn giữa máy chủ và máy khách được bảo mật. Nó có thể thiết lập toàn bộ cơ sở hạ tầng PKI trên máy của riêng bạn và đây chính xác là những gì bạn sẽ làm trong phần này. Nó không khó như âm thanh, vì vậy đừng lo lắng! Trở thành một cơ quan chứng chỉ thực sự khó hơn đáng kể so với thực hiện các bước dưới đây, nhưng những gì bạn sẽ đọc là, ít nhiều, tất cả những gì bạn cần để chạy CA của riêng mình. Trở thành cơ quan chứng chỉMột cơ quan chứng chỉ không có gì khác hơn là một cặp khóa công khai và riêng tư rất quan trọng. Để trở thành CA, bạn chỉ cần tạo ra một cặp khóa công khai và riêng tư. Cặp khóa công khai và riêng tư ban đầu của bạn sẽ là một chứng chỉ tự ký. Bạn có thể tạo ra bí mật ban đầu, vì vậy nếu bạn thực sự sẽ trở thành CA, thì điều đó cực kỳ quan trọng là khóa riêng này là an toàn. Nếu ai đó có quyền truy cập vào cặp khóa công khai và riêng tư CA, thì họ có thể tạo chứng chỉ hoàn toàn hợp lệ và ở đó, bạn không thể làm gì để phát hiện vấn đề ngoại trừ việc ngừng tin tưởng CA. Với cảnh báo đó, bạn có thể tạo chứng chỉ ngay lập tức. Để bắt đầu, bạn sẽ cần phải tạo một khóa riêng. Dán phần sau vào một tệp có tên 9: 9 00 tạo khóa riêng bằng RSA. Ở đây, một sự cố của mã:
Bước tiếp theo để trở thành CA của riêng bạn là tạo khóa công khai tự ký. Bạn có thể bỏ qua yêu cầu ký chứng chỉ (CSR) và xây dựng khóa công khai ngay lập tức. Dán phần sau vào 9: 0Ở đây bạn có một chức năng mới 05 sẽ tạo khóa công khai tự ký. Ở đây, cách thức hoạt động của mã này:
Sử dụng hai chức năng này, bạn có thể tạo cặp khóa riêng và công khai của mình khá nhanh trong Python: >>> 1Sau khi nhập các chức năng trợ giúp của bạn từ 07, trước tiên bạn tạo khóa riêng của mình và lưu nó vào tệp 08. Sau đó, bạn chuyển khóa riêng đó vào 05 để tạo khóa công khai của bạn. Trong thư mục của bạn, bây giờ bạn nên có hai tệp: 2Xin chúc mừng! Bây giờ bạn có khả năng trở thành một cơ quan chứng chỉ. Tin tưởng vào máy chủ của bạnBước đầu tiên để máy chủ của bạn trở nên đáng tin cậy là để bạn tạo yêu cầu ký chứng chỉ (CSR). Trong thế giới thực, CSR sẽ được gửi đến một cơ quan chứng chỉ thực tế như Verisign hoặc để cho mã hóa. Trong ví dụ này, bạn sẽ sử dụng CA bạn vừa tạo.Certificate Signing Request (CSR). In the real world, the CSR would be sent to an actual Certificate Authority like Verisign or Let’s Encrypt. In this example, you’ll use the CA you just created. Dán mã để tạo CSR vào tệp 9 từ trên: 3Đối với hầu hết các phần này, mã này giống hệt với cách bạn tạo khóa công khai ban đầu của bạn. Sự khác biệt chính được nêu dưới đây:
Bạn sẽ nhận thấy rằng, để tạo CSR, bạn sẽ cần một khóa riêng trước. May mắn thay, bạn có thể sử dụng cùng một 00 từ khi bạn tạo khóa riêng CA của bạn. Sử dụng chức năng trên và các phương thức trước được xác định, bạn có thể thực hiện như sau:>>> 4Sau khi nhập các chức năng trợ giúp của bạn từ 07, trước tiên bạn tạo khóa riêng của mình và lưu nó vào tệp 08. Sau đó, bạn chuyển khóa riêng đó vào 05 để tạo khóa công khai của bạn. Trong thư mục của bạn, bây giờ bạn nên có hai tệp:
Bước đầu tiên để máy chủ của bạn trở nên đáng tin cậy là để bạn tạo yêu cầu ký chứng chỉ (CSR). Trong thế giới thực, CSR sẽ được gửi đến một cơ quan chứng chỉ thực tế như Verisign hoặc để cho mã hóa. Trong ví dụ này, bạn sẽ sử dụng CA bạn vừa tạo. 5Dán mã để tạo CSR vào tệp 9 từ trên:Đối với hầu hết các phần này, mã này giống hệt với cách bạn tạo khóa công khai ban đầu của bạn. Sự khác biệt chính được nêu dưới đây: 6Dòng 16 đến 19 Thiết lập tên DNS thay thế, sẽ có giá trị cho chứng chỉ của bạn.
Sau khi bạn chạy các bước này trong bảng điều khiển, bạn nên kết thúc với hai tệp mới: >>> 7Trong phần mã này, bạn đã mở tệp 13 của mình và sử dụng 22 để tạo đối tượng 23 của bạn. Tiếp theo, bạn sẽ cần phải tải khóa công khai CA của bạn:>>> 8Một lần nữa, bạn đã tạo ra một đối tượng 24 có thể được sử dụng bởi 20. Mô -đun 26 có 27 tiện dụng để giúp đỡ. Bước cuối cùng là tải khóa riêng CA của bạn:>>> 9Một lần nữa, bạn đã tạo ra một đối tượng 24 có thể được sử dụng bởi 20. Mô -đun 26 có 27 tiện dụng để giúp đỡ. Bước cuối cùng là tải khóa riêng CA của bạn:>>> 0Một lần nữa, bạn đã tạo ra một đối tượng 24 có thể được sử dụng bởi 20. Mô -đun 26 có 27 tiện dụng để giúp đỡ. Bước cuối cùng là tải khóa riêng CA của bạn: 1Mã này sẽ tải lên khóa riêng của bạn. Nhớ lại trước đó rằng khóa riêng của bạn đã được mã hóa bằng mật khẩu bạn đã chỉ định. Với ba thành phần, giờ đây bạn có thể ký CSR của mình và tạo khóa công khai đã được xác minh: Sau khi chạy này, bạn nên có ba tệp khóa máy chủ trong thư mục của mình: 2Whew! Đó là khá nhiều công việc. Tin tốt là bây giờ bạn có cặp khóa riêng và công cộng, bạn không phải thay đổi bất kỳ mã máy chủ nào để bắt đầu sử dụng nó. Sử dụng tệp 6 ban đầu của bạn, hãy chạy lệnh sau để bắt đầu ứng dụng Python HTTPS hoàn toàn mới của bạn: 3Xin chúc mừng! Bây giờ bạn có một máy chủ hỗ trợ Python HTTPS chạy với cặp khóa công cộng riêng tư của riêng bạn, được ký bởi cơ quan chứng chỉ rất riêng của bạn! 4Bây giờ, tất cả những gì còn lại để làm là truy vấn máy chủ của bạn. Đầu tiên, bạn sẽ cần thực hiện một số thay đổi đối với mã 9:
Đó là thông báo lỗi khá khó chịu! Phần quan trọng ở đây là thông điệp 32. Những từ này nên quen thuộc hơn với bạn bây giờ. Về cơ bản, nó nói như sau:
Localhost: 5683 đã cho tôi một chứng chỉ. Tôi đã kiểm tra nhà phát hành chứng chỉ mà nó đã cung cấp cho tôi, và theo tất cả các cơ quan chứng chỉ mà tôi biết, rằng nhà phát hành không phải là một trong số họ. 5Nếu bạn cố gắng điều hướng đến trang web của mình bằng trình duyệt, thì bạn sẽ nhận được một thông báo tương tự: 6Nếu bạn muốn tránh tin nhắn này, thì bạn phải nói 33 về cơ quan chứng chỉ của bạn! Tất cả những gì bạn cần làm là các yêu cầu điểm tại tệp 34 mà bạn đã tạo trước đó:Sau khi làm điều đó, bạn sẽ có thể chạy thành công sau:Tốt đẹp! Bạn đã tạo ra một máy chủ Python HTTPS hoạt động đầy đủ và đã truy vấn thành công. Bạn và những con sóc bí mật bây giờ có những thông điệp mà bạn có thể giao dịch qua lại hạnh phúc và an toàn!secure communications on the Internet today. Now that you understand these building blocks, you’ll become a better and more secure developer. Sự kết luận
cơ sở hạ tầng nơi công cộng Giấy chứng nhận This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Exploring HTTPS and Cryptography in Python Yêu cầu Python có hoạt động cho HTTPS không?Yêu cầu xác minh chứng chỉ SSL cho các yêu cầu HTTPS, giống như trình duyệt web.verifies SSL certificates for HTTPS requests, just like a web browser.
Yêu cầu có sử dụng certifi không?Yêu cầu sử dụng chứng chỉ từ Chứng nhận gói.Điều này cho phép người dùng cập nhật chứng chỉ đáng tin cậy của họ mà không thay đổi phiên bản yêu cầu.Trước phiên bản 2.16, các yêu cầu đã gói một bộ CAS gốc mà nó tin cậy, có nguồn gốc từ cửa hàng Mozilla Trust.. This allows for users to update their trusted certificates without changing the version of Requests. Before version 2.16, Requests bundled a set of root CAs that it trusted, sourced from the Mozilla trust store.
Yêu cầu có hoạt động với HTTPS không?Các yêu cầu và phản hồi của HTTP được gửi trong bản rõ, điều đó có nghĩa là bất cứ ai cũng có thể đọc chúng.HTTPS khắc phục vấn đề này bằng cách sử dụng mã hóa TLS/SSL.. HTTPS corrects this problem by using TLS/SSL encryption.
HTTP có thể có chứng chỉ không?HTTPS: Điều quan trọng nhất đối với các doanh nghiệp, chứng chỉ SSL là cần thiết cho địa chỉ web HTTPS.HTTPS là hình thức an toàn của HTTP và các trang web HTTPS là các trang web có lưu lượng truy cập được mã hóa bởi SSL/TLS.an SSL certificate is necessary for an HTTPS web address. HTTPS is the secure form of HTTP, and HTTPS websites are websites that have their traffic encrypted by SSL/TLS. |