অনুরোধ প্যাকেজটি ব্যবহার করার সময় এসএসএল ইনসিকিউরপ্ল্যাটফর্ম ত্রুটি


237

আমি পাইথন ২.7.৩ এবং অনুরোধগুলি ব্যবহার করছি। আমি পাইপের মাধ্যমে অনুরোধগুলি ইনস্টল করেছি। আমি বিশ্বাস করি এটি সর্বশেষতম সংস্করণ। আমি দেবিয়ান হুইজির উপর দৌড়াচ্ছি।

আমি অতীতে অনুরোধগুলি প্রচুর বার ব্যবহার করেছি এবং কখনও এই সমস্যার মুখোমুখি হই নি, তবে মনে হয় https অনুরোধ করার সময় Requestsআমি একটি InsecurePlatformব্যতিক্রম পাই ।

ত্রুটির উল্লেখ রয়েছে urllib3, তবে আমার এটি ইনস্টল নেই। এটি ত্রুটিটি সমাধান করেছে কিনা তা যাচাই করার জন্য আমি এটি ইনস্টল করেছি, তবে তা হয়নি।

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3
/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not
available. This prevents urllib3 from configuring SSL appropriately and 
may cause certain SSL connections to fail. For more information, see 
https://urllib3.readthedocs.org/en/latest  
/security.html#insecureplatformwarning.

এই ধারণাটি কেন পাচ্ছি? ত্রুটি বার্তায় উল্লিখিত হিসাবে আমি ডক্সটি পরীক্ষা করেছি, তবে ডক্স urllib3 আমদানি করতে বলে এবং হয় সতর্কতাটি অক্ষম করে দেয়, বা একটি শংসাপত্র সরবরাহ করে।

উত্তর:


390

কিছুটা লুকানো সুরক্ষা বৈশিষ্ট্য ব্যবহার করুন :

pip install requests[security] অথবা pip install pyOpenSSL ndg-httpsclient pyasn1

উভয় কমান্ড নিম্নলিখিত অতিরিক্ত প্যাকেজ ইনস্টল:

  • pyOpenSSL
  • ক্রিপ্টোগ্রাফি
  • idna

দয়া করে নোট করুন যে পাইথন -২. ..৯ + এর জন্য এটি প্রয়োজনীয় নয় ।

যদি pip installত্রুটিযুক্ত ব্যর্থ, চেক কিনা তোমার জন্য উন্নয়ন প্যাকেজ প্রয়োজনীয় আছে libffi, libsslএবং pythonআপনার সিস্টেমে ইনস্টল করা বন্টন প্যাকেজ ম্যানেজার ব্যবহার করে :

  • ডেবিয়ান / উবুন্টু - python-dev libffi-dev libssl-devপ্যাকেজগুলি।

  • ফেডোরা - openssl-devel python-devel libffi-develপ্যাকেজগুলি।

উপরের ডিস্ট্রো তালিকা অসম্পূর্ণ।

কার্যনির্বাহী ( @ টমডটটমের মূল উত্তরটি দেখুন ) :

আপনি যদি কিছু প্রয়োজনীয় বিকাশ প্যাকেজ ইনস্টল করতে না পারেন তবে সেই সতর্কতাটি অক্ষম করার একটি বিকল্পও রয়েছে:

import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()

যদি আপনার pipনিজেই আক্রান্ত হয় InsecurePlatformWarningএবং পাইপিআই থেকে কোনও কিছু ইনস্টল করতে না পারে তবে অতিরিক্ত অজগর প্যাকেজগুলি নিজেই স্থাপন করতে এই ধাপে ধাপে গাইডের সাহায্যে এটি ঠিক করা যেতে পারে ।


3
আমার কাছে অনুরোধ [সুরক্ষা], নতুন টার্মিনাল, পাইথন ২.7.৩ রয়েছে এবং এখনও এই ত্রুটিটি পেয়েছি
জোশ নানকিন

45
আপনাকে উবুন্টু / ডেবিয়ানের জন্য অতিরিক্ত লাইব্রেরি ইনস্টল করতে হবে:sudo apt-get install python-dev libffi-dev libssl-dev
Therealmarv

