התקנת תעודה בפייתון - ספריית requests: הבדלים בין גרסאות בדף

מתוך ויקי נטפרי
קפיצה לניווט קפיצה לחיפוש
 
(13 גרסאות ביניים של 7 משתמשים אינן מוצגות)
שורה 5: שורה 5:
  
 
ספריית [https://pypi.org/project/requests/ requests] משתמשת בשירותי ספריית [https://pypi.org/project/certifi/ certifi] עבור אימות תעודות אבטחה. הוראות אלו תקפות עבור כל ספרייה שמשתמשת בספריית certifi (רשימה חלקית [https://libraries.io/pypi/certifi/dependents כאן]).
 
ספריית [https://pypi.org/project/requests/ requests] משתמשת בשירותי ספריית [https://pypi.org/project/certifi/ certifi] עבור אימות תעודות אבטחה. הוראות אלו תקפות עבור כל ספרייה שמשתמשת בספריית certifi (רשימה חלקית [https://libraries.io/pypi/certifi/dependents כאן]).
 +
 +
'''הנ"ל תקף גם לגבי ספריית zeep לתקשורת מול API בפרוטוקול SOAP.'''
  
  
שורה 12: שורה 14:
 
  setx REQUESTS_CA_BUNDLE '''%ProgramData%\NetFree\CA\netfree-ca-bundle-curl.crt''' -m
 
  setx REQUESTS_CA_BUNDLE '''%ProgramData%\NetFree\CA\netfree-ca-bundle-curl.crt''' -m
  
ב- linux, אם התקנתם את התעודה לפי ההוראות [[התקנת תעודה במערכת ההפעלה Ubuntu|כאן]], תוכלו להריץ פקודה זו:
+
ב- linux, אם התקנתם את התעודה לפי ההוראות [[התקנת תעודה במערכת ההפעלה Ubuntu|כאן]], תוכלו לערוך את קובץ הפרופיל (‎/etc/profile) ולהוסיף בסופו את השורה הבאה:
  
 
  export REQUESTS_CA_BUNDLE='''/usr/lib/ssl/certs/ca-certificates.crt'''
 
  export REQUESTS_CA_BUNDLE='''/usr/lib/ssl/certs/ca-certificates.crt'''
 +
ב- mac , הורידו את  קובץ התעודות של נטפרי מ[https://netfree.link/cacert/cacert-bundle-curl-plus-netfree.pem כאן] ושמרו במקום קבוע במחשב .
 +
 +
לאחר מכן צריך להוסיף בקובץ הפרופיל של שורת הפקודה בה אתם משתמשים משתנה סביבה שיצביע על התעודות של נטפרי .
 +
 +
*אם אתם משתמשים ב-'''bash''', קובץ הפרופיל נמצא בנתיב <code>bash_profile./~</code>  או בנתיב <code>bashrc./~</code>
 +
 +
*אם אתם משתמשים ב-'''zsh''' (ברירת המחדל מ-Catalina 10.15 ואילך), קובץ הפרופיל נמצא בנתיב <code>zshenv./~</code>
  
 +
*אם אתם משתמשים ב-'''Oh my zsh''', קובץ הפרופיל נמצא בנתיב <code>zshrc./~</code>
  
 +
ניתן להשתמש בפקודה הבאה כדי להוסיף בקובץ הפרופיל את  ההגדרה הנ<nowiki>''</nowiki>ל ,
 +
 +
יש לשנות את zshenv./~ לנתיב של קובץ הפרופיל של הטרמינל בו אתם משתמשים וכמובן לשנות את <code>path/to/curl-ca-bundle.pem/</code> לנתיב בו שמרתם את קובץ התעודות .
 +
echo export REQUESTS_CA_BUNDLE=/path/to/curl-ca-bundle.pem >> ~/.zshenv
 +
'''לאחר מכן יש להפעיל חלון טרמינל חדש.'''
 +
<br />
 
===אפשרות נוספת===
 
===אפשרות נוספת===
  
*הורידו את תעודת ספק נטפרי הנוכחי מ[http://netfree.link/netfree-ca.crt כאן].
+
*הורידו את תעודת ספק נטפרי הנוכחי מ[https://netfree.link/netfree-ca.crt כאן].
 
*שמרו את הקובץ במקום כלשהו במחשב.
 
*שמרו את הקובץ במקום כלשהו במחשב.
 
*רשמו את נתיב הקובץ המלא (לשם הדגמה, נקרא לנתיב <code>‎/path/to/netfree.crt</code>).
 
*רשמו את נתיב הקובץ המלא (לשם הדגמה, נקרא לנתיב <code>‎/path/to/netfree.crt</code>).
  
=====שיטה א=====
+
=====השיטה הראשונה=====
 
פקודה זו תדפיס את נתיב '''קובץ התעודות''' שבו מתבצע שימוש בחבילת requests:
 
פקודה זו תדפיס את נתיב '''קובץ התעודות''' שבו מתבצע שימוש בחבילת requests:
 
  python -c "import requests; print(requests.certs.where());"
 
  python -c "import requests; print(requests.certs.where());"
העתיקו לסוף הקובץ את התוכן של תעודת נטפרי באמצעות פקודה זו (לשם ההמחשה ,ההנחה היא ש <code>‎/path/to/bunele.pem</code> הוא נתיב קובץ התעודות):
+
העתיקו לסוף הקובץ את התוכן של תעודת נטפרי באמצעות פקודה זו (לשם ההמחשה ,ההנחה היא ש <code>‎/path/to/bundle.pem</code> הוא נתיב קובץ התעודות):
  
 
win:
 
win:
שורה 35: שורה 51:
  
  
=====שיטה ב=====
+
=====השיטה השניה=====
 
בתוך קוד הpython שאתם כותבים, לאחר ייבוא המודול באמצעות <code>import requests</code>, הוסיפו את השורות הבאות (החליפו את <code>‎/path/to/netfree.crt</code> בנתיב שבו תשמרו את הקובץ באופן קבוע):
 
בתוך קוד הpython שאתם כותבים, לאחר ייבוא המודול באמצעות <code>import requests</code>, הוסיפו את השורות הבאות (החליפו את <code>‎/path/to/netfree.crt</code> בנתיב שבו תשמרו את הקובץ באופן קבוע):
 
  def my_where():
 
  def my_where():
שורה 44: שורה 60:
 
==קישורים חיצוניים==
 
==קישורים חיצוניים==
 
[https://stackoverflow.com/questions/10667960 אפשרויות נוספות ודיון, באתר stackoverflow.com]
 
[https://stackoverflow.com/questions/10667960 אפשרויות נוספות ודיון, באתר stackoverflow.com]
 +
 +
https://gitlab.com/alelec/python-certifi-win32

גרסה אחרונה מ־16:46, 3 באפריל 2024

For English click here

למעבר מתצוגת עריכה לתצוגת קריאה

עמוד ראשי > תעודת האבטחה > התקנת תעודה בפייתון - ספריית requests ‎‎


ספריית requests משתמשת בשירותי ספריית certifi עבור אימות תעודות אבטחה. הוראות אלו תקפות עבור כל ספרייה שמשתמשת בספריית certifi (רשימה חלקית כאן).

הנ"ל תקף גם לגבי ספריית zeep לתקשורת מול API בפרוטוקול SOAP.


אפשרות מומלצת

במערכות windows, לאחר התקנת תוכנית ההתקנה של תעודת האבטחה יש להריץ בשורת הפקודה בהרשאות ניהול את הפקודה הבאה:

setx REQUESTS_CA_BUNDLE %ProgramData%\NetFree\CA\netfree-ca-bundle-curl.crt -m

ב- linux, אם התקנתם את התעודה לפי ההוראות כאן, תוכלו לערוך את קובץ הפרופיל (‎/etc/profile) ולהוסיף בסופו את השורה הבאה:

export REQUESTS_CA_BUNDLE=/usr/lib/ssl/certs/ca-certificates.crt

ב- mac , הורידו את קובץ התעודות של נטפרי מכאן ושמרו במקום קבוע במחשב .

לאחר מכן צריך להוסיף בקובץ הפרופיל של שורת הפקודה בה אתם משתמשים משתנה סביבה שיצביע על התעודות של נטפרי .

  • אם אתם משתמשים ב-bash, קובץ הפרופיל נמצא בנתיב bash_profile./~ או בנתיב bashrc./~
  • אם אתם משתמשים ב-zsh (ברירת המחדל מ-Catalina 10.15 ואילך), קובץ הפרופיל נמצא בנתיב zshenv./~
  • אם אתם משתמשים ב-Oh my zsh, קובץ הפרופיל נמצא בנתיב zshrc./~

ניתן להשתמש בפקודה הבאה כדי להוסיף בקובץ הפרופיל את ההגדרה הנ''ל ,

יש לשנות את zshenv./~ לנתיב של קובץ הפרופיל של הטרמינל בו אתם משתמשים וכמובן לשנות את path/to/curl-ca-bundle.pem/ לנתיב בו שמרתם את קובץ התעודות .

echo export REQUESTS_CA_BUNDLE=/path/to/curl-ca-bundle.pem >> ~/.zshenv

לאחר מכן יש להפעיל חלון טרמינל חדש.

אפשרות נוספת

  • הורידו את תעודת ספק נטפרי הנוכחי מכאן.
  • שמרו את הקובץ במקום כלשהו במחשב.
  • רשמו את נתיב הקובץ המלא (לשם הדגמה, נקרא לנתיב ‎/path/to/netfree.crt).
השיטה הראשונה

פקודה זו תדפיס את נתיב קובץ התעודות שבו מתבצע שימוש בחבילת requests:

python -c "import requests; print(requests.certs.where());"

העתיקו לסוף הקובץ את התוכן של תעודת נטפרי באמצעות פקודה זו (לשם ההמחשה ,ההנחה היא ש ‎/path/to/bundle.pem הוא נתיב קובץ התעודות):

win:

type C:\path\to\netfree.pem>>C:\path\to\bundle.pem 

linux:

cat /path/to/netfree.crt >> /path/to/bundle.pem

או ידנית באמצעות עורך טקסט (מומלץ לשמור עותק של הקובץ המקורי).


השיטה השניה

בתוך קוד הpython שאתם כותבים, לאחר ייבוא המודול באמצעות import requests, הוסיפו את השורות הבאות (החליפו את ‎/path/to/netfree.crt בנתיב שבו תשמרו את הקובץ באופן קבוע):

def my_where():
    return '/path/to/netfree.crt'
requests.certs.where = my_where


קישורים חיצוניים

אפשרויות נוספות ודיון, באתר stackoverflow.com

https://gitlab.com/alelec/python-certifi-win32