1
00:00:00,000 --> 00:00:04,781
[MUSIC]

2
00:00:04,781 --> 00:00:09,377
في المحاضرة السابقة تعلمنا عن HTTPS وكيف يمكنهم إجراء

3
00:00:09,377 --> 00:00:13,141
اتصال آمن بين العميل والخادم.

4
00:00:13,141 --> 00:00:17,960
تعلمنا أيضًا قليلاً عن التشفير،

5
00:00:17,960 --> 00:00:21,700
وهو ما يكفي لفهم كيفية عمل HTTPS.

6
00:00:21,700 --> 00:00:24,800
بالنسبة لنا لتكوين خادم HTTP الخاص بنا،

7
00:00:24,800 --> 00:00:28,500
نحتاج إلى الحصول على مفتاح عام وشهادة.

8
00:00:28,500 --> 00:00:34,650
سنقوم الآن بتكوين خادم الارتباك الخاص بنا لاستخدام HTTPS في هذا التمرين.

9
00:00:34,650 --> 00:00:38,940
لذلك، دعونا المضي قدما، أولا لتوليد المفتاح

10
00:00:38,940 --> 00:00:42,130
والشهادة التي يمكننا استخدامها لخادمنا ومن

11
00:00:42,130 --> 00:00:47,240
ثم تعديل التطبيق السريع لدينا لدعم HTTPS.

12
00:00:49,060 --> 00:00:53,310
للبدء في هذا التمرين، انتقل إلى مجلد خادم الارتباك.

13
00:00:53,310 --> 00:00:57,230
ثم في المحطة الطرفية أو نافذة الأوامر

14
00:00:57,230 --> 00:01:02,200
ثم انتقل إلى مجلد بن داخل مجلد خادم الارتباك.

15
00:01:02,200 --> 00:01:05,440
وفي مجلد bin سترى ملفًا باسم www.

16
00:01:05,440 --> 00:01:09,520
هذا هو المجلد الذي سنقوم فيه بإنشاء مفتاحنا الخاص

17
00:01:09,520 --> 00:01:12,310
ثم قم أيضًا بإنشاء الشهادة

18
00:01:12,310 --> 00:01:18,840
لخادم HTTPS الخاص بنا باستخدام أداة سطر أوامر تسمى OpenSSL.

19
00:01:18,840 --> 00:01:24,320
الآن يتم تثبيت OpenSSL عادة على أجهزة Mac OS بشكل افتراضي.

20
00:01:24,320 --> 00:01:31,030
بالنسبة لأجهزة Windows، قد تحتاج إلى تنزيل OpenSSL وتثبيته بشكل واضح.

21
00:01:31,030 --> 00:01:35,780
الآن لقد قدمت اثنين من الروابط في التعليمات بالنسبة لك للذهاب

22
00:01:35,780 --> 00:01:37,550
وجلب OpenSSL.

23
00:01:37,550 --> 00:01:41,897
لقد قدمت لك أيضًا موقعًا إلكترونيًا حيث يمكنك إنشاء

24
00:01:41,897 --> 00:01:43,430
مفتاح خاص وشهادة موقعة ذاتيًا.

25
00:01:43,430 --> 00:01:44,960
لذلك دعونا نذهب ونلقي نظرة سريعة على ذلك.

26
00:01:45,960 --> 00:01:49,440
إذا كنت تقوم بتشغيل جهاز Windows

27
00:01:49,440 --> 00:01:52,080
وإذا لم يكن لديك OpenSSL مثبتًا بالفعل.

28
00:01:52,080 --> 00:01:56,120
ثم يوفر هذا الرابط ثنائيات

29
00:01:56,120 --> 00:02:00,300
لأوبنسل التي يمكنك تنزيلها وتثبيتها على جهاز الكمبيوتر الخاص بك ويندوز.

30
00:02:00,300 --> 00:02:06,050
لذلك يتم توفير هذا الرابط في تعليمات هذا التمرين.

31
00:02:06,050 --> 00:02:08,720
حتى الذهاب إلى هناك،

32
00:02:08,720 --> 00:02:14,145
وسوف تجد العديد من التنزيلات من طرف ثالث

33
00:02:14,145 --> 00:02:19,742
توزيعات ذات الصلة أوبنسل التي يمكنك تحميلها وتثبيتها على جهاز الكمبيوتر الخاص بك.

34
00:02:19,742 --> 00:02:24,730
لذلك تثبيت واحدة من هذه من أجل

35
00:02:24,730 --> 00:02:29,030
المضي قدما في هذا التمرين إذا لم يكن لديك أوبنسل بالفعل على جهاز الكمبيوتر الخاص بك.

36
00:02:30,200 --> 00:02:35,330
الآن، أيضًا إذا كنت تريد طريقة أخرى

37
00:02:36,410 --> 00:02:40,410
لإنشاء المفتاح الخاص بك والشهادة.