2
এটি কি ঠিক যে "পাইপ" নিজেই (v6.1 থেকে শুরু করে) একই সুরক্ষা সতর্কতা দেয়?
jmster

5
আপনার শেলের উপর নির্ভর করে, আপনাকে টাইপ করতে হতে পারেpip install 'requests[security]'
সি রিড

5
জেড শ্যালে, আপনাকে বলতে হবে: পাইপ ইনস্টল করার অনুরোধগুলি security [সুরক্ষা \]
আমির কাটজ

68

অনুরোধ 2.6 কেবলমাত্র স্টক এসএসএল মডিউলগুলি উপলভ্য পাইথনের ব্যবহারকারীদের জন্য 2.7.9 এর আগে এই সতর্কতাটি প্রবর্তন করেছিল।

ধরে নিই যে আপনি পাইথনের আরও নতুন সংস্করণে আপগ্রেড করতে পারবেন না, এটি আরও অদ্বিতীয় পাইথন এসএসএল লাইব্রেরি ইনস্টল করবে:

pip install --upgrade ndg-httpsclient 

যাইহোক, পাইওপেনএসএসএল-এর বিল্ড-নির্ভরতা ছাড়াই এটি কয়েকটি সিস্টেমে ব্যর্থ হতে পারে। ডিবিয়ান সিস্টেমগুলিতে পাইপ ওএসএনএসএল তৈরি করার জন্য উপরের পাইপ কমান্ডের আগে এটি চালানো যথেষ্ট হবে:

apt-get install python-dev libffi-dev libssl-dev

4
উবুন্টু ১৪.০৪ এর জন্য আমার এই প্যাকেজগুলি 'পাইথন-ডেভ লিব্ফি-ডেভ লিবসেল-ডেভ' ইনস্টল করা দরকার।
অ্যান্ডি

ধন্যবাদ! আমি ডকুমেন্টেশনে একটি নোট যুক্ত করেছি: github.com/shazow/urllib3/pull/765
ওল্ফগ্যাং

@ জেসিকা এফটিডব্লিউ! অনেক ধন্যবাদ - এটি বিরক্তিকর ছিল।
নিল ম্যাগি

18

আমি এটি উত্পাদনে ব্যবহার করি না, কেবল কিছু পরীক্ষার রানার। এবং urllib3 ডকুমেন্টেশন পুনরাবৃত্তি করতে

আপনি যদি জানেন যে আপনি কী করছেন এবং এটি এবং অন্যান্য সতর্কতাগুলি অক্ষম করতে চান

import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()

সম্পাদনা / আপডেট:

নিম্নলিখিতগুলিতেও কাজ করা উচিত:

import logging
import requests

# turn down requests log verbosity
logging.getLogger('requests').setLevel(logging.CRITICAL)

1
এই সমাধানটির সমস্যাটি হ'ল এটি কেবল আসল সমস্যাটিকে দমন করে এবং উপেক্ষা করে। তদ্ব্যতীত, প্যাকেজ ইনস্টল বা আপগ্রেড করতে পাইপ ব্যবহার করার সময় এটি কাজ করবে না।
জেসন পারহাম

1
উবুন্টু 1404 / পাইথন 2.7.6 এ আমার জন্য একমাত্র সমাধান কাজ করে। ধন্যবাদ
Ignacio Vazquez

7

যদি আপনি আপনার পাইথন সংস্করণটি ২.7.৯ এ আপগ্রেড করতে না সক্ষম হন এবং সতর্কতাগুলি দমন করতে চান,

আপনি আপনার 'অনুরোধগুলি' সংস্করণটি 2.5.3 এ ডাউনগ্রেড করতে পারেন :

sudo pip install requests==2.5.3

আমাদের সম্পর্কে সংস্করণ: http://fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html


8
দয়া করে নোট করুন যে 2.5.3 পুনর্নির্দেশের সময় কুকি হ্যান্ডলিংয়ের সাথে সুরক্ষা সমস্যা রয়েছে।
প্লেস

