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

מתוך ויקי נטפרי
גרסה מ־09:59, 11 בספטמבר 2019 מאת Yzahn (שיחה | תרומות) (פקודה למחשבי מאק)
קפיצה לניווט קפיצה לחיפוש

For English click here

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

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


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


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

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

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

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

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

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

export NODE_EXTRA_CA_CERTS=/netfree-ca.crt

גם פה יש לוודא שהתעודה נמצאת ב/ או לחילופין לכתוב כתובת אחרת בה היא נמצאת).

במחשבי מאק, ניתן להריץ פקודה זו:

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

כנ"ל יש לוודא שהתעודה נמצאת ב/ או לחילופין לכתוב כתובת אחרת בה היא נמצאת)


במקרה שההגדרה לא עובדת בגלל שזה גירסה ישנה או שזה 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 ודברים מבוססים עליו:


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

בלינוקס

export NODE_TLS_REJECT_UNAUTHORIZED=0

בוינדוס

set NODE_TLS_REJECT_UNAUTHORIZED=0


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

לחילופין, ניתן לבטל לחלוטין את החיבור המאובטח בnodejs ע"י הרצת הפקודה הבאה:

npm config set strict-ssl false