38
00:02:40,410 --> 00:02:45,240
في ما يلي مقال مدونة، وهو رابط قمت بتوفيره بالفعل في التعليمات،

39
00:02:45,240 --> 00:02:49,990
والذي يشرح أيضًا كيفية إعداد جهاز Windows الخاص بك باستخدام

40
00:02:51,410 --> 00:02:55,990
OpenSSL وكذلك إنشاء المفتاح الخاص والشهادة.

41
00:02:55,990 --> 00:03:01,140
حتى المشي من خلال هذه الخطوات لتكوين جهاز الكمبيوتر ويندوز الخاص بك

42
00:03:01,140 --> 00:03:05,330
لتوليد المفتاح الخاص والشهادة.

43
00:03:05,330 --> 00:03:09,960
الآن، إذا كنت لا ترغب في تثبيت OpenSSL، فإليك رابط

44
00:03:09,960 --> 00:03:14,610
لموقع يسمح لك بإنشاء

45
00:03:14,610 --> 00:03:19,420
شهادة SSL موقعة ذاتيًا ومفتاح كما ترى هنا.

46
00:03:19,420 --> 00:03:22,900
لذلك يتم توفير رابط لهذا الموقع أيضا في التعليمات.

47
00:03:22,900 --> 00:03:27,690
لذلك يمكنك استخدام الخادم لإنشاء شهادة سل

48
00:03:27,690 --> 00:03:29,930
ومفتاح لجهاز ويندوز الخاص بك.

49
00:03:29,930 --> 00:03:32,330
لذلك يمكن استخدام أي شخص من هذه الأساليب

50
00:03:32,330 --> 00:03:38,720
لتوليد المفتاح الخاص والشهادة لجهاز ويندوز الخاص بك.

51
00:03:38,720 --> 00:03:41,320
بما أنني أعمل على جهاز OSX،

52
00:03:41,320 --> 00:03:47,580
سأقوم بإنشاء مفتاحي الخاص وشهادة باستخدام OpenSSL.

53
00:03:47,580 --> 00:03:52,858
حتى الذهاب إلى المحطة، اسمحوا لي أن اكتب openssl genrsa

54
00:03:52,858 --> 00:03:59,249
1024، وهذا يعني أنني ذاهب لتوليد مفتاح خاص من حجم 1024.

55
00:03:59,249 --> 00:04:04,400
لذلك أنا ذاهب لوضع هذا في ملف اسمه مفتاح خاص،

56
00:04:04,400 --> 00:04:10,590
وبمجرد أن يتم إنشاء هذا، ثم سنقوم بإنشاء ملف cert.csr المقابلة

57
00:04:10,590 --> 00:04:16,340
لذلك سوف يقول طلب req openssl.

58
00:04:16,340 --> 00:04:21,398
لذلك نحن نطلب شهادة جديدة،

59
00:04:21,398 --> 00:04:27,839
مع private.key المفتاح، وسوف تولد ذلك.

60
00:04:32,283 --> 00:04:35,530
Cert.CSR هنا.

61
00:04:35,530 --> 00:04:40,440
الآن، عندما تقوم بإنشاء cert.csr، سوف يأتي مع بعض الأسئلة

62
00:04:40,440 --> 00:04:42,378
لك لملء.

63
00:04:42,378 --> 00:04:44,700
يمكنك قبول القيم الافتراضية أو

64
00:04:44,700 --> 00:04:48,400
يمكنك ملء قيمك الخاصة إذا اخترت ذلك.

65
00:04:48,400 --> 00:04:52,120
لا يهم حقا لأن هذه الشهادة التي نستخدمها فقط داخل

66
00:04:52,120 --> 00:04:55,730
جهاز الكمبيوتر الخاص بنا لاختبار خادم HTTPS الخاص بنا.

67
00:04:55,730 --> 00:04:58,156
لذلك، اسمحوا لي أن ملء بعض التفاصيل.

68
00:05:02,293 --> 00:05:06,286
سأترك بعض الأشياء فارغة هناك

69
00:05:06,286 --> 00:05:09,380
وهذا من شأنه أن يعمل على ما يرام،

70
00:05:09,380 --> 00:05:13,900
لا يهم حقا ما إذا كنت ملء هذه المعلومات أم لا.

71
00:05:13,900 --> 00:05:19,679
حتى بمجرد القيام بذلك يتم إنشاء cert.csr الخاص بك

72
00:05:19,679 --> 00:05:26,834
ومن ذلك أنها سوف تولد شهادة التوزيع

73
00:05:26,834 --> 00:05:31,651
بحيث أننا سوف اكتب في موجه الأوامر

74
00:05:31,651 --> 00:05:37,295
openssl x509 -req -cert.csr -signkey

75
00:05:37,295 --> 00:05:42,134
private.key -out certificate.pem.