2
এই উত্তরটি দু'বার পোস্ট করার পরিবর্তে আপনার অন্য পোস্টটিকে নকল হিসাবে ফ্ল্যাগ করা উচিত ছিল। আমি এখন এটি বন্ধ হিসাবে আছে।
মার্টিজন পিটারস

6
আমি জানা দুর্বলতার কারণে মন্তব্যটি ডাউনগ্রেড না করার পক্ষে দ্বিতীয়টি ।
সার্জিওপিরির

7

আসলে, আপনি এটি চেষ্টা করতে পারেন।

requests.post("https://www.google.com", verify=False)

আপনি অনুরোধের জন্য কোড পড়তে পারেন।

"C:\Python27\Lib\site-packages\requests\sessions.py"

class Session(SessionRedirectMixin):
......
 def request(self, method, url,
    params=None,
    data=None,
    headers=None,
    cookies=None,
    files=None,
    auth=None,
    timeout=None,
    allow_redirects=True,
    proxies=None,
    hooks=None,
    stream=None,
    verify=None,  # <========
    cert=None):
    """
    ...
    :param verify: (optional) if True, the SSL cert will be verified.
         A CA_BUNDLE path can also be provided.
    ...
    """

2
এটি করতে খুব সতর্কতা অবলম্বন করুন, শংসাপত্রগুলি যাচাই না করা বিপজ্জনক হতে পারে!
জাপজ

অবশ্যই, শংসাপত্রগুলি যাচাই করা বিপজ্জনক হবে। তবে কখনও কখনও, এটি একটি শেষ অবলম্বন। উদাহরণস্বরূপ: ইজি_ইনস্টল, অ্যাপটি-গেট, ইয়াম বা পাইপ ... দৌড়াবেন না, বা একটি সামান্য ওয়েব ক্রলার করুন ...
zzzz zzzz

1
আমি একটি শেয়ার্ড হোস্টিংয়ের পরিবেশে রয়েছি তাই আমি পাইথনটিকে ২.7.৯ এ উন্নীত করতে পারছি না এবং আমি পাইপ ইনস্টল অনুরোধগুলি [সুরক্ষা] এবং অন্যান্য পিপ ইনস্টল বৈকল্পিকের জন্য প্রয়োজনীয় যা অ্যাপ্লিকেশন দিয়ে libffi.pc ইনস্টল করতে পারি না which উপরে। সুতরাং এই উত্তরটি আমার পক্ষে কাজ করেছিল। যতক্ষণ আপনি এই গুরুত্বপূর্ণ সতর্কতা অবধি বুঝতে পারছেন যে https যাচাইকরণ ব্যতীত পৃষ্ঠাগুলি পরিবর্তন করা / ছদ্মবেশী হতে পারে, আমি মনে করি এই উত্তরটি ঠিক আছে।
চিরায়েল

5

এখানে প্রদত্ত সমস্ত সমাধানের সাহায্য হয়নি (আমি পাইথন ২.6..6 এর প্রতিবন্ধী)। পাইপ পাস করার জন্য আমি একটি সাধারণ সুইচে উত্তর পেয়েছি:

$ sudo pip install --trusted-host pypi.python.org <module_name>

এটি পাইপকে বলে যে পাইপাই.পিথন.অর্গ থেকে মডিউলটি দখল করা ঠিক আছে।

আমার জন্য সমস্যাটি আমার কোম্পানির ফায়ারওয়ালের পিছনের প্রক্সি যা এটি কিছু সার্ভারে দূষিত ক্লায়েন্টের মতো দেখায়। সুরক্ষা সুরক্ষা।


আপডেট: পিপিআই ডোমেনগুলির পরিবর্তনের জন্য অ্যালেক্সের উত্তর এবং --trusted-hostযুক্ত করা যেতে পারে এমন অতিরিক্ত বিকল্পগুলি দেখুন। (আমি এখানে অনুলিপি / পেস্ট করতাম তবে তার উত্তর, তাই তাকে +1)


