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

מתוך ויקי נטפרי
קפיצה לניווט קפיצה לחיפוש
שורה 63: שורה 63:
 
יש להריץ את הסקריפט כ'''מנהל''' ב'''Windows PowerShell (ולא בcmd)'''
 
יש להריץ את הסקריפט כ'''מנהל''' ב'''Windows PowerShell (ולא בcmd)'''
  
  $certs = @(Get-Childitem -Path "C:\Program files" -Include *cacerts* -Exclude *.pem -File -Recurse -ErrorAction SilentlyContinue);$keytool = Get-Childitem -Path "C:\Program files" -filter keytool.exe -Recurse -ErrorAction SilentlyContinue | Select -First 1; foreach ( $cert in $certs ){& "$keytool" -import -trustcacerts -alias netfree-ca$(date -format dMyyhm) -file C:\ProgramData\NetFree\CA\netfree-ca-last.crt -keystore $cert -storepass changeit -noprompt}
+
  $certs = @(Get-Childitem –Path "C:\Program files", "C:\Program Files (x86)" -filter cacerts -Recurse -ErrorAction SilentlyContinue);$keytool = Get-Childitem -Path "C:\Program files", "C:\Program Files (x86)" -filter keytool.exe -Recurse -ErrorAction SilentlyContinue | Select -First 1; foreach ( $cert in $certs ){& "$keytool" -import -trustcacerts -alias netfree-ca$(date -format dMyyhm) -file C:\ProgramData\NetFree\CA\netfree-ca-last.crt -keystore $cert -storepass changeit -noprompt}
  
 
הסקריפט מתקין את התעודה עם שם ייחודי מה שמאפשר התקנה מחדש של התעודה במקרה של החלפת ספק.<br>
 
הסקריפט מתקין את התעודה עם שם ייחודי מה שמאפשר התקנה מחדש של התעודה במקרה של החלפת ספק.<br>

גרסה מ־20:44, 8 ביוני 2022

For English click here

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

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



עדכון: בתאריך כ"ח ניסן תשע"ט / 3 במאי 2019, יצאה תוכנה חדשה להתקנת התעודה, התוכנה החדשה מתקינה את התעודה אוטומטית גם עבור סביבת ההרצה של Java



סביבת ההרצה של Java

סביבת ההרצה של Java לא משתמשת במאגר תעודות האבטחה של מערכת ההפעלה אלא במאגר עצמאי ובפורמט ייחודי עבור JAVA, לכן - כדי שתוכנות מבוססות Java (לדוגמא Eclipse) יוכלו לגשת לאתרים מאובטחים - יש צורך להתקין תעודת אבטחה עבור Java בנפרד באמצעות הכלי הייעודי המגיע כחלק מהJVM.

הורידו את תעודת האבטחה של הספק הנוכחי דרכו אתם מחוברים מכאן: https://netfree.link/netfree-ca.crt

במערכות windwows, במקרה שהתקנתם את תוכנת ההתקנה של תעודת האבטחה, התעודה כבר קיימת במיקום הבא:

%ProgramData%\NetFree\CA\netfree-ca-last.crt

אחרי שנתיב מיקום התעודה ידוע לכם, יש להפעיל שורת פקודה - CMD בחלון שורת פקודה המופעל כמנהל, ולעבור לתיקייה שבו קיימת התוכנה keytool - הכלי הייעודי עבור הוספת תעודת אבטחה למאגר התעודות הפומרט הייחודי לJAVA.

ה-keytool ממוקם במיקום הבא:

%JAVA_HOME%\bin

או במילים אחרות:

C:\Program Files\Java\jdk<הגירסה המותקנת אצלכם>\bin

לאחר שנווטתם את שורת הפקודה למיקום הkeytool ובדקתם שהוא קיים במיקום זה (על ידי הרצת הפקודה keytool ובדיקת הפלט, או הרצה ישירה בכל מיקום שבו תהיו של הפקודה "JAVA_HOME%\bin\keytool%")

כתבו את הפקודה הבאה (שימו לב למיקום המדויק של קובץ תעודת האבטחה):

keytool -importcert -trustcacerts -alias netfree-ca -file %ProgramData%\NetFree\CA\netfree-ca-last.crt -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit -noprompt

פלט הפקודה צריך להיות כזה:

certificate added to the keystore.