76
00:05:42,134 --> 00:05:47,052
لذلك سيؤدي هذا إلى إنشاء الشهادة

77
00:05:47,052 --> 00:05:52,111
لنا، وهكذا بمجرد إكمال هذه الخطوات،

78
00:05:52,111 --> 00:05:55,623
عندما تنظر إلى المجلد الخاص بك،

79
00:05:55,623 --> 00:06:00,961
سترى أن لديك private.key و

80
00:06:00,961 --> 00:06:07,255
cert.csr و certificate.pem هناك.

81
00:06:07,255 --> 00:06:11,205
سيكون هذا مطلوبًا لتكوين خادم HTTPS الخاص بنا.

82
00:06:11,205 --> 00:06:17,375
لذا، الآن لتكوين خادم HTTPS، دعنا نذهب إلى محررنا.

83
00:06:17,375 --> 00:06:21,755
في المحرر، سنذهب إلى هذا المجلد بن هنا.

84
00:06:21,755 --> 00:06:25,135
وفي مجلد bin، سترى هذا الملف المسمى www.

85
00:06:25,135 --> 00:06:30,550
نظرنا بإيجاز في هذا الملف في واحدة من التدريبات السابقة.

86
00:06:30,550 --> 00:06:36,296
الآن الذهاب إلى هذا الملف نحن ذاهبون الآن

87
00:06:36,296 --> 00:06:41,704
أيضا لاستيراد وحدة هتبس الأساسية لذلك

88
00:06:41,704 --> 00:06:49,776
سنقول هتبس تتطلب هتبس

89
00:06:49,776 --> 00:06:53,010
ونحن سوف تتطلب أيضا وحدة نظام الملفات.

90
00:06:53,010 --> 00:06:57,160
لقد واجهت بالفعل وحدة نظام الملفات

91
00:06:57,160 --> 00:06:58,560
في وقت سابق في أحد التدريبات.

92
00:06:58,560 --> 00:07:01,440
لذلك سنقوم باستيراد كل من هذه.

93
00:07:01,440 --> 00:07:07,180
وبعد ذلك، النزول هنا، سنقوم بتكوين رقم المنفذ الذي

94
00:07:07,180 --> 00:07:13,200
سيتم تشغيل خادم HTTPS الخاص بنا، لذلك سنقول app.set

95
00:07:13,200 --> 00:07:17,160
وسنقول SecPort.

96
00:07:17,160 --> 00:07:22,370
لذلك سنقوم بإعداد متغير هنا يسمى المنفذ الآمن

97
00:07:22,370 --> 00:07:26,890
ثم سأقوم بتهيئة هذا إلى المنفذ 443.

98
00:07:26,890 --> 00:07:29,998
الآن، لماذا أستخدم هذا المنفذ+443؟

99
00:07:29,998 --> 00:07:35,881
في خادم قياسي، إذا كان خادمك يعمل كخادم ويب،

100
00:07:35,881 --> 00:07:42,890
فسيتم تشغيل بروتوكول HTTP عند المنفذ رقم 80 على الخادم الخاص بك.

101
00:07:42,890 --> 00:07:47,049
وسيتم تشغيل HTTP الآمن على المنفذ رقم 443.

102
00:07:48,090 --> 00:07:54,070
الآن أنت عادة لا تريد استخدام تلك المنافذ

103
00:07:54,070 --> 00:08:00,170
المحجوزة في تطبيق تطوير ولكننا نفعل في هذه الدورة.

104
00:08:00,170 --> 00:08:02,250
بدلاً من ذلك، كما رأيت سابقًا،

105
00:08:02,250 --> 00:08:08,170
قمنا بتكوين رقم المنفذ الخاص بنا إلى 3000 حيث يتم تشغيل خادم HTTP الخاص بنا.

106
00:08:08,170 --> 00:08:15,481
لذلك أنا ذاهب لتشغيل خادم هتبس، في المنفذ رقم 3443.

107
00:08:15,481 --> 00:08:18,311
لذا 3000 زائد 443

108
00:08:18,311 --> 00:08:22,550
لذلك هذا هو السبب في أنني أعلن هذا المنفذ الآمن.

109
00:08:22,550 --> 00:08:30,748
كما المنفذ 443، لذلك سيتم تشغيل خادم HTTPS لدينا في المنفذ رقم 443.

110
00:08:30,748 --> 00:08:35,296
ما زلت أقوم بتشغيل خادم HTTP في المنفذ 3000،

111
00:08:35,296 --> 00:08:40,696
لقد أنشأنا بالفعل خادم HTTP هنا في WWW، أو بالأحرى،

112
00:08:40,696 --> 00:08:46,220
يتم إنشاء هذا تلقائيًا بواسطة المولد السريع.

113
00:08:46,220 --> 00:08:49,890
الآن، نظرًا لأن خادم HTTP تم تكوينه بالفعل،