এই কমান্ডটি ব্যবহার করে আমি অবশেষে টেনসরফ্লো ইনস্টল করতে পারলাম, অনেক অনেক ধন্যবাদ!
পেড্রোবিস্প

3

এই উত্তরটি সম্পর্কিত নয়, তবে আপনি যদি সতর্কতা থেকে মুক্তি পেতে এবং অনুরোধগুলি থেকে নিম্নলিখিত সতর্কতা পেতে চান:

InsecurePlatformWarning /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

আপনার অজগর কোডটিতে নিম্নলিখিত লাইনটি যুক্ত করে আপনি এটি অক্ষম করতে পারেন :

requests.packages.urllib3.disable_warnings()


এর জন্য ধন্যবাদ. অন্য কোনও উত্তর আমার পক্ষে কাজ করেনি। আমি দূরে সরে এসেছি যে ডিফল্টরূপে এমন একটি ভার্বোজ বিরক্তিকর বার্তা প্রবেশ করানো হবে।
ড্যান

1

আমাকে bashপ্রথমে (জেডএসএইচ) যেতে হয়েছিল । তারপর

sudo -H pip install 'requests[security]' --upgrade

সমস্যা সমাধান।


আমি নিশ্চিত নই. আমি মনে করি এটি বন্ধনীগুলির কারণে হয়েছে
মার্টিন থোমা

1

এই গত সপ্তাহে (পাইথন 2.7.6 সঙ্গে) উবুন্টু 14.04 তে আমার জন্য পর আমি একটি করেনি apt-get dist-upgradeযে অন্তর্ভুক্ত libssl1.1:amd64থেকে deb.sury.org

যেহেতু আমি certbot-auto renewক্রোন জব থেকে চালাচ্ছি , তাই আমি --no-self-upgradeনির্ধারিত রক্ষণাবেক্ষণ কাটাতেও ব্যবহার করি । মনে হয় এটাই সমস্যার উত্স ছিল।

ত্রুটিটি ঠিক করতে, আমাকে যা করতে হবে তা হ'ল রুটে পরিণত হওয়া ( suএর --loginস্যুইচ দিয়ে) এবং certbot-autoনিজেই আপগ্রেড করতে দেওয়া। অর্থাৎ,

sudo su --login
/usr/local/bin/certbot-auto renew 
# ... Upgrading certbot-auto 0.8.1 to 0.18.2... blah blah blah ...

রুটের ক্রন্টব থেকে সাধারণত যা চলে তার পরিবর্তে:

5 7 * * * /usr/local/bin/certbot-auto renew --quiet --no-self-upgrade

এর পরে, লেটসক্রিপ্টের পুনর্নবীকরণগুলি আবার একবার সাধারণভাবে চলল।


আমি এখানে বর্ণিত একই সমস্যা পেয়েছি। সতর্কতা: /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py split22: ইনসিকিউরপ্ল্যাটফর্ম সতর্কতা: একটি সত্য এসএসএল কনটেক্সট অবজেক্ট উপলভ্য নয়। এটি urllib3 কে যথাযথভাবে এসএসএল কনফিগার করতে বাধা দেয় এবং নির্দিষ্ট এসএসএল সংযোগগুলি ব্যর্থ হতে পারে। এটি সমাধানের জন্য আপনি পাইথনের একটি নতুন সংস্করণে আপগ্রেড করতে পারেন। আরও তথ্যের জন্য, urllib3.readthedocs.io/en/latest/… দেখুন । ইনসিকিউরপ্ল্যাটফর্ম ওয়ার্নিং আমি কেবল কমান্ডটি টাইপ করেছি: sudo apt-get dist-up ত্রুটিটি ঠিক করা হয়েছিল।
দিদিহর

0

আমার কোন কাজ করার জন্য আমার আপগ্রেড পাইপ লাগবে না ....

Debian / Ubuntu-

নির্ভরতা ইনস্টল করুন

sudo apt-get install libpython-dev libssl-dev libffi-dev

পাইপ আপগ্রেড করুন এবং প্যাকেজ ইনস্টল করুন

