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

מתוך ויקי נטפרי
קפיצה לניווט קפיצה לחיפוש
(add neetfree pem to docker with ruby image)
שורה 14: שורה 14:
 
להלן הוראות עבור Dockerfile למערכות מבוססות אובנטו וAlphin, למערכות אחרות יש לבדוק את המקבילות לכל פעולה.
 
להלן הוראות עבור Dockerfile למערכות מבוססות אובנטו וAlphin, למערכות אחרות יש לבדוק את המקבילות לכל פעולה.
  
===התקנת תעודת אבטחה בתמונה מבוססת אובנטו===
+
===התקנת תעודת אבטחה בתמונות הנפוצות===
  
 
יש להוסיף את השורות הבאות לDockerfile, מתחת לשורת הFROM (במידה ואתם יודעים את טיב הפעולות תוכלו לשים אותו מאוחר ככל היותר לפני השלב הראשון בו נצרכת התעודה):
 
יש להוסיף את השורות הבאות לDockerfile, מתחת לשורת הFROM (במידה ואתם יודעים את טיב הפעולות תוכלו לשים אותו מאוחר ככל היותר לפני השלב הראשון בו נצרכת התעודה):
  
  # --- NETFREE CERT INSALL---
+
# --- NETFREE CERT INTSALL ---
  RUN apt-get update -y
+
ADD https://s1.netfree.link/dl/unix-ca.sh /home/netfree-unix-ca.sh
  RUN apt-get install -y ca-certificates curl
+
RUN cat  /home/netfree-unix-ca.sh | sh
 
+
ENV NODE_EXTRA_CA_CERTS=/etc/ca-bundle.crt
  ADD http://api.internal.netfree.link/ca/netfree-ca.crt /usr/local/share/ca-certificates/netfree-ca.crt
+
ENV REQUESTS_CA_BUNDLE=/etc/ca-bundle.crt
     
+
ENV SSL_CERT_FILE=/etc/ca-bundle.crt
  RUN update-ca-certificates
+
# --- END NETFREE CERT INTSALL ---
 
 
  ENV NODE_EXTRA_CA_CERTS /etc/ssl/certs/ca-certificates.crt
 
  # --- END NETFRE CERT INSALL ----
 
  
במקרה הזה הוגדר המשתנה סביבה NODE_EXTRA_CA_CERTS לפתור גם תעודת אבטחה ליישומים מבוססי נוד.
+
התעודה נבדקה על תמונות מבוססות ubuntu,alpine,centos
 +
וזה מגדיר גם משתני סביבה להפעלה תקינה של python ו nodejs
  
 
===התקנת תעודת אבטחה בתמונה מבוססת Alphin===
 
===התקנת תעודת אבטחה בתמונה מבוססת Alphin===

גרסה מ־15:20, 18 במרץ 2021

For English click here

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

עמוד ראשי > תעודת האבטחה > התקנת תעודה ב-Docker ‎‎


Docker הינה תוכנה שמאפשרת לבנות סביבות הרצה עצמאיות על גבי מערכת הפעלה.

שגיאות אבטחה ביישומים והרצות מתוך הקונטיינר

קונטיינר של Docker מספק סביבה עצמאית - כמין מחשב חדש בפני עצמו.

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

רוב התמונות מבוססות linux, ולכן ההתקנה אמורה להיות בהם דומה. ניתן להתקין בקונטיינר באותם דרכים שמריצים בו כל פקודה: או ע"י RUN בבניית התמונה, או ע"י exce מאוחר יותר. להלן הוראות עבור Dockerfile למערכות מבוססות אובנטו וAlphin, למערכות אחרות יש לבדוק את המקבילות לכל פעולה.

התקנת תעודת אבטחה בתמונות הנפוצות

יש להוסיף את השורות הבאות לDockerfile, מתחת לשורת הFROM (במידה ואתם יודעים את טיב הפעולות תוכלו לשים אותו מאוחר ככל היותר לפני השלב הראשון בו נצרכת התעודה):

# --- NETFREE CERT INTSALL ---
ADD https://s1.netfree.link/dl/unix-ca.sh /home/netfree-unix-ca.sh 
RUN cat  /home/netfree-unix-ca.sh | sh
ENV NODE_EXTRA_CA_CERTS=/etc/ca-bundle.crt
ENV REQUESTS_CA_BUNDLE=/etc/ca-bundle.crt
ENV SSL_CERT_FILE=/etc/ca-bundle.crt
# --- END NETFREE CERT INTSALL ---

התעודה נבדקה על תמונות מבוססות ubuntu,alpine,centos וזה מגדיר גם משתני סביבה להפעלה תקינה של python ו nodejs

התקנת תעודת אבטחה בתמונה מבוססת Alphin

 # --- NETFREE CERT INSALL---
 RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
 
 ADD http://api.internal.netfree.link/ca/netfree-ca.crt /usr/local/share/ca-certificates/netfree-ca.crt
     
 RUN update-ca-certificates
 
 ENV NODE_EXTRA_CA_CERTS /etc/ssl/certs/ca-certificates.crt
 # --- END NETFRE CERT INSALL ----

התקנת תעודת אבטחה ב image מבוסס Ruby (לדוג: ruby:2.4.1)

ADD http://api.internal.netfree.link/ca/netfree-ca.crt /usr/local/share/ca-certificates/netfree-ca.crt

RUN chmod 644 /usr/local/share/ca-certificates/netfree-ca.crt && update-ca-certificates

במקרה בעיה, ולהוראות מתאימות לתמונות אחרות

כמובן שלכל תמונה ויישומים שבתוכה יש את הדרך שלה, במקרה שאתם מתקשים היעזרו במערכת הפניות (כללו תמיד בפניה את תוכן/קובץ הdockerfile במידת האפשר, ולפחות את שם תבנית התמונה, ולוג מלא ככל האפשר של השגיאה).

נסו גם להיעזר בפורומים טכניים.

שגיאות ברמת תוכנת הDocker עצמה

תוכנת Docker עצמה משתמשת באינטרנט עבור הורדה של תמונה מהDocker hub או מקור אינטרנטי אחר, בדרך כלל פעולה זו לא נתקלת בשגיאה של תעודת אבטחה כי התכונה מסתמכת על מאגר התעודות המותקן במחשב.

אם אתם נתקלים בשגיאה בשלב הזה (בד"כ בשורת FROM של קובץ Dockerfile או בפקודת docker pull או docker run), השגיאה נראית ככה:

Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority

או

Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority.
  • ראשית ודאו שהתקנתם את התעודה של נטפרי במערכת שלכם (אם זה עתה התקנתם את התעודה, יש להפעיל מחדש את הDocker, הפעלת המחשב מחדש כמובן גם טובה).
  • אם מדובר בהתקנה של Docker Toolbox, אז לא די בתעודה ברמת המערכת הפעלה כי מערכת זו עושה שימוש במערכת וירטואלית לפעולות של Docker עצמה.

במקרה זה הפעילו את הטרמינל של Docker והריצו בו את הפקודות הבאות:

docker-machine ssh default
curl -L http://api.internal.netfree.link/ca/netfree-ca.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt /var/lib/boot2docker/certs
sudo /etc/init.d/docker restart 
exit