114
00:08:49,890 --> 00:08:54,290
سنقوم الآن بتكوين خادم HTTPS.

115
00:08:55,810 --> 00:09:02,460
لذلك لتكوين خادم HTTPS، مباشرة بعد تكوين خادم HTTP.

116
00:09:02,460 --> 00:09:06,410
الآن السبب في أنني لا يزال تشغيل خادم هتب هو أنه

117
00:09:06,410 --> 00:09:12,120
إذا حصلت على طلب على منفذ خادم هتب ثم،

118
00:09:12,120 --> 00:09:16,420
سيتم إعادة توجيه هذا الطلب إلى خادم هتبس.

119
00:09:16,420 --> 00:09:23,070
لذلك سوف الخادم الخاص بي طلب الخدمة فقط القادمة على منافذ HTTPS.

120
00:09:23,070 --> 00:09:27,750
ولكن إذا كان أي شخص يصل إلى الخادم في منفذ HTTP عن طريق الصدفة،

121
00:09:27,750 --> 00:09:31,070
فسوف أقوم بإعادة توجيه هذا الطلب إلى منفذ HTTPS.

122
00:09:31,070 --> 00:09:33,270
سنفعل ذلك بعد قليل

123
00:09:33,270 --> 00:09:36,316
أولاً، دعنا نقوم بتكوين خادم HTTPS.

124
00:09:36,316 --> 00:09:40,665
لذلك لتكوين خادم HTTPS، هنا،

125
00:09:40,665 --> 00:09:46,060
سأعلن عن بعض الخيارات هنا لخادم HTTPS الخاص بي.

126
00:09:46,060 --> 00:09:51,740
تذكر الآن أنه بالنسبة لخادم HTTPS، نحتاج إلى تكوين المفتاح الخاص

127
00:09:51,740 --> 00:09:56,670
والشهادة التي سيستخدمها خادم HTTPS الخاص بي.

128
00:09:56,670 --> 00:10:01,200
حتى في الخيارات، وأنا ذاهب لتحديد المفتاح

129
00:10:01,200 --> 00:10:07,832
وبعد ذلك سوف تستخدم نظام الملفات وبعد ذلك سأقول، ReadFileSync.

130
00:10:09,340 --> 00:10:16,250
لذلك سوف أقرأ هذا الملف بشكل متزامن حتى أتمكن من إكمال القراءة في الملف

131
00:10:16,250 --> 00:10:21,290
قبل أن أتمكن من تكوين خادم HTTPS الخاص بي.

132
00:10:21,290 --> 00:10:25,862
لذلك أنا ذاهب لقراءة هذا الملف من __dirname.

133
00:10:25,862 --> 00:10:30,958
أنت تعرف بالفعل لماذا أستخدم __dirname من

134
00:10:30,958 --> 00:10:36,710
التمارين السابقة حيث رأينا وحدة النظام الخمسة المستخدمة.

135
00:10:36,710 --> 00:10:40,370
وبعد ذلك، لذلك سأقول __dirname+.

136
00:10:40,370 --> 00:10:49,570
حتى هنا، ونحن توريد المسار إلى private.key.

137
00:10:49,570 --> 00:10:54,346
الآن، تذكر أن هذه www موجودة في مجلد bin.

138
00:10:54,346 --> 00:10:57,710
و private.key هو أيضا في مجلد بن، لذلك

139
00:10:57,710 --> 00:11:03,200
هذا هو السبب في أنني ذاهب إلى القول ديرنام+هذا، لذلك هذا سوف يحدد

140
00:11:03,200 --> 00:11:08,170
إلى نظام الملفات قراءة وحدة أن الملف يجب أن

141
00:11:08,170 --> 00:11:13,440
تقرأ من هذا الدليل بن، من هذا الملف private.key هنا.

142
00:11:14,730 --> 00:11:18,360
الآن أيضا، سوف نقرأ في الشهادة هنا.

143
00:11:18,360 --> 00:11:21,585
لذلك سنقول، شهادة FS.ReadFileSync.

144
00:11:21,585 --> 00:11:26,053
لذلك سوف يقرأ الملف بشكل متزامن مما يعني أنه

145
00:11:26,053 --> 00:11:33,050
سيتم قراءة الملف بالكامل قبل المتابعة إلى تلك الخطوة التالية هنا.

146
00:11:33,050 --> 00:11:40,340
والملف الذي نحتاج إلى قراءته هو أيضًا __dirname+.

147
00:11:40,340 --> 00:11:47,865
وسنقول، /certificate.pem، والتي قمنا بإنشائها في وقت سابق.

148
00:11:51,407 --> 00:11:56,697
ويجب أن يكون ذلك فاصلة، ويجب ألا أضع فاصلة منقوطة هناك،

149
00:11:56,697 --> 00:12:02,740
لأن هذا كائن جافا سكريبت الذي حددناه لديه الخيارات.

