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

מתוך ויקי נטפרי
קפיצה לניווט קפיצה לחיפוש

For English click here

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

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


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

אפשרות מומלצת

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

http://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:

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

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

הריצו את הפקודה הבאה בהתאמה לנתיב של קובץ הפרופיל הנוכחי שלכם, וכמובן את 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.

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

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