הוספת אישורי בסיס מהימנים ב- Linux
מאמר זה יסביר כיצד להוסיף (להתקין) אישור חדש לרשימת אישורי הבסיס המהימנים ב- Linux.
נניח שאתה משתמש באישור SSL/TLS בחתימה עצמית אך אינך מעוניין לקבל
SEC_ERROR_UNKNOWN_ISSUERשגיאה בדפדפן הלקוח בכל פעם שהאתר שלך נפתח.
בדוגמה זו, נתקין אישור בחתימה עצמית מאתר אינטרנט של IIS הפועל ב- Windows Server.
כדי לבדוק אם מארח Linux שלך אינו יכול לאמת (ולכן אינו בוטח) באישור SSL באתר מסוים, הפעל את הפקודה הבאה:
$ curl -I https://a-d.localcurl: (60) SSL certificate problem: unable to get local issuer certificate. More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.במקרה זה, עלינו להוסיף את Root CA של אתר זה לרשימת האישורים המהימנים ב- Linux.
כיצד להתקין את אישור הבסיס בחנות האמון בלינוקס?
אם ברצונך לעדכן את מאגר האישורים המהימן שלך ב- Linux, הדבר הראשון שאתה צריך הוא קובץ PEM של האישור עם
*.CRTסיומת. אישור PEM הוא קובץ טקסט בתבנית base64 שמתחיל בשורה
—-BEGIN CERTIFICATE—- ומסתיים ב
——END CERTIFICATE——אם קובץ האישור שלך מאוחסן בתבנית DER, באפשרותך להמיר אותו ל- PEM באמצעות הפקודה openSSL:
$ openssl x509 -in my_trusted_sub_ca.der -inform der -out my_trusted_sub_ca.cerעכשיו בואו נראה איך אתה יכול להוסיף את אישור שורש CA שלך לרשימת האמון בהפצות לינוקס מבוססות DEB (אובונטו, דביאן, מנטה, קאלי לינוקס וכו ').
תחילה, העתק את קבצי האישורים שלך לתיקיית מאגר האישורים (/usr/local/share/ca-certificates/):
$ sudo cp my_trusted_sub_ca.crt /usr/local/share/ca-certificates/
$ sudo cp my_trusted_root_ca.crt /usr/local/share/ca-certificates/
עדכן את מאגר האישורים באמצעות הפקודה:
$ sudo update-ca-certificates -vאם הפקודה לא נמצאה, עליך להתקין את החבילה במארח Ubuntu/Debian שלך:
sudo apt-get install -y ca-certificatesאם האישורים נוספו בהצלחה, תראה הודעה המציינת שהאישור הועתק אל /etc/ssl/certs/:
Updating certificates in /etc/ssl/certs…
2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d
הנה דרך נוספת להוסיף אישורים חדשים לחנות המהימנה ב- Linux:
sudo dpkg-reconfigure ca-certificatesעיין ברשימת האישורים ובחר את אלה שברצונך להוסיף לאישורים המהימנים.
בלינוקס, רשימת האישורים המהימנים מאוחסנת בקובץ /etc/ssl/certs/ca-certificates.crt. שתי הפקודות לעיל יעדכנו קובץ זה ויוסיפו מידע אודות האישורים החדשים.
השתמש בפקודה הבאה כדי לוודא שהאישורים שלך נוספו לרשימת יחסי האמון:
$ awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -i YourCASubjציין את החלק Common Name של האישור במקום YourCASubj כדי לחפש בחנות לפי נושא.
באפשרותך לראות אם מערכת ההפעלה שלך נותנת אמון באישור באמצעות הפקודה:
$ openssl verify my_trusted_sub_ca.crtאם מארח Linux שלך אינו בוטח באישור, תקבל שגיאה:
error 20 at 0 depth lookup: unable to get local issuer certificate
error my_trusted_sub_ca.crt: verification failedניתן להשתמש בסלסול כדי להבטיח שהאתר משתמש באישור SSL מהימן:
$ curl -I https://a-d.localהכל בסדר, התעודה מהימנה {
HTTPOnly: secure}.
שים לב שניתן גם להוסיף קובץ אישור לרשימת יחסי האמון באופן ידני:
sudo mkdir /usr/share/ca-certificates/extra
$ sudo cp my.crt /usr/share/ca-certificates/extra/mycert1.crt
$ sudo vim /etc/ca-certificates.confexta/mycert1.crtsudo update-ca-certificatesכדי להסיר את האישור מהרשימה המהימנה, פשוט מחק את קובץ ה- .crt שלך:
$ sudo rm /usr/local/share/ca-certificates/yourcert.crtולעדכן את חנות CA:
$ sudo update-ca-certificates --freshכדי להוסיף אישור לרשימת יחסי האמון בהפצות Linux מבוססות RPM (CentOS, Oracle, RHEL, Rocky Linux, Fedora), השתמש בהליך הבא:
Instal חבילת תעודות CA:
yum install ca-certificatesהעתק את קובץ האישור אל /etc/pki/ca-trust/source/anchors/:
cp mycert.crt /etc/pki/ca-trust/source/anchors/עדכן את המאגר המהימן של האישורים:
update-ca-trust force-enable # update-ca-trust extract
והנה מאמר דומה על ניהול מאגר אישורי הבסיס המהימנים ב- Windows.
הוספת אישור CA מהימן ל-Chrome ול-Firefox
לאחר ביצוע השלבים לעיל, כל כלי המערכת יבטחו באתרי אינטרנט המשתמשים ברשות אישורים זו. עם זאת, הדבר לא ישפיע על דפדפני האינטרנט Mozilla Firefox או Google Chrome, מכיוון שהם עדיין יציגו הודעת אזהרה לגבי האישור הלא מהימן.
העניין הוא ש- Firefox, Chromium, Google Chrome, Vivaldi ואפילו לקוח הדואר האלקטרוני Mozilla Thunderbird אינם משתמשים במאגר אישורי המערכת של לינוקס. ניתן למצוא את מאגר האישורים עבור תוכניות אלה בספריית המשתמש בקובץ cert8.db (עבור Mozilla) או cert9.db (עבור Chromium ו- Chrome). כדי לעדכן מאגרי אישורים אלה, באפשרותך להשתמש בכלי certutil מהחבילה libnss3-tools.
ראשית, התקן את החבילה:
$ sudo apt install libnss3-toolsכעת הפעל את סקריפט bash הבא כדי להוסיף את האישורים שלך לחנות באמצעות NSS:
#!/bin/bash
certfile="my_rusted_root_ca.crt"
certname="My Root CA1"
for certDB in $(find ~/ -name "cert8.db")
do
certdir=$(dirname ${certDB});
certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d dbm:${certdir}
done
for certDB in $(find ~/ -name "cert9.db")
do
certdir=$(dirname ${certDB});
certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir}
doneברגע שזה נעשה, אתרים עם CA נתון יהיה מהימן על ידי כל הדפדפנים.