150
00:12:02,740 --> 00:12:09,070
لذلك بمجرد أن نحدد كائن JavaScript، دعنا نقوم بتكوين الخادم الآمن.

151
00:12:09,070 --> 00:12:15,407
لذلك سنقول فار سيكوريسيرفر هتبس.

152
00:12:15,407 --> 00:12:21,410
أذكر أنه، الآن، ونحن في طريقنا إلى استخدام هتبس، وبعد ذلك سنقول كريتيسيرفر.

153
00:12:21,410 --> 00:12:27,611
لذلك تذكر أنه بالنسبة لـ HTTP، قمنا بتكوين خادمنا مثل هذا هنا.

154
00:12:27,611 --> 00:12:32,540
لخادم آمن، ونحن في طريقنا إلى خلق ذلك بالقول,

155
00:12:32,540 --> 00:12:37,859
فار Secureserver Https.CreateServer, وبعد

156
00:12:37,859 --> 00:12:44,161
ذلك سوف نقدم الخيارات التي قمنا بتكوين للتو ثم الجزء الثاني هو التطبيق هنا.

157
00:12:44,161 --> 00:12:48,026
لذا فإن SecureReserver الخاص بي

158
00:12:48,026 --> 00:12:54,410
على ما يرام، كما ستكون متاحة لتطبيقي للوصول.

159
00:12:54,410 --> 00:13:00,301
الآن أسفل هنا، أنا ذاهب لتكوين

160
00:13:00,301 --> 00:13:06,044
Secureserver.الاستماع على رقم المنفذ،

161
00:13:11,990 --> 00:13:13,530
Secport.

162
00:13:13,530 --> 00:13:17,950
أذكر أننا هنا فعلنا secPort app.set، لذلك

163
00:13:17,950 --> 00:13:23,840
قمنا بتعيين هذه القيمة هنا إلى رقم المنفذ الآمن.

164
00:13:23,840 --> 00:13:27,280
ثم أسفل هنا، ونحن نقول app.get.

165
00:13:27,280 --> 00:13:32,013
وهذا يعني أن هذه القيمة التي قمنا

166
00:13:32,013 --> 00:13:36,470
بتكوينها في وقت سابق ستكون متاحة

167
00:13:36,470 --> 00:13:41,205
لنا لتكوين منفذ الاستماع لدينا

168
00:13:41,205 --> 00:13:45,522
لخادمنا، app.get SecPort، ومن

169
00:13:45,522 --> 00:13:52,059
ثم توفير، وظيفة رد الاتصال هنا.

170
00:13:55,029 --> 00:13:58,438
وداخل وظيفة رد الاتصال هذه، سنقول،

171
00:14:03,514 --> 00:14:11,715
console.log خادم الاستماع على المنفذ.

172
00:14:21,317 --> 00:14:26,931
دعونا نفعل خادم آمن الاستماع على المنفذ

173
00:14:28,697 --> 00:14:32,448
وبعد ذلك، بمجرد تكوين سيكوريسيرفر،

174
00:14:32,448 --> 00:14:38,690
ثم نحن بحاجة إلى، انظر، سيكوريسيرفر على.

175
00:14:38,690 --> 00:14:45,170
لذلك إذا تلقى SecureServer حدث خطأ،

176
00:14:45,170 --> 00:14:51,790
فسوف نحب OnError، الذي تم تكوينه أدناه، للتعامل مع ذلك.

177
00:14:51,790 --> 00:14:55,520
وبعد ذلك سوف نقول، تأمين.

178
00:14:59,786 --> 00:15:04,428
الاستماع، لذلك إذا تلقيت حدث الاستماع،

179
00:15:04,428 --> 00:15:07,950
ثم سوف ندعو onLiting.

180
00:15:07,950 --> 00:15:11,100
الآن أين يتم تكوين هذه onError و OnLiting؟

181
00:15:11,100 --> 00:15:14,830
إذا كنت تذهب إلى أسفل في التعليمات البرمجية هنا، أسفل هنا.

182
00:15:14,830 --> 00:15:20,920
أنت تحدد هاتين الوظيفتين اللتين تعمل بهما OnError هنا،

183
00:15:20,920 --> 00:15:24,540
ثم وظيفة OnLiting هنا.

184
00:15:24,540 --> 00:15:30,140
لذلك نحن في طريقنا إلى استخدام هاتين الوظيفتين لتكوين الخادم لدينا هنا.

185
00:15:30,140 --> 00:15:32,320
لذلك مع هذه التغييرات،

186
00:15:32,320 --> 00:15:38,180
يتم الآن تكوين الخادم الخاص بي لتشغيل SecureServer في المنفذ رقم 443.

187
00:15:38,180 --> 00:15:44,290
لقد قمنا بالفعل بتكوين خادم HTTP القياسي هنا بالفعل.

