Chứng chỉ tự ký SSL SSL của Python
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 chưa? . 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? Show
Bạn có thể ngạc nhiên khi biết rằng bạn không cần 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ữ cho thông tin liên lạc qua Internet được an toàn. Bạn sẽ thấy các ví dụ cụ thể về cách ứng dụng Python HTTPS bảo mật thông tin Trong hướng dẫn này, bạn sẽ học cách
Tiền thưởng miễn phí. Nhấp vào đây để truy cập vào video hướng dẫn Flask + Python miễn phí chỉ cho bạn cách xây dựng ứng dụng web Flask, từng bước một 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 truyền tải siêu văn bản, làm nền tảng cho hầu hết các giao tiếp 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 tác nhân người dùng, như trình duyệt web của bạn, giao tiếp với máy chủ web, như realpython. com. Đây là sơ đồ đơn giản hóa về giao tiếp HTTP 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 là sự cố của từng bước
Sự cố này nắm bắt những điều cơ bản về HTTP. Bạn gửi yêu cầu tới 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. Trên thực tế, đây hầu như luôn là TCP qua IP (mặc dù Google đang cố gắng tạo một sự thay thế). Nếu bạn cần xem lại, hãy xem Lập trình ổ cắm trong Python (Hướng dẫn) Khi các giao thức hoạt động, 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 bằng phản hồi HTTP. Phản hồi HTTP chứa các phần tử sau
Đây là những khối xây dựng cho HTTP. Nếu bạn muốn tìm hiểu thêm về HTTP, thì bạn có thể xem trang tổng quan để tìm hiểu sâu hơn về giao thức này Loại bỏ các quảng cáoHTTPS là gì?Giờ thì bạn đã hiểu thêm một chút về HTTP, vậy HTTPS là gì? . HTTPS là viết tắt của Giao thức truyền tải siêu văn bản an toàn. Về cơ bản, HTTPS là giao thức giống như HTTP nhưng có thêm hàm ý rằng các giao tiếp được bảo mật HTTPS không viết lại bất kỳ nguyên tắc cơ bản nào của HTTP mà nó được xây dựng trên đó. 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ã hóa giúp mã hóa thông tin trước khi gửi qua mạng Ghi chú. TLS và SSL là các giao thức cực kỳ giống nhau, mặc dù SSL đang trên đà phát triển, với TLS sẽ thay thế nó. Sự khác biệt trong các giao thức này nằm ngoài phạm vi của hướng dẫn này. Đủ để biết rằng TLS là phiên bản SSL mới hơn, tốt hơn Vì vậy, tại sao tạo ra sự tách biệt này? . Bảo mật thông tin liên lạc 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 dụng khác trên nhiều ứng dụng khác nhau
Có những người khác, cũng như. Nếu mỗi giao thức này phải tạo cơ chế bảo mật của riêng mình, 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 thông tin liên lạc Ghi chú. Sự tách biệt các giao thức này là một chủ đề phổ biến trong mạng, đến nỗi nó có tên. Mô hình OSI đại diện cho các giao tiếp từ phương tiện vật lý cho đến HTML được hiển thị trên trang này Hầu như tất 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 những kiến thức cơ bản về liên lạc an toàn cùng với cách nó áp dụng cụ thể cho HTTPS Tại sao HTTPS lại quan trọng?Liên lạc 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 nơi trên thế giới chuyển sang trực tuyến, bao gồm cả ngân hàng và các trang web chăm sóc sức khỏe, việc tạo các ứng dụng Python HTTPS ngày càng trở nên quan trọng hơn đối với các nhà phát triển. Một lần nữa, HTTPS chỉ là HTTP qua TLS hoặc SSL. TLS được thiết kế để cung cấp sự riêng tư khỏi những kẻ nghe trộm. 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á sâu các khái niệm này bằng cách thực hiện các thao tác sau
Bắt đầu nào Tạo một ứng dụng mẫuGiả sử bạn là thủ lĩnh của một câu lạc bộ Python thú vị có tên là Secret Squirrels. Squirrels, bí mật, yêu cầu một thông điệp bí mật để tham dự các cuộc họp của họ. Là trưởng nhóm, bạn chọn tin nhắn bí mật, thay đổi theo từng cuộc họp. Tuy nhiên, đôi khi, bạn khó gặp được 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 tin nhắn bí mật cho chính họ Ghi chú. Mã ví dụ được sử dụng trong hướng dẫn này không được thiết kế để sản xuất. Nó được thiết kế để giúp bạn tìm hiểu kiến thức cơ bản về HTTP và TLS. Vui lòng không sử dụng mã này để sản xuất. Nhiều ví dụ dưới đây có thực tiễn bảo mật khủng khiếp. Trong hướng dẫn này, bạn sẽ tìm hiểu về TLS và một cách mà nó có thể giúp bạn an toàn hơn Bạn đã làm theo một số hướng dẫn về Real Python 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 là 6, bạn tạo một ứng dụng Flask 1Ứng dụng Flask này sẽ hiển thị thông báo bí mật bất cứ khi nào ai đó truy cập vào đường dẫn 7 của máy chủ của bạn. Ngoài ra, bạn triển khai ứng dụng của mình trên máy chủ bí mật và chạy nó 3Lệnh này khởi động máy chủ bằng ứng dụng Flask ở trên. Bạn bắt đầu nó trên một cổng lạ vì bạn không muốn mọi người có thể tìm thấy nó và tự vỗ lưng mình vì đã quá lén lút. Bạn có thể xác nhận rằng nó đang hoạt động bằng cách truy cập vào 8 trong trình duyệt của bạnVì mọi người trong Secret Squirrels đều biết Python nên bạn quyết định giúp họ. Bạn viết một kịch bản tên là 9 sẽ giúp họ nhận được thông điệp bí mật
Mã này sẽ in ra thông báo bí mật miễn là chúng có biến môi trường 30 được đặt. Trong trường hợp này, 30 là 32. 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à yêu cầu họ giữ bí mật và an toànMặc dù điều này có vẻ ổn, nhưng hãy yên tâm là 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 không an toàn. Nhưng ngay cả khi nhóm của bạn bằng cách nào đó đã quản lý để giữ an toàn cho URL, thư bí mật của bạn vẫn sẽ không an toàn. Để chứng minh tại sao bạn cần biết một chút về giám sát lưu lượng mạng. Để làm điều này, bạn sẽ sử dụng một công cụ có tên là Wireshark Loại bỏ các quảng cáoThiế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 xem điều gì đang xảy ra qua 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 vui lòng làm theo nếu bạn muốn. Trang tải xuống có sẵn một số trình cài đặt
Nếu bạn đang sử dụng Windows hoặc Mac, thì bạn 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 sẽ có một Wireshark đang chạy Nếu bạn đang sử dụng 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ể thực hiện được. Bạn có thể cài đặt Wireshark bằng các lệnh sau
Bạn sẽ thấy một màn hình giống như thế này Khi Wireshark đang chạy, đã đến lúc 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 mọi người xem. Điều này có nghĩa là ngay cả khi ai đó không có 30 của bạn, họ vẫn có thể thấy mọi thứ bạn làm miễn là họ có thể giám sát lưu lượng truy cập trên bất kỳ thiết bị nào giữa bạn và máy chủĐiều này sẽ tương đối đáng sợ đối với bạn. Rốt cuộc, bạn không muốn người khác xuất hiện trong các cuộc họp Secret Squirrel của mình. Bạn có thể chứng minh rằng điều này đang xảy ra. Trước tiên, hãy khởi động máy chủ của bạn nếu bạn vẫn chưa chạy nó 3Đ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 chụp gói này sẽ giúp bạn xem tất cả lưu lượng truy cập đến và đi 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 Loopback. phần lo được đánh dấu. Điều này hướng dẫn Wireshark giám sát cổng này để biết 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 34 vào bộ lọc chụp và 35 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 đã nhập. Bây giờ bạn có thể bắt đầu chụp bằng cách nhấp vào vây ở trên cùng bên trái Nhấp vào nút này sẽ tạo 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 báo ở dưới cùng cho biết 36, cho biết rằng nó đang hoạt động. Đừng lo lắng rằng không có gì được hiển thị, vì điều đó là 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. Để lấy một số dữ liệu, hãy thử chạy ứng dụng khách của bạn 6Sau khi thực thi mã 9 ở trên, bây giờ bạn sẽ thấy một số mục nhập trong Wireshark. Nếu mọi việc suôn sẻ, thì bạn sẽ thấy hai mục giống như thế nàyHai 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 khách hàng đế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 của mình. Khi bạn chọn một trong các mục này, bạn sẽ thấy hàng giữa và hàng dưới cùng có thông tin Hàng ở giữa cung cấp cho bạn bảng phân tích 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 là tóm tắt nhanh về thông tin mà 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 truyề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 hiển thị cho bạn yêu cầu HTTP của tập lệnh của bạn
Hàng cuối cùng bạn sẽ thấy là kết xuất dữ liệu hex. Bạn có thể nhận thấy trong kết xuất hex này rằng bạn thực sự có thể thấy các phần của yêu cầu HTTP của mình. Đó là vì yêu cầu HTTP của bạn đã được gửi công khai. Nhưng còn câu trả lời thì sao? Một lần nữa, bạn có ba phần giống nhau. Nếu bạn nhìn kỹ vào kết xuất hex, thì bạn sẽ thấy thông báo bí mật ở dạng văn bản thuần túy. Đây là một vấn đề lớn đối với Secret Squirrels. Điều này có nghĩa là bất kỳ ai có một số bí quyết kỹ thuật đều có thể dễ dàng 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? Loại bỏ các quảng cáoMật mã học giúp như thế nào?Trong phần này, bạn sẽ tìm hiểu một cách để giữ an toàn cho dữ liệu của mình 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ù đây không phải là bước cuối cùng của bạn, nhưng nó sẽ giúp bạn có được nền tảng vững chắc về cách xây dựng các ứng dụng Python HTTPS Hiểu khái niệm cơ bản về mật mãMật mã là một cách để bảo mật thông tin liên lạc khỏi những kẻ nghe trộm hoặc kẻ thù. Một cách khác để nói điều này là bạn đang lấy thông tin bình thường, được gọi là văn bản gốc và chuyển đổi nó thành văn bản được xáo trộn, được gọi là bản mã Thoạt đầu, mật mã học có thể đáng sợ, nhưng các khái niệm cơ bản thì khá dễ tiếp cận. Trên thực tế, bạn có thể đã 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 mình và sử dụng nó để ghi chú trong lớp, thì bạn đã thực hành mật mã. (Nếu bạn chưa làm điều đó, thì đừng lo lắng—bạn sắp. ) Bằng cách nào đó, bạn cần lấy chuỗi 63 và chuyển đổi nó thành một thứ gì đó khó hiểu. Một cách để làm điều này là ánh xạ một số ký tự lên các ký tự khác nhau. Một cách hiệu quả để làm điều này là dịch chuyển các ký 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àyHình ảnh này cho bạn thấy cách dịch từ bảng chữ cái gốc sang bảng chữ cái mới và ngược lại. Vì vậy, nếu bạn có tin nhắn 64, thì bạn thực sự sẽ gửi tin nhắn 65. Nếu bạn áp dụng điều này cho 63, thì giả sử rằng các khoảng trắng không đổi, bạn sẽ nhận được 67. Mặc dù nó không hoàn hảo, nhưng nó có thể giống như một thứ vô nghĩa đối với bất kỳ ai nhìn thấy nóXin chúc mừng. Bạn đã tạo ra thứ được biết đến trong mật mã học dưới dạng mật mã, mô tả cách chuyển đổi văn bản gốc thành văn bản mã hóa và ngược 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 Enigma Machine, mặc dù là một phiên bản đơn giản hơn nhiều Bây giờ, nếu bạn muốn gửi một tin nhắn cho những con sóc bí mật, thì trước tiên bạn cần cho chúng biết số lượng chữ cái cần dịch chuyển và sau đó đưa cho chúng tin nhắn được mã hóa. Trong Python, điều này có thể trông giống như sau 8Tại đây, bạn đã tạo một hàm có tên là 68, hàm này sẽ lấy văn bản gốc và chuyển đổi nó thành bản mã. Hãy tưởng tượng bạn có một cuốn từ điển 69 có tất cả các ký tự được vạch ra. Tương tự, bạn có thể tạo một 80 2Chức năng này ngược lại với 68. Nó sẽ lấy bản mã và chuyển đổi nó thành bản rõ. Ở dạng 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ã tin nhắn. Đối với ví dụ trên, khóa đó là 82. Nghĩa là, mật mã chỉ ra rằng bạn nên dịch chuyển từng chữ cái trở lại một ký tự. Khóa rất quan trọng để giữ bí mật vì bất kỳ ai có khóa đều có thể dễ dàng giải mã tin nhắn của bạnGhi chú. Mặc dù bạn có thể sử dụng điều này để mã hóa nhưng điều này vẫn không an toàn lắm. Mật mã này nhanh chóng bị phá vỡ bằng cách sử dụng phân tích tần số và quá thô sơ đối với Secret Squirrels Trong kỷ nguyên hiện đại, mật mã 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. Mặc dù toán học đằng sau các mật mã này nằm ngoài phạm vi của hướng dẫn này, nhưng các khái niệm cơ bản vẫn giống nhau. Bạn có một bản 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à 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ỡ bởi kẻ nghe trộm. Bây giờ, hãy 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 HTTPS PythonThật may mắn cho bạn, bạn không cần 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ột mô-đun 83 có thể giúp bạn tạo dữ liệu ngẫu nhiên được bảo mật bằng 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 thích hợp là 84. Nó có sẵn trên PyPI, vì vậy bạn có thể cài đặt nó bằng pip 7Điều này sẽ cài đặt 84 vào môi trường ảo của bạn. Với 84 được cài đặt, giờ đây bạn có thể mã hóa và giải mã mọi thứ theo cách an toàn về mặt toán học bằng cách sử dụng phương pháp 87Nhớ lại rằng khóa bí mật trong mật mã của bạn là 82. Đồng quan điểm, bạn cần tạo khóa để Fernet hoạt động chính xác>>> 10Trong mã này, bạn đã nhập 87 và tạo khóa. Khóa chỉ là một loạt byte, nhưng điều cực kỳ quan trọng là bạn phải giữ bí mật và an toàn khóa 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ạnGhi chú. Trong cuộc sống thực, bạn sẽ giữ chìa khóa này rất an toàn. Trong những ví dụ này, thật hữu ích khi xem khóa, nhưng đây là một cách làm không tốt, đặc biệt nếu bạn đăng nó trên một trang web công cộng. Nói cách khác, không sử dụng chính xác khóa mà bạn thấy ở trên cho bất kỳ thứ gì bạn muốn bảo mật Phím này hoạt động giống như phím trước đó. Bắt buộc phải thực hiện quá trình chuyển đổi sang bản mã và quay lại bản rõ. Bây giờ là lúc cho phần thú vị. Bạn có thể mã hóa một tin nhắn như thế này >>> 11Trong mã này, bạn đã tạo một đối tượng Fernet có tên là 20, sau đó bạn có thể sử dụng đối tượng này để mã hóa tin nhắn của mình. Lưu ý rằng tin nhắn bí mật của bạn 63 cần phải là một đối tượng 22 để mã hóa nó. Sau khi mã hóa, bạn có thể thấy rằng 23 là một dòng byte dàiNhờ Fernet, bản mã này không thể được thao tác hoặc đọc nếu không có 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, điều này được gọi là mã hóa đối xứng. Trong phần tiếp theo, bạn sẽ thấy cách sử dụng mã hóa đối xứng này để giữ an toàn cho dữ liệu của bạn Loại bỏ các quảng cáoThấy rằng dữ liệu của bạn an toànBây giờ bạn đã hiểu một số khái niệm cơ bản về mật mã trong Python, bạn có thể áp dụng kiến thức này cho máy chủ của mình. Tạo một tệp mới có tên là 24 12Mã này kết hợp mã máy chủ ban đầu của bạn với đối tượng 87 mà bạn đã sử dụng trong phần trước. Khóa hiện được đọc dưới dạng đối tượng 22 từ môi trường bằng cách sử dụng 27. Khi máy chủ không hoạt động, giờ đây bạn có thể tập trung vào máy khách. Dán đoạn mã sau vào 28 13Mộ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 87. 70 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 đang mã hóa và giải mã thành công tin nhắn bí mật của mình 14Trong cuộc gọi này, bạn khởi động lại máy chủ trên cổng 5683. Lần này, bạn chuyển vào một 71 phải là một chuỗi được mã hóa base64 có độ dài tối thiểu là 32. Khi máy chủ của bạn được khởi động lại, bây giờ bạn có thể truy vấn nó 15tuyệt vời. Bạn đã có thể mã hóa và giải mã tin nhắn của mình. Nếu bạn thử chạy cái này với một 71 không hợp lệ, thì bạn sẽ gặp lỗi 16Vì 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? . Để chứng minh điều này, bạn có thể quay lại Wireshark và bắt đầu chụp mới với các bộ lọc giống như trước đây. Sau khi bạn đã thiết lập chụp, hãy chạy lại mã máy khách 15Bạ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 thông báo 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 bức ảnh này, bạn có thể thấy dữ liệu đã thực sự được chuyển 18Đáng kinh ngạc. Điều này có nghĩa là dữ liệu đã được mã hóa và những kẻ nghe trộm không biết nội dung tin nhắn thực sự là gì. Không chỉ vậy, điều đó còn có nghĩa là họ có thể dành một khoảng thời gian cực kỳ dài để cố gắng bẻ khóa dữ liệu này bằng vũ lực và họ gần như sẽ không bao giờ thành công Dữ liệu của bạn an toàn. Nhưng đợi một chút—bạn chưa bao giờ phải biết bất cứ điều gì về một khóa khi bạn đang sử dụng các ứng dụng Python HTTPS trước đây. Đó là bởi vì HTTPS không chỉ sử dụng mã hóa đối xứng. Hóa ra, chia sẻ bí mật là một bài toán khó Để chứng minh khái niệm này, hãy điều hướng đến 73 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 HTTPS thực sự hoạt động? Loại bỏ các quảng cáoKhóa được chia sẻ như thế nào?Trong phần trước, bạn đã biết cách sử dụng mã hóa đối xứng để giữ an toàn cho dữ liệu của mình khi truyền qua Internet. Tuy nhiên, mặc dù mã hóa đối xứng là an toàn, nhưng đây không phải là kỹ thuật mã hóa duy nhất được các ứng dụng Python HTTPS sử dụng để giữ an toàn cho dữ liệu của bạn. Mã hóa đối xứng giới thiệu một số vấn đề cơ bản không dễ giải quyết Ghi chú. Hãy nhớ rằng, mã hóa đối xứng yêu cầu bạn phải có khóa chung giữa máy khách và máy chủ. Thật không may, bảo mật chỉ hoạt động mạnh như liên kết yếu nhất của bạn và các liên kết yếu đặc biệt nghiêm trọng trong mã hóa đối xứng. Khi một người thỏa hiệp khóa, thì mọi khóa đều bị xâm phạm. Sẽ an toàn khi cho rằng bất kỳ hệ thống bảo mật nào, đến một lúc nào đó, sẽ bị xâm phạm Vì vậy, làm thế nào để bạn thay đổi chìa khóa của bạn? . Tuy nhiên, khi bạn có nhiều máy khách và nhiều máy chủ hơn, thì càng cần có nhiều sự phối hợp hơn để thay đổi khóa và giữ bí mật của bạn an toàn một cách hiệu quả 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. Bạn gần như không thể cố gắng khiến mọi người nhớ đến chìa khóa đó. Khi số lượng máy khách và máy chủ của bạn tăng lên, bạn có thể sẽ sử dụng các khóa dễ nhớ và dễ đoán hơn Nếu bạn có thể đối phó với việc thay đổi chìa khóa của mình, thì bạn vẫn còn một vấn đề nữa cần giải quyết. Bạn chia sẻ khóa ban đầu của mình như thế nào? . Bạn có thể đưa bí mật trực tiếp cho từng thành viên và yêu cầu họ giữ bí mật, nhưng hãy nhớ rằng ai đó sẽ là mắt xích yếu nhất Bây giờ, giả sử bạn thêm một thành viên vào Secret Squirrels từ một địa điểm thực tế khác. Làm thế nào để bạn chia sẻ bí mật với thành viên này? . 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 kỳ ai cũng có thể lấy được 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 báo bí mật, nhưng bây giờ bạn gặp phải gấp đôi vấn đề 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 Điều bạn cần là hai bên chưa bao giờ giao tiếp có một bí mật chung. Nghe có vẻ không thể, phải không? . Họ đã giúp chứng minh rằng mật mã khóa công khai, còn được gọi là mã hóa bất đối xứng, là có thể Ghi chú. Trong khi Whitfield Diffie và Martin Hellman được biết đến rộng rãi là những người đầu tiên phát hiện ra kế hoạch này, thì vào năm 1997, người ta đã tiết lộ rằng ba người đàn ông làm việc cho GCHQ tên là James H. Ellis, Clifford Cocks và Malcolm J. Williamson trước đây đã chứng minh khả năng này bảy năm trước Mã hóa bất đối xứng cho phép hai người dùng chưa từng liên lạc 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 phép loại suy màu sắc. Hãy tưởng tượng bạn có kịch bản sau Trong sơ đồ này, bạn đang cố liên lạc 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 tên gián điệp có thể nhìn 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ó khóa riêng. Thật không may, bạn không thể gửi khóa riêng của mình vì gián điệp sẽ nhìn thấy nó. Vậy bạn làm gì? Điều đầu tiên bạn cần làm là thỏa thuận với đối tác của mình về một màu, chẳng hạn như màu vàng Lưu ý ở đây rằng điệp viên có thể nhìn thấy màu chung, bạn và Sóc bí mật cũng vậy. Màu được chia sẻ được công khai một cách hiệu quả. Bây giờ, cả bạn và Secret Squirrel kết hợp các khóa riêng của bạn với màu được chia sẻ Màu của bạn kết hợp để tạo ra màu xanh lá cây, trong khi màu của Secret Squirrel kết hợp để tạo ra màu cam. Cả hai bạn đã hoàn thành với màu được chia sẻ và bây giờ bạn cần chia sẻ các màu kết hợp của mình với nhau Bây giờ bạn đã có khóa riêng của mình và màu kết hợp của Secret Squirrel. Tương tự như vậy, Secret Squirrel có khóa riêng của chúng và màu kết hợp của bạn. Bạn và Sóc bí mật kết hợp màu sắc khá nhanh Tuy nhiên, điệp viê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 được chia sẻ ban đầu. Điệp viên sẽ phải đến cửa hàng và mua rất nhiều nhạc blues khác nhau để thử. Ngay cả khi đó, thật khó để biết liệu họ có nhìn đúng bóng xanh sau khi kết hợp hay không. Nói tóm lại, khóa riêng của bạn vẫn là riêng tư Nhưng còn bạn và Secret Squirrel thì sao? . Đây là nơi khóa riêng của bạn quay 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ẽ có cùng một màu Bây giờ, bạn và Sóc bí mật có cùng màu bí mật chung. 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 chính xác một cách đáng ngạc nhiên đối với cách thức hoạt động của mật mã khóa công khai. 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 khóa được tạo thành từ các phần sau
Khóa riêng là thứ bạn luôn giữ kín, trong khi khóa chung có thể được chia sẻ với bất kỳ ai. Các 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. Giờ đây, máy chủ và máy khách có một bí mật chung, bạn có thể sử dụng mã hóa đối xứng cũ của bạn để mã hóa tất cả các thư tiếp theo Ghi chú. Mật mã khóa công khai cũng dựa vào một số phép toán để trộn màu. Trang Wikipedia về trao đổi khóa Diffie-Hellman có giải thích hay, nhưng giải thích sâu nằm ngoài phạm vi của hướng dẫn này Khi bạn liên lạc qua một trang web an toàn, chẳng hạn như trang web này, trình duyệt của bạn và máy chủ sẽ thiết lập một liên lạc 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 sẵn và của bên thứ ba có thể giúp bạn bảo mật thông tin liên lạc giữa máy khách và máy chủ của mình Loại bỏ các quảng cáoHTTPS giống như thế nào trong thế giới thực?Với 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 rất nhiều về cách hoạt động của mã hóa, nhưng còn xác thực thì sao? . 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ỉ Chứng chỉ 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 khối dữ liệu trong một tệp. Nói chung, chứng chỉ bao gồm các thông tin sau
Cũng giống như hộ chiếu, chứng chỉ chỉ thực sự hữu ích nếu chúng được tạo và công nhận bởi một số cơ quan có thẩm quyền. Việc 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 là không thực tế. Thay vào đó, PKI dựa trên một khái niệm được gọi là Tổ chức phát hành chứng chỉ (CA) Cơ quan cấp chứng chỉ chịu trách nhiệm cấp chứng chỉ. Họ được coi là 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 có thẩm quyền hợp lệ đối với 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 mình trên đó. Làm thế nào để nhân viên xuất nhập cảnh ở 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 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 mà bạn muốn đến sẽ cần 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ý việc này là gửi tất cả thông tin của bạn cho Bên thứ ba đáng tin cậy (TTP). TTP sẽ điều tra kỹ lưỡng thông tin bạn cung cấp, xác minh 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 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 Kịch bản TTP là cách các chứng chỉ được xử lý trong thực tế. Quá trình diễn ra như thế này
Lưu ý rằng CSR được liên kết bằng mật mã với khóa riêng của bạn. Như vậy, cả ba phần thông tin—khóa chung, khóa riêng và tổ chức phát hành chứng chỉ—đều có liên quan theo cách này hay cách khác. Điều này tạo ra cái được gọi là chuỗi tin cậy, vì vậy, giờ đây 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. Chủ sở hữu trang web sẽ làm theo tất cả các bước này. Khi kết thúc 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ự nói với bạn. Các biến có thể được điền như sau
Về cơ bản, đây là tất cả những gì một chứng chỉ mô tả. Nói cách khác, có chứng chỉ không nhất thiết có nghĩa là bạn là người như bạn nói, chỉ là bạn được 77 đồng ý rằng bạn là người như bạn nói. Đây là nơi phần “đáng tin cậy” của các bên thứ ba đáng tin cậy xuất hiệnTTP cần được chia sẻ giữa máy khách và máy chủ để mọi người đều hài lòng về bắt tay HTTPS. Trình duyệt của bạn đi kèm với rất nhiều Tổ chức phát hành 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 mình. Bạn sẽ xem qua các ví dụ phổ biến nhất và trở thành Cơ quan cấp chứng chỉ của riêng bạn cho Secret Squirrels Loại bỏ các quảng cáoỨng dụng HTTPS Python trông như thế nào?Bây giờ bạn đã hiểu 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 lại với nhau từng phần một cho ứng dụng của bạn từ trước. Điều này sẽ đảm bảo rằng thông tin liên lạc của bạn giữa máy chủ và máy khách được an toà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 Tổ chức phát hành chứng chỉ thực sự khó hơn đáng kể so với việc thực hiện các bước bên dưới, nhưng những gì bạn sẽ đọc, ít nhiều, là tất cả những gì bạn cần để chạy CA của riêng mình Trở thành Cơ quan cấp chứng chỉCơ quan cấp chứng chỉ không 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 cặp khóa công khai và khóa riêng Ghi chú. Trở thành một CA dành cho công chúng sử dụng là một quá trình rất khó khăn, mặc dù có nhiều công ty đã tuân theo quy trình này. Tuy nhiên, bạn sẽ không phải là một trong những công ty đó khi kết thúc hướng dẫn này. Cặp khóa công khai và khóa riêng ban đầu của bạn sẽ là chứng chỉ tự ký. Bạn đang tạo bí mật ban đầu, vì vậy nếu bạn thực sự muốn trở thành một CA, thì điều cực kỳ quan trọng là khóa riêng tư này phải 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ư của 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ừ ngừng tin tưởng CA của mình 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 tạo khóa riêng. Dán phần sau vào một tệp có tên 79 19 100 tạo khóa riêng bằng RSA. Đây là 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à ngay lập tức tạo khóa công khai. Dán phần sau vào 79 30Ở đây bạn có một chức năng mới 105 sẽ tạo khóa công khai tự ký. Đây là cách mã này hoạt động
Sử dụng hai chức năng này, bạn có thể tạo cặp khóa riêng và khóa chung khá nhanh trong Python >>> 31Sau khi nhập các hàm trợ giúp của bạn từ 107, trước tiên bạn tạo khóa riêng của mình và lưu nó vào tệp 108. Sau đó, bạn chuyển khóa riêng đó vào 105 để tạo khóa chung của mình. Trong thư mục của bạn bây giờ bạn sẽ có hai tệp 32Xin chúc mừng. Bây giờ bạn có khả năng trở thành Cơ quan cấp chứng chỉ Loại bỏ các quảng cáoTin tưởng 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 Tổ chức phát hành chứng chỉ thực tế như Verisign hoặc Let's Encrypt. Trong ví dụ này, bạn sẽ sử dụng CA mà bạn vừa tạo Dán mã để tạo CSR vào tệp 79 ở trên 33Đối với hầu hết các phần, mã này giống hệt với cách bạn tạo khóa công khai ban đầu của mình. 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, trước tiên bạn cần có khóa riêng. May mắn thay, bạn có thể sử dụng cùng một 100 khi bạn tạo khóa riêng của CA. Sử dụng hàm trên và các phương thức được xác định trước đó, bạn có thể thực hiện các thao tác sau>>> 34Sau khi bạn chạy các bước này trong bảng điều khiển, bạn sẽ nhận được hai tệp mới
Bạn có thể xem CSR mới và khóa cá nhân của mình từ bảng điều khiển 35Với hai tài liệu này trong tay, bây giờ bạn có thể bắt đầu quá trình ký chìa khóa của mình. Thông thường, rất nhiều xác minh sẽ xảy ra trong bước này. Trong thế giới thực, CA sẽ đảm bảo rằng bạn sở hữu 114 và yêu cầu bạn chứng minh điều đó theo nhiều cách khác nhauVì bạn là CA trong trường hợp này, bạn có thể bỏ qua vấn đề đau đầu đó và tạo khóa công khai được xác minh của riêng mình. Để làm điều đó, bạn sẽ thêm một chức năng khác vào tệp 79 của mình 36Mã này trông rất giống với 105 từ tệp 117. Trên thực tế, chúng gần như giống hệt nhau. Sự khác biệt chính như sau
Bước tiếp theo là kích hoạt bảng điều khiển Python và sử dụng 120. Bạn sẽ cần tải CSR của mình và khóa riêng và khóa chung của CA. Bắt đầu bằng cách tải CSR của bạn>>> 37Trong phần mã này, bạn đang mở tệp 113 của mình và sử dụng 122 để tạo đối tượng 123 của mình. Tiếp theo, bạn sẽ cần tải khóa công khai của CA>>> 38Một lần nữa, bạn đã tạo một đối tượng 124 có thể được sử dụng bởi 120. Mô-đun 126 có tiện dụng 127 để trợ giúp. Bước cuối cùng là tải khóa riêng của CA của bạn>>> 39Mã này sẽ tải lên khóa riêng của bạn. Nhớ lại từ 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 này, giờ đây bạn có thể ký CSR của mình và tạo khóa công khai đã xác minh >>> 0Sau khi chạy cái này, bạn sẽ có ba tệp khóa máy chủ trong thư mục của mình 1chà. Đó 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à khóa chung, 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 2Xin chúc mừng. Bây giờ bạn có một máy chủ hỗ trợ HTTPS Python đang chạy với cặp khóa công khai-riêng tư của riêng bạn, được ký bởi Cơ quan cấp chứng chỉ của chính bạn Ghi chú. Có một mặt khác của phương trình xác thực HTTPS Python và đó là ứng dụng khách. Cũng có thể thiết lập xác minh chứng chỉ cho chứng chỉ ứng dụng khách. Điều này đòi hỏi nhiều công việc hơn một chút và không thực sự được nhìn thấy bên ngoài các doanh nghiệp. Tuy nhiên, xác thực ứng dụng khách có thể là một công cụ rất mạnh Bây giờ, tất cả những gì còn lại phải làm là truy vấn máy chủ của bạn. Trước tiên, bạn cần thực hiện một số thay đổi đối với mã 9 3Thay đổi duy nhất so với mã trước đó là từ 35 thành 131. Nếu bạn cố chạy mã này, thì bạn sẽ gặp lỗi 4Đó là thông báo lỗi khá khó chịu. Phần quan trọng ở đây là thông điệp 132. Những từ này sẽ quen thuộc hơn với bạn bây giờ. Về cơ bản, nó nói như sau
Nếu bạn cố điều hướng đến trang web của mình bằng trình duyệt, thì bạn sẽ nhận được thông báo tương tự Nếu bạn muốn tránh thông báo này, thì bạn phải thông báo cho 133 về Tổ chức phát hành chứng chỉ của mình. Tất cả những gì bạn cần làm là trỏ các yêu cầu vào tệp 134 mà bạn đã tạo trước đó 5Sau khi làm điều đó, bạn sẽ có thể chạy thành công như sau 6Đẹp. Bạn đã tạo một máy chủ HTTPS Python hoạt động đầy đủ và đã truy vấn thành công. Giờ đây, bạn và Sóc bí mật có các tin nhắn mà bạn có thể trao đổi qua lại một cách vui vẻ và an toàn Loại bỏ các quảng cáoPhần kết luậnTrong hướng dẫn này, bạn đã học được một số nền tảng cốt lõi của truyền thông an toàn trên Internet ngày nay. Bây giờ bạn đã hiểu các khối xây dựng này, bạn sẽ trở thành một nhà phát triển tốt hơn và an toàn hơn Trong suốt hướng dẫn này, bạn đã hiểu được một số chủ đề
Nếu thông tin này khiến bạn quan tâm, thì bạn thật may mắn. Bạn hầu như không làm trầy xước bề mặt của tất cả các sắc thái liên quan đến mọi lớp. Thế giới bảo mật không ngừng phát triển và các kỹ thuật cũng như lỗ hổng mới luôn được phát hiện. Nếu bạn vẫn còn thắc mắc, vui lòng liên hệ trong phần nhận xét bên dưới hoặc trên Twitter Đánh dấu là đã hoàn thành Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Khám phá HTTPS và Mật mã học trong Python 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Logan Jones Xin chào, tôi là Logan, một cộng tác viên mã nguồn mở, nhà văn cho Real Python, nhà phát triển phần mềm và luôn cố gắng cải thiện. Hãy liên hệ và chúng ta hãy cùng nhau trở nên tốt hơn » Thông tin thêm về LoganMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren Brad Geir Arne Jaya Joanna Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi Làm cách nào để đặt chứng chỉ SSL trong Python?Tạo chứng chỉ SSL tự ký bằng Python
. Tạo khóa RSA riêng tư. Tạo yêu cầu ký chứng chỉ (CSR) bằng khóa riêng. Ký yêu cầu CSR để tạo chứng chỉ.
Tôi có thể tự sử dụng khôngKhi sử dụng SSL cho các ứng dụng phi sản xuất hoặc thử nghiệm khác bạn có thể sử dụng chứng chỉ SSL tự ký . Mặc dù chứng chỉ thực hiện mã hóa đầy đủ nhưng khách truy cập vào trang web của bạn sẽ thấy cảnh báo của trình duyệt cho biết rằng chứng chỉ không đáng tin cậy.
Làm cách nào để nhận chứng chỉ SSL bằng Python?Python nhận chứng chỉ máy chủ SNI . Tạo kết nối SSL với tên và cổng DNS đã cho Tạo một SSLContext Tạo SSLSocket từ kết nối và ngữ cảnh được tạo ở bước 1 và 2 Nhận chứng chỉ từ ổ cắm và chuyển đổi nó thành đối tượng X509 Đóng ổ cắm Trả lại chứng chỉ Làm cách nào để bỏ qua xác minh SSL trong Python?Phương pháp 1. Truyền verify=False cho phương thức yêu cầu
Cùng với URL cũng truyền tham số verify=False cho phương thức theo thứ tự . |