Làm cách nào để vượt qua lỗi SSL trong Python?

SSLError xảy ra khi bạn yêu cầu một URL từ xa không cung cấp chứng chỉ SSL đáng tin cậy. Cách dễ nhất để khắc phục sự cố này là vô hiệu hóa xác minh SSL cho địa chỉ web cụ thể đó bằng cách chuyển vào verify=False làm đối số cho lệnh gọi phương thức. Chỉ cần đảm bảo rằng bạn không gửi bất kỳ dữ liệu nhạy cảm nào trong yêu cầu của mình

Đây là một số mã mẫu vô hiệu hóa xác minh SSL

import requests

response = requests.get["//example.com/", verify=False]

Bạn cũng có thể tùy chọn cung cấp chứng chỉ tùy chỉnh cho trang web để khắc phục lỗi này. Đây là một số mã mẫu để cung cấp tệp chứng chỉ .pem tùy chỉnh cho requests

Mô-đun yêu cầu trong Python gửi các yêu cầu HTTP bằng một phương thức cụ thể tới một URL được chỉ định. Một đối tượng phản hồi, bao gồm dữ liệu và thông tin như mã hóa, trạng thái, nội dung, v.v. , được trả lại để đáp ứng yêu cầu này. Tuy nhiên, bất cứ khi nào chúng tôi thực hiện các hành động như đăng, nhận, xóa, v.v., chúng tôi sẽ gặp lỗi được gọi là SSLCertVerificationError, còn được gọi là SSL. Chứng chỉ_Verify_Failed chứng chỉ tự ký.  

Ví dụ

Import requests
requests.post[url = '//data1', data = {'a': 'az'}]

đầu ra

/usr/local/lib/python3.7 /site
packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: //urllib3.readthedocs.io/en/latest/advanced
usage.html#ssl
warnings InsecureRequestWarning]

✨ Bạn có thể loại bỏ lỗi này bằng cách tắt kiểm tra chứng chỉ bảo mật

Điều kiện tiên quyết. Bạn phải cài đặt thư viện yêu cầu trên máy của mình. Nếu chưa có, bạn có thể dễ dàng cài đặt bằng pip bằng cách sao chép lệnh sau. pip install requests 

Bây giờ, hãy xem chi tiết các phương pháp vô hiệu hóa kiểm tra chứng chỉ bảo mật cho các yêu cầu trong Python

Phương pháp 1. Bằng cách đặt xác minh = Sai

Mô-đun yêu cầu trong Python chứa các phương thức khác nhau như bài đăng, nhận, xóa, yêu cầu, v.v. Chúng tôi có thể gửi yêu cầu HTTP đến các phương thức này vì mỗi phương thức chấp nhận một URL. Bạn có thể đặt tham số

/usr/local/lib/python3.7 /site
packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: //urllib3.readthedocs.io/en/latest/advanced
usage.html#ssl
warnings InsecureRequestWarning]
0 là False để tắt kiểm tra chứng chỉ bảo mật cho các yêu cầu trong Python

Khi thư viện yêu cầu gửi một URL, tập hợp các thao tác sau đây sẽ xảy ra

  • Tra cứu DNS chuyển đổi URL thành địa chỉ IP [ví dụ. 312. 245. 123. 21],
  • Thư viện yêu cầu gửi yêu cầu đến địa chỉ IP này,
  • Máy chủ cố gắng xác thực yêu cầu này,
  • Máy chủ trả về mã trạng thái

Tìm hiểu thêm về các yêu cầu trong “Thư viện yêu cầu Python – Yêu cầu HTTP đầu tiên của bạn trong Python. ”

Tiếp cận

  • Đầu tiên, nhập mô-đun yêu cầu
  • Chúng ta cần gọi phương thức yêu cầu để thực hiện các yêu cầu. Chúng ta cần truyền một chuỗi với phương thức HTTP [“GET”] làm đầu vào đầu tiên và điểm cuối mà chúng ta muốn gửi yêu cầu làm đầu vào thứ hai.  
  • Để tắt kiểm tra chứng chỉ bảo mật cho các yêu cầu, chúng tôi phải chuyển tham số xác minh với giá trị là Sai.  
  • Phương thức yêu cầu trả về một đối tượng của lớp Phản hồi, mà chúng tôi lưu trữ trong một biến. Cuối cùng, chúng tôi sẽ in phản hồi từ máy chủ

Mã số

# Importing the requests module
import requests
# Sending a get http request to the specified url
response = requests.request[
    "GET", "//finxter.com/", verify = False]
  
# Printing the response
print[response]

đầu ra

/usr/lib/python3/dist-packages/urllib3/connectionpool.py:999: InsecureRequestWarning: Unverified HTTPS request is being made to host 'finxter.com'. Adding certificate verification is strongly advised. See: //urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  warnings.warn[

Thảo luận. Bằng cách chuyển tham số