188
00:15:44,290 --> 00:15:51,860
حتى مرة واحدة ونحن قد فعلت هذين، ثم، لدينا التحديث المقبل سيكون في ملف app.js.

189
00:15:51,860 --> 00:15:58,313
حتى الذهاب إلى ملف app.js ما سأقوم به هو تكوين

190
00:15:58,313 --> 00:16:04,729
هذا الخادم بحيث سيتم إعادة توجيه أي حركة مرور قادمة إلى المنفذ غير الآمن.

191
00:16:04,729 --> 00:16:09,780
هذا هو المنفذ رقم 3،000، فإنه سيتم إعادة توجيه هذا الطلب إلى المنفذ الآمن.

192
00:16:09,780 --> 00:16:16,285
لذلك للقيام بذلك، اسمحوا لي إعداد الوسيطة مباشرة بعد أن نعلن app.express.

193
00:16:16,285 --> 00:16:21,541
حتى هنا سوف نقول، app.all، مما يعني،

194
00:16:21,541 --> 00:16:27,090
لجميع الطلبات بغض النظر عن المسار في الطلب هو.

195
00:16:27,090 --> 00:16:33,118
طلب خاص قادم، سأقوم بإعادة توجيه ذلك إلى،

196
00:16:35,885 --> 00:16:39,582
لذلك سنقول rec، res، التالي،

197
00:16:39,582 --> 00:16:44,156
ووظيفة معاودة الاتصال التي يتم تعريفها هنا.

198
00:16:44,156 --> 00:16:51,820
وهكذا سنقوم، أعلن وظيفة في الداخل هنا.

199
00:16:51,820 --> 00:16:58,529
وسنقول، إذا req.secure.

200
00:16:58,529 --> 00:17:04,215
بمعنى أنه إذا كان الطلب الوارد بالفعل طلبًا

201
00:17:04,215 --> 00:17:06,520
آمنًا، فكيف نعرف ذلك؟

202
00:17:06,520 --> 00:17:10,591
إذا كان الطلب الوارد بالفعل طلبًا آمنًا،

203
00:17:10,591 --> 00:17:15,020
فسيحمل كائن الطلب هذه العلامة المسماة secure والتي سيتم تعيينها بالفعل إلى true.

204
00:17:16,121 --> 00:17:19,410
إذا لم يكن الطلب الوارد على الإطلاق منفذ آمن ولكن

205
00:17:19,410 --> 00:17:24,960
بدلاً من ذلك يأتي إلى المنفذ غير الآمن، فلن يتم تعيين write.secure.

206
00:17:24,960 --> 00:17:28,331
إذاً، هذا ما أعتني به

207
00:17:28,331 --> 00:17:31,511
إذا كان يأتي إلى ميناء آمن بالفعل، وأنا ذاهب فقط للمضي قدما

208
00:17:31,511 --> 00:17:35,110
دون القيام بأي شيء لأنه يأتي بالفعل إلى ميناء آمن.

209
00:17:35,110 --> 00:17:38,514
حتى أستطيع أن أقول ببساطة، التالي.

210
00:17:39,586 --> 00:17:44,320
خلاف ذلك، سنقول، العودة التالية.

211
00:17:44,320 --> 00:17:48,678
خلاف ذلك, وبالتالي فإن خلاف ذلك سيحدث,

212
00:17:52,360 --> 00:17:55,780
عندما يأتي إلى ميناء غير آمن.

213
00:17:55,780 --> 00:17:59,850
لذلك في هذه الحالة، سأقول res.redirect.

214
00:17:59,850 --> 00:18:03,920
وبالتالي فإن طريقة إعادة التوجيه متاحة،

215
00:18:03,920 --> 00:18:09,390
والتي تعيد توجيه الطلب الوارد إلى عنوان URL آخر.

216
00:18:09,390 --> 00:18:15,960
لذلك، سأقوم بإعادة توجيه هذا الطلب غير الآمن إلى https://.

217
00:18:15,960 --> 00:18:24,950
لذلك أنا إعادة توجيه هذا الطلب إلى اسم req.host.

218
00:18:24,950 --> 00:18:27,720
وبالتالي فإن الطلب يحمل بالفعل اسم المضيف.

219
00:18:27,720 --> 00:18:31,083
لذلك، لأن هذا يأتي إلى نفس الخادم، لذلك

220
00:18:31,083 --> 00:18:33,657
أنا إعادة التوجيه إلى نفس الخادم.

221
00:18:33,657 --> 00:18:38,428
ثم سنقول +،

222
00:18:41,726 --> 00:18:44,860
؛ + app.get.

223
00:18:44,860 --> 00:18:52,468
الآن تذكر أننا قد تكوين بالفعل المنفذ الآمن في app.get هناك.

224
00:18:52,468 --> 00:19:00,861
لذلك سنقول app.get سيكبورت + req.url.

