התקנת תעודה עבור פנייה לשרת On premise של לקוח
כאשר אנו צריכים לבצע פנייה מתוך סביבת ה-WSO2 (טסט או ייצור) ל-API של לקוח הנמצא בסביבת On premise, הלקוח עשוי לבקש להגדיר בשרת שלנו כתובת IP ב-HOST וכן להתקין תעודה (Certificate) כדי להגיע לשרת בסביבת ה-On premise שלו.
באחריות הלקוח לספק קובץ בעל סיומת CER אותו נגדיר בשרת עצמו.
לשם כך, נדרש לעדכן את הקובץ client-truststore.jks שקיים ב-WSO2.
הקובץ client-truststore.jks מכיל את אישורי ה-CA הציבוריים ואישורי הצדדים שאותם WSO2 סומך עליהם.
המוצר משתמש בו בכל פעם שהוא צריך לאמת את האישור הדיגיטלי של שירות שאליו הוא מתחבר דרך TLS (כמו שרתי HTTPS, LDAPS, SMTP/TLS, JDBC מעל SSL, ועוד).
הקובץ מגיע יחד עם ה-keystore כברירת-מחדל ומוגדר בקובצי הקונפיגורציה.
מאמר זה ידריך כיצד לבצע זאת בסביבת Linux ובסביבת Windows.
הגדרת תעודה – סביבת Linux
להלן יתוארו השלבים להגדרת התעודה:
- יש להעתיק את התעודה שהעביר הלקוח (קובץ בעל סיומת CER) לתיקיית ה-Root של WSO2.
למשל – /home/srvadmin/wso2ei-6.6.0
פעולה זו ניתן לבצע באמצעות WinSCP או כל כלי אחר המאפשר להתחבר לשרת.
לצורך הדוגמה, נניח כי שם התעודה של הלקוח נקראת client-cert.CER. - להוריד את הקובץ client-truststore.jks למחשב האישי לגיבוי. (עם WinSCP)
מיקום הקובץ – /home/srvadmin/wso2/repository/resources/security/client-truststore.jks - יש להתחבר באמצעות Putty לסביבת ה-WSO2 הנדרשת.
- יש לברר היכן יושבת תיקיית ה-Java בשרת, לשם כך נקליד את הפקודה הבאה:
readlink -f "$(which java)"
- כדי לעדכן את הקובץ client-truststore.jks נדרש להשתמש ב-"Keytool".
Keytool הוא פקודה שמגיעה עם Java ומיועדת לניהול Keystore/Truststore: יצירה, צפייה, ייבוא, מחיקה ושינוי סיסמאות של תעודות (certificates) ומפתחות.
בשרתי Linux הוא מותקן יחד עם Java ונמצא בדרך־כלל ב־$JAVA_HOME/bin/keytool. - ב־WSO2 משתמשים בו כדי לעדכן את קובץ ה־truststore (למשל client-truststore.jks) שבו נמצאות התעודות/המנפיקים ש־WSO2 סומך עליהם כאשר הוא יוצר חיבורי TLS יוצאים (HTTPS, LDAPS, ועוד).
כדי לראות את כל האפשרויות שניתן לבצע באמצעות Keytool, ניתן להקליד את הפקודה הבאה:
sudo "$KEYTOOL"
- הפעולה האחרונה שנותרה לבצע כעת היא החלת התעודה של הלקוח על הקובץ client-truststore.jks.
להלן הפקודה שנדרש להקליד:
sudo /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool \
-importcert -storetype JKS -trustcacerts \
-alias client-cert \
-file /home/srvadmin/wso2ei-6.6.0/client-cert.cer \
-keystore /home/srvadmin/wso2/repository/resources/security/client-truststore.jks
- כעת נתבקש להזין שתי סיסמאות – הראשונה היא עבור הכניסה לשרת. (הסיסמה הרגילה איתה נכנסים לשרת של WSO2)
השנייה היא עבור ה-Keystore. (לא מדובר בסיסמה לתעודה של הלקוח, אלא עבור עריכת הקובץ client-truststore.jks)
במידה ושתי הסיסמאות נכונות, יוצג פירוט התעודה של הלקוח ושאלה אם אנחנו מאשרים את התעודה.
הקלדה של המילה 'Yes' תציג הערה Certificate was added to keystore במידה והכל תקין.
הגדרת תעודה – סביבת Windows
בדומה לפירוט לעיל עבור שרת Linux, רוב הפעולות דומות, פרט לפעולה האחרונה –
C:\Program Files\Java\jre1.8.0_301\bin\keytool.exe" -import -trustcacerts -file D:\certificates\client-cert.cer -alias CA_ALIAS -keystore C:\wso2\wso2ei-6.6.0\repository\resources\security\client-truststore.jks
שימו לב כי נתיב ה-Java עשוי להשתנות וכן מיקום הקובץ תעודה של הלקוח. (מצוין לעיל שממוקם בתיקייה D:\certificates\client-cert.cer.