/usr/local/lib/python3.7 /site
packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: //urllib3.readthedocs.io/en/latest/advanced
usage.html#ssl
warnings InsecureRequestWarning]
0 là False cho phương thức yêu cầu, chúng tôi đã quản lý để vô hiệu hóa kiểm tra chứng chỉ bảo mật và làm cho mã không có lỗi. Tuy nhiên, phương pháp này sẽ đưa ra các cảnh báo như hình trên. Để xử lý các cảnh báo trên ta phải dùng phương thức
/usr/local/lib/python3.7 /site
packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: //urllib3.readthedocs.io/en/latest/advanced
usage.html#ssl
warnings InsecureRequestWarning]
4. Cảnh báo bị loại bỏ bằng cách sử dụng phương thức
/usr/local/lib/python3.7 /site
packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: //urllib3.readthedocs.io/en/latest/advanced
usage.html#ssl
warnings InsecureRequestWarning]
5 khi tham số
/usr/local/lib/python3.7 /site
packages/urllib3/connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: //urllib3.readthedocs.io/en/latest/advanced
usage.html#ssl
warnings InsecureRequestWarning]
0 được đặt thành False

Hãy xem đoạn mã sau minh họa cách bạn có thể thoát khỏi cảnh báo

# Importing the requests module
import requests
from urllib3.exceptions import InsecureRequestWarning

# Handling the warnings from urllib3
requests.packages.urllib3.disable_warnings[category=InsecureRequestWarning]
# Sending a get http request to the specified url
response = requests.request[
    "GET", "//finxter.com/", verify=False]

# Printing the response
print[response]

# Output: 

Ghi chú. Khi chúng tôi chạy mã sau khi vô hiệu hóa kiểm tra chứng chỉ bảo mật cho các yêu cầu, cảnh báo sẽ được gửi đến trình bao cho biết- “xác thực chứng chỉ được khuyến khích mạnh mẽ“. Đó là bởi vì, trong các ứng dụng thời gian thực, các xác thực như vậy phải được thực hiện và do đó, chúng ta chỉ nên làm theo phương pháp mà chúng ta đang xem xét cho các kịch bản thử nghiệm được kiểm soát

Phương pháp 2. Sử dụng phiên. xác minh và Đặt nó là Sai

Chúng tôi có thể tắt kiểm tra chứng chỉ bảo mật cho các yêu cầu trong Python bằng cách đặt Session.verify thành False. Chỉ cần khai báo

# Importing the requests module
import requests
# Sending a get http request to the specified url
response = requests.request[
    "GET", "//finxter.com/", verify = False]
  
# Printing the response
print[response]
0 thay vì chuyển
# Importing the requests module
import requests
# Sending a get http request to the specified url
response = requests.request[
    "GET", "//finxter.com/", verify = False]
  
# Printing the response
print[response]
1. Hãy xem đoạn mã sau để chúng ta hiểu rõ hơn về cách giải quyết vấn đề

Giải pháp

# Importing requests
import requests

# Creating the session object and declaring the verify variable to False
session = requests.Session[]
session.verify = False

# Sending a get http request to the specified url
response = requests.get["//finxter.com/"]

# Printing the response data
print[response]

# OUTPUT: 

miếng ngon. Nếu bạn cố gắng in toàn bộ phản hồi do máy chủ trả về để xác minh xem kiểm tra chứng chỉ bảo mật đã bị vô hiệu hóa hay chưa thì bạn sẽ nhận được một trang đầy mã HTML theo đúng nghĩa đen. Điều này là không cần thiết và nó cũng có vẻ khó hiểu. Do đó, bạn nên in trạng thái phản hồi để kiểm tra xem các kiểm tra chứng chỉ bảo mật đã bị vô hiệu hóa hay chưa, trừ khi bạn có một yêu cầu khác khi bạn cần toàn bộ văn bản phản hồi. Tôi hy vọng bạn có điểm

Phần kết luận

Trong bài viết này, chúng tôi đã xem xét các phương pháp khác nhau để tắt kiểm tra chứng chỉ bảo mật cho các yêu cầu trong Python. Tôi hy vọng bạn thấy nó hữu ích. Hãy theo dõi và đăng ký để có thêm nhiều bài viết thú vị như vậy

Quét web với BeautifulSoup

Một trong những kỹ năng được tìm kiếm nhiều nhất trên Fiverr và Upwork là tìm kiếm trang web

Không phạm lỗi. trích xuất dữ liệu theo chương trình từ các trang web là một kỹ năng sống quan trọng trong thế giới ngày nay được định hình bởi web và công việc từ xa

Khóa học này hướng dẫn bạn thông tin chi tiết về thư viện BeautifulSoup của Python để tìm kiếm trên web

Shubham Sayon

Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking

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ự .

Làm cách nào để bỏ qua xác minh SSL?

Để bỏ qua xác thực chứng chỉ SSL cho máy chủ cục bộ và máy chủ thử nghiệm, bạn có thể chuyển tùy chọn -k hoặc --insecure cho lệnh Curl . Tùy chọn này thông báo rõ ràng cho Curl thực hiện các kết nối SSL và truyền tệp "không an toàn". Curl sẽ bỏ qua mọi cảnh báo bảo mật về chứng chỉ SSL không hợp lệ và chấp nhận nó là hợp lệ.

Làm cách nào để tắt xác minh SSL trong yêu cầu POST của Python?

Phương pháp 1. Bằng cách đặt xác minh = Sai . Chúng tôi có thể gửi yêu cầu HTTP đến các phương thức này vì mỗi phương thức chấp nhận một URL. Bạn có thể đặt tham số xác minh là Sai để tắt kiểm tra chứng chỉ bảo mật cho các yêu cầu trong Python.

Chủ Đề