225
00:19:00,861 --> 00:19:05,757
الآن سيحتوي هذا req.url على بقية المسار

226
00:19:05,757 --> 00:19:10,080
باستثناء اسم المضيف ورقم المنفذ.

227
00:19:10,080 --> 00:19:12,943
لذا إذا قلت مضيف محلي: 3000،

228
00:19:12,943 --> 00:19:17,685
فسيتم تغطية

229
00:19:17,685 --> 00:19:24,110
هذا المضيف المحلي: 3000 بالجزء الأول وسيتم إعادة توجيهه إلى المضيف المحلي: 3443 بواسطة هذا التكوين هنا.

230
00:19:24,110 --> 00:19:29,410
وبعد ذلك، والباقي منه، سيحتوي req.url على المسار الفعلي على الخادم.

231
00:19:29,410 --> 00:19:34,220
لذلك، نحن فقط إضافته إلى مسار إعادة التوجيه،

232
00:19:34,220 --> 00:19:39,390
وهذا هو المسار الذي سأقوم بإعادة توجيه رسالة الطلب الواردة إليه.

233
00:19:39,390 --> 00:19:42,200
لذلك بمجرد إعادة توجيه رسالة الطلب الواردة

234
00:19:42,200 --> 00:19:46,630
، سيتم إعادة توجيه رسالة طلبي إلى المنفذ الآمن.

235
00:19:46,630 --> 00:19:50,240
ويمكن تغيير أخير واحد res.redirect،

236
00:19:50,240 --> 00:19:54,470
وسوف نضيف رمز الحالة المكتوب على أنه 307.

237
00:19:54,470 --> 00:19:59,084
307 هنا يمثل أن المورد الهدف موجود مؤقتًا تحت

238
00:19:59,084 --> 00:20:00,890
عنوان URL مختلف.

239
00:20:00,890 --> 00:20:04,990
ويجب ألا يغير وكيل المستخدم طريقة الطلب إذا كان يقوم

240
00:20:04,990 --> 00:20:08,120
بإصلاح إعادة التوجيه التلقائي إلى عنوان URL هذا.

241
00:20:08,120 --> 00:20:11,880
لذا، سأتوقع من وكيل المستخدم إعادة المحاولة

242
00:20:11,880 --> 00:20:16,780
بنفس الطريقة التي استخدموها لنقطة النهاية الأصلية.

243
00:20:16,780 --> 00:20:21,820
هذا كل شيء، أن التغيير الذي أحتاج إلى إجراء في ملف app.js.

244
00:20:21,820 --> 00:20:26,452
لذلك، بعد تغيير app.js، و www،

245
00:20:26,452 --> 00:20:30,548
وأيضا إنشاء المفتاح والشهادة،

246
00:20:30,548 --> 00:20:35,751
يمكننا الآن حفظ التغييرات، والذهاب وبدء الخادم لدينا.

247
00:20:36,864 --> 00:20:41,606
الذهاب إلى المحطة الطرفية أو نافذة الأوامر، تأكد من أنك

248
00:20:41,606 --> 00:20:46,340
مرة أخرى في مجلد ConfusionServer الخاص بك، ثم قم بتشغيل الخادم.

249
00:20:46,340 --> 00:20:49,443
لذلك أنا في المحطة الطرفية كتابة npm البداية.

250
00:20:52,473 --> 00:20:57,295
وسوف يكون الخادم الخاص بك وتشغيله, وتلاحظ أيضا أننا

251
00:20:57,295 --> 00:21:01,848
طباعة هنا قائلا, خادم آمن الاستماع على المنفذ رقم 3443 هنا.

252
00:21:01,848 --> 00:21:09,322
لتمييز الخادم الآمن، انتقل إلى متصفح مثل Chrome هنا.

253
00:21:09,322 --> 00:21:13,648
وبعد ذلك، اسمحوا لي أولا الوصول إلى الخادم الآمن في

254
00:21:13,648 --> 00:21:19,750
لوكالهوست: 3443 وهو المكان الذي يتم فيه تشغيل الخادم الآمن الخاص بي.

255
00:21:19,750 --> 00:21:29,490
ولاحظ أنه عندما أحاول https://localhost3443 في المتصفح،

256
00:21:29,490 --> 00:21:34,170
فإنه سوف يأتي مع هذه الرسالة هنا قائلا، الاتصال الخاص بك ليست خاصة.

257
00:21:34,170 --> 00:21:37,670
من الواضح، لأن الشهادة التي نستخدمها الآن

258
00:21:37,670 --> 00:21:39,640
هي شهادة موقعة ذاتيا.

259
00:21:39,640 --> 00:21:44,770
ولا يتعرف Chrome على ذلك كشهادة صالحة.

260
00:21:44,770 --> 00:21:49,780
ولكن بما أننا نعرف ما نقوم به، فإنه لا بأس بالنسبة لنا

