התקנת תעודה בכל מוצרי node

For English click here

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

עמוד ראשי > תעודת האבטחה > התקנת תעודה בכל מוצרי node ‎‎



אפשרות מומלצת עבור ווינדוס

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

התקנה ידנית

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

https://netfree.link/netfree-ca.crt


ושומרים אותה במחשב במיקום קבוע.

לאחר מכן יש לפעול לפי מערכת ההפעלה שלכם:

windows

מגדירים במחשב משתנה סביבה בשם NODE_EXTRA_CA_CERTS, שהערך שלו הוא כתובת התעודה במחשב.

להגדרת משתנה סביבה במערכת Windows יש לכתוב בשורת הפקודה במצב מנהל:

SetX NODE_EXTRA_CA_CERTS "C:\netfree-ca.crt" /m

כמובן שיש לשנות את הנתיב ‎C:\netfree-ca.crt בנתיב בו שמרתם את התעודה שהורדתם.


linux

יש לפתוח את קובץ הפרופיל (‎/etc/profile) ולכתוב את השורה הבאה בסוף הקובץ:

export NODE_EXTRA_CA_CERTS=/path/to/netfree-ca.crt

יש להחליף את הנתיב ‎/path/to/netfree-ca.crt בנתיב בו שמרתם את התעודה שהורדתם, ולהפעיל חלון טרמינל חדש.


mac

צריך להגדיר משתנה סביבה לקובץ הפרופיל של סביבת שורת הפקודה שאתם משתמשים בה.

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

הריצו את הפקודה הבאה בהתאמה לנתיב של קובץ הפרופיל הנוכחי שלכם, וכמובן את path/to/netfree-ca.crt/ תחליפו בנתיב שבו שמרתם את התעודה שהורדתם:

echo export NODE_EXTRA_CA_CERTS=/path/to/netfree-ca.crt >> ~/.zshenv

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

אפשרות נוספת

במקרה שההגדרה לא עובדת בגלל שזו גירסה ישנה או שמדובר ב electron בגרסה ישנה יש להוסיף את הקוד הזה בקוד שאתם כותבים:

(function(){
	if(!process.env.NODE_EXTRA_CA_CERTS) return;
	try{
		var netfreeCa = require("fs").readFileSync(process.env.NODE_EXTRA_CA_CERTS);
	}catch(e){
		return;
	}
	
	var NativeSecureContext = process.binding('crypto').SecureContext;
	var oldaddRootCerts = NativeSecureContext.prototype.addRootCerts;
	NativeSecureContext.prototype.addRootCerts = function(){
		var ret = oldaddRootCerts.apply(this,arguments);
		this.addCACert(netfreeCa);
		return ret;
	};
})();

אפשרות ביטול בדיקת אבטחה

ניתן גם לבטל את הצורך בתעודה ע"י ביטול האבטחה, בכל הרצת node ודברים מבוססים עליו (לא מומלץ כפתרון קבע):


הריצו בשורת הפקודה:

linux\mac

export NODE_TLS_REJECT_UNAUTHORIZED=0

windows

set NODE_TLS_REJECT_UNAUTHORIZED=0

ולאחר מכן הריצו את ה node.

הפעולה תעזור עבור ההרצה הנוכחית של הטרמינל בלבד.

לפתרון קבוע במקרים האלו ראו כאן.