בכל מקרה שהפלט לא כזה, כדאי לבדוק את הפלט המופיע לעומק ולראות איזה נתון לא תקין.

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

פקודה עבור מחשבי מאק / לינוקס

KEYSTORE=/path/to/cacerts
curl -sL https://netfree.link/netfree-ca.crt |  keytool -importcert -trustcacerts -alias netfree-ca-$(date "+%m%d%H%M%S")  -keystore $KEYSTORE -storepass changeit -noprompt

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

תוכנות מבוססות JAVA

לפעמים תוכנות מבוססות JAVA מתקינות סביבת הרצה פרטית של JAVA בתוך תיקיית התוכנה ב-Program Files במקום להשתמש בסביבה שמותקנת כבר (למשל כל התוכנות של חברת intelij (שזה כולל android studio)). במקרה זה יש צורך לייבא את תעודת נטפרי לכל תוכנה ותוכנה בנפרד.

כדי לייבא את התעודה צריך למצוא קודם את הקובץ שמאחסן את מאגר התעודות. בד"כ סביבת ההרצה של JAVA מותקנת בתיקיית התוכנה ב-program files בתת תיקייה בשם java או jre. בתוך התת תיקייה יהיה נתיב בשם: lib\security\ ובתוכו קובץ בשם cacerts.

במחשב ווינדוס

התקנה באמצעות סקריפט (מומלץ)

ניתן להריץ את הסקריפט הבא שיתקין את התעודה בכל המיקומים הקיימים ב program files באופן אוטומטי.
יש להריץ את הסקריפט כמנהל בWindows PowerShell (ולא בcmd)

$certs = @(Get-Childitem –Path "C:\Program files", "C:\Program Files (x86)" -filter cacerts -Recurse -ErrorAction SilentlyContinue);$keytool = Get-Childitem -Path "C:\Program files", "C:\Program Files (x86)" -filter keytool.exe -Recurse -ErrorAction SilentlyContinue | Select -First 1; foreach ( $cert in $certs ){& "$keytool" -import -trustcacerts -alias netfree-ca$(date -format dMyyhm) -file C:\ProgramData\NetFree\CA\netfree-ca-last.crt -keystore $cert -storepass changeit -noprompt}

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

חיפוש והתקנה בצורה ידנית

ניתן לחפש קבצים עם השם cacerts בשורת הפקודה באמצעות הפקודה הבאה:

dir c:\ /s /b | findstr -i cacerts


כמו"כ ניתן לחפש את קובץ הcacerts שאיתו התוכנה משתמשת באמצעות תוכנת חיפוש כדוגמת everything בחיפוש המילה cacerts ובדיקת הנתיב של הקובץ.


פתרון 1 (מומלץ)

למצוא את הנתיב לקובץ cacerts בהתקנה הספציפית של התוכנה, ולהשתמש בנתיב הזה בפקודה הנזכרת לעיל.

פתרון 2

ניתן לייבא את תעודת האבטחה באמצעות תוכנה גרפית בשם KeyStore Explorer, התוכנה ניתנת להורדה מכאן.

הוראות השימוש בתוכנה KeyStore Explorer :

בד"כ צריך להריץ את התוכנה כמנהל.

בחלון הפתיחה לוחצים על האיזור המסומן:

KeyStore 1.png

בחלון שנפתח בוחרים את הקובץ cacerts, שנמצא במיקום המתואר למעלה.

KeyStore 2.png

עכשיו יופיע בקשה לסיסמה:

KeyStore 3.png

בברירת מחדל הסיסמה הוא changeit (טרם נתקלתי במישהו ששומע להוראות ובאמת משנה אותו מברירת המחדל...)

עכשיו הקובץ פתוח ונראה רשימה של התעודות הקיימות במאגר. נלחץ על "ייבוא תעודות":

KeyStore 4.png

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

בחלון הבא נלחץ על "אישור"

KeyStore 5.png

ctrl+s או לחיצה על "שמירה" לשמירת השינויים
KeyStore 4.1.png

זהו. בהצלחה!

במחשב mac

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

/ | mdfind -name cacerts


אח"כ יש להריץ את הפקודה להתקנת התעודה לעיל על כל נתיב שעולה בחיפוש בנפרד.

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

כשיש שגיאות בכל האפשרויות

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

sudo cp -f /path/to/source/cacerts /path/to/target/cacerts

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