התקנת תעודה בכל מוצרי node: הבדלים בין גרסאות בדף

מתוך ויקי נטפרי
קפיצה לניווט קפיצה לחיפוש
גיטרה (שיחה | תרומות)
אין תקציר עריכה
Hagai (שיחה | תרומות)
לאחר אי הצלחה להוסיף את התעודה לנוד, פשוט ביטלתי את האבטחה והוספתי לפה שידעו גם מי שנתקל בבעיה הזו.
שורה 68: שורה 68:




ולאחר מכן הריצו את ה node
ולאחר מכן הריצו את ה node.
 
לחילופין, ניתן לבטל לחלוטין את החיבור המאובטח בnodejs ע"י הרצת הפקודה הבאה:
 
<pre>npm config set strict-ssl false</pre>

גרסה מ־12:01, 5 במאי 2019

For English click here

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

עמוד ראשי > תעודת האבטחה > התקנת תעודה בכל מוצרי 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

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


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