261
00:21:49,780 --> 00:21:56,210
أن نقبل أننا سوف نسمح للمضي قدما إلى هذا الخادم معين.

262
00:21:56,210 --> 00:22:00,630
الآن، سأنصحك بشدة بعدم القيام بذلك على

263
00:22:00,630 --> 00:22:04,110
أي موقع يأتي مع الاقتراح.

264
00:22:04,110 --> 00:22:07,260
ونحن نفعل ذلك على وجه التحديد في هذا التمرين

265
00:22:07,260 --> 00:22:09,430
لأننا نعرف بالضبط أين الخادم، ونحن

266
00:22:09,430 --> 00:22:13,480
نعلم أننا قمنا بتكوين الخادم بشكل صريح بأنفسنا.

267
00:22:13,480 --> 00:22:18,930
ولكن إذا كان أي موقع آخر يأتي مع هذه الرسالة، فإنني

268
00:22:18,930 --> 00:22:24,750
أنصحك بشدة بعدم قبول الاقتراح والمضي قدما في الوصول إلى الخادم.

269
00:22:24,750 --> 00:22:31,840
لذلك يجب عليك العودة إلى الأمان إذا رأيت هذا أو على أي موقع آخر.

270
00:22:31,840 --> 00:22:36,360
ولكن بما أننا نعلم أن هذا هو الخادم الخاص بنا، سأذهب إلى

271
00:22:36,360 --> 00:22:43,450
المضيف المحلي هنا، وبعد ذلك سترى أننا الوصول إلى خادم Express.

272
00:22:43,450 --> 00:22:45,900
وأيضًا ستلاحظ هنا

273
00:22:45,900 --> 00:22:51,280
أن متصفحك يظهر لك أنك تصل إلى خادم غير آمن.

274
00:22:51,280 --> 00:22:54,040
عند النقر على ذلك، سترى هذه الرسالة

275
00:22:54,040 --> 00:22:57,160
هنا تقول أن اتصالك بالموقع غير آمن.

276
00:22:57,160 --> 00:23:04,068
لكننا نعلم أنه بما أننا ندير الخادم بأنفسنا، فلا بأس من القيام بذلك.

277
00:23:04,068 --> 00:23:08,860
إذن هذه هي الطريقة التي ستصل بها إلى خادم HTTPS.

278
00:23:08,860 --> 00:23:14,338
الآن، اسمحوا لي أن أحاول الوصول إلى نفس خادم HTTP ولكن، اسمحوا لي الوصول إلى،

279
00:23:16,040 --> 00:23:19,206
المضيف المحلي القياسي: 3000.

280
00:23:19,206 --> 00:23:24,625
هذا هو المكان الذي يوجد فيه الخادم غير الآمن إلى خادم HTTP العادي قيد التشغيل.

281
00:23:24,625 --> 00:23:30,190
لذلك عندما أحاول الوصول إلى هتب لوكالهوست: 3000،

282
00:23:30,190 --> 00:23:37,700
ثم ترى على الفور أن الخادم الخاص بي سيعيد توجيهي إلى الخادم الآمن.

283
00:23:37,700 --> 00:23:41,850
وبهذه الطريقة، الخادم الخاص بك أن لدينا فقط تكوين

284
00:23:41,850 --> 00:23:46,740
التأكد من أنك سوف دائما الوصول إلى الخادم على منفذ آمن.

285
00:23:46,740 --> 00:23:50,040
يضمن هذا أيضًا حقيقة أنه عندما تقوم بالتبادل،

286
00:23:50,040 --> 00:23:52,902
عند إرسال بيانات الاعتماد الخاصة بك، وما

287
00:23:52,902 --> 00:23:56,343
إلى ذلك، كل تبادل بيانات الاعتماد في رأس الرسالة.

288
00:23:56,343 --> 00:24:01,863
وأيضا عند تسجيل الدخول مع المصادقة المحلية، كل ما يتم

289
00:24:01,863 --> 00:24:07,910
بطريقة آمنة في قناة مشفرة بين العميل والخادم.

290
00:24:07,910 --> 00:24:15,010
لذلك، الآن، قمنا بتكوين خادمنا ليكون خادم HTTPS آمن.

291
00:24:15,010 --> 00:24:18,090
مع هذا، نكمل هذا التمرين.

292
00:24:18,090 --> 00:24:22,880
في هذا التمرين، تعلمنا كيفية تكوين خادم HTTP آمن أو

293
00:24:22,880 --> 00:24:25,930
استخدام بروتوكول HTTPS.

294
00:24:25,930 --> 00:24:27,994
مع هذا، نكمل هذا التمرين.

295
00:24:27,994 --> 00:24:34,230
هذا هو الوقت المناسب بالنسبة لك للقيام git الالتزام مع الرسالة، HTTPS.

296
00:24:34,230 --> 00:24:36,719
[ موسيقى]