sudo pip install -U pip
sudo pip install -U pyopenssl ndg-httpsclient pyasn1

আপনি যদি নির্ভরতা অপসারণ করতে চান

sudo apt-get remove --purge libpython-dev libssl-dev libffi-dev
sudo apt-get autoremove

0

আমার ঠিক একটি সেন্টোস 5 সার্ভারে অনুরূপ সমস্যা ছিল যেখানে আমি পাইথন 2.7 এর অনেক পুরানো সংস্করণের উপরে / ইউএসআর / লোকালতে পাইথনটি 2.7.12 ইনস্টল করেছি। CentOS 6 বা 7 এ আপগ্রেড করা এখনই এই সার্ভারে কোনও বিকল্প নয়।

পাইথনের কয়েকটি 2.7 মডিউল এখনও পাইথনের পুরাতন সংস্করণ থেকে বিদ্যমান ছিল, তবে পাইপ আপগ্রেড করতে ব্যর্থ হয়েছিল কারণ নতুন ক্রিপ্টোগ্রাফি প্যাকেজটি সেন্টোস 5 প্যাকেজ দ্বারা সমর্থিত নয়।

বিশেষত, 'পাইপ ইনস্টল অনুরোধগুলি [সুরক্ষা]' ব্যর্থ হচ্ছিল কারণ সেন্টোস 5 এ ওপেনসেল সংস্করণটি 0.9.8e ছিল যা আর ক্রিপ্টোগ্রাফি> 1.4.0 দ্বারা সমর্থিত নয়।

ওপিএসের মূল সমস্যাটি সমাধান করার জন্য আমি করেছি:

1) pip install 'cryptography<1.3.5,>1.3.0'.  

এই ইনস্টল করা ক্রিপ্টোগ্রাফি 1.3.4 যা ওপেনএসএল-0.9.8e এর সাথে কাজ করে। ক্রিপটোগ্রাফি 1.3.4 নিম্নলিখিত কমান্ডের প্রয়োজনীয়তা পূরণের জন্যও যথেষ্ট।

2) pip install 'requests[security]'

এই কমান্ডটি এখন ইনস্টল করে কারণ এটি ক্রিপ্টোগ্রাফি> 1.4.0 ইনস্টল করার চেষ্টা করে না।

নোট করুন যে সেন্টোস 5 এ আমারও দরকার ছিল:

yum install openssl-devel

ক্রিপ্টোগ্রাফি নির্মাণের অনুমতি দেওয়ার জন্য


0

নীচে পাইথন ৩.6 এ এটি আমার জন্য কীভাবে কাজ করছে:

import requests
import urllib3

# Suppress InsecureRequestWarning: Unverified HTTPS
urllib3.disable_warnings()


0

যদি আপনি কেবল অনিরাপদ সতর্কতা বন্ধ করতে চান তবে:

/usr/lib/python3/dist-packages/urllib3/connectionpool.py:794: অনিরাপদ রক্ষণাবেক্ষণ সতর্কতা: যাচাই করা হয়নি HTTPS অনুরোধ করা হচ্ছে। শংসাপত্র যাচাইকরণ যুক্ত করার জন্য দৃ strongly়ভাবে পরামর্শ দেওয়া হচ্ছে। দেখুন: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning)

একটি করুন:

requests.METHOD("https://www.google.com", verify=False)

যাচাই = মিথ্যা

এটি কী, অনুসরণগুলি এতে ভাল নয়:

requests.packages.urllib3.disable_warnings ()

অথবা

urllib3.disable_warnings ()

তবে, আপনার জানা আছে, এটি সম্ভাব্য সুরক্ষা ঝুঁকির কারণ হতে পারে


0

আমার
ম্যাক
পাইচার্ম সম্প্রদায় সংস্করণ 2019.3
পাইথন দোভাষী 3.6 নিয়ে একই সমস্যা ছিল ।
20.0.2 দিয়ে পাইপ আপগ্রেড করা আমার পক্ষে কাজ করেছে।
Pycharm --> Preferences --> Project Interpreter --> click on pip --> specify version 20.0.2 --> Install package

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.