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

2
00:00:04,781 --> 00:00:09,377
In der vorangegangenen Vorlesung haben wir über HTTPS erfahren und wie sie eine

3
00:00:09,377 --> 00:00:13,141
sichere Kommunikation zwischen Client und Server durchführen können.

4
00:00:13,141 --> 00:00:17,960
Wir haben auch ein wenig über Kryptografie gelernt,

5
00:00:17,960 --> 00:00:21,700
genug, um zu verstehen, wie HTTPS funktioniert.

6
00:00:21,700 --> 00:00:24,800
Damit wir unseren HTTP-Server konfigurieren können,

7
00:00:24,800 --> 00:00:28,500
müssen wir einen öffentlichen Schlüssel und ein Zertifikat erhalten.

8
00:00:28,500 --> 00:00:34,650
Wir werden nun unseren ConFusion-Server so konfigurieren, dass er HTTPS in dieser Übung verwendet.

9
00:00:34,650 --> 00:00:38,940
Also, lassen Sie uns vorwärts gehen, zuerst den Schlüssel und

10
00:00:38,940 --> 00:00:42,130
das Zertifikat zu generieren, das wir für unseren Server verwenden können und

11
00:00:42,130 --> 00:00:47,240
dann unsere Express-Anwendung ändern, um HTTPS zu unterstützen.

12
00:00:49,060 --> 00:00:53,310
Um mit dieser Übung zu beginnen, gehen Sie zum ConFusion-Serverordner.

13
00:00:53,310 --> 00:00:57,230
Und dann in Ihrem Terminal- oder Befehlsfenster und

14
00:00:57,230 --> 00:01:02,200
gehen Sie dann in den bin-Ordner innerhalb des ConFusion-Serverordners.

15
00:01:02,200 --> 00:01:05,440
Und im Ordner bin sehen Sie eine Datei namens www.

16
00:01:05,440 --> 00:01:09,520
Dies ist der Ordner, in dem wir unseren privaten Schlüssel generieren und

17
00:01:09,520 --> 00:01:12,310
dann auch das Zertifikat für

18
00:01:12,310 --> 00:01:18,840
unseren HTTPS-Server mit einem Kommandozeilentool namens OpenSSL generieren werden.

19
00:01:18,840 --> 00:01:24,320
Jetzt wird OpenSSL normalerweise standardmäßig auf Mac OS-Maschinen installiert.

20
00:01:24,320 --> 00:01:31,030
Auf Windows-Computern müssen Sie OpenSSL möglicherweise explizit herunterladen und installieren.

21
00:01:31,030 --> 00:01:35,780
Jetzt habe ich ein paar Links in den Anweisungen zur Verfügung gestellt, damit Sie

22
00:01:35,780 --> 00:01:37,550
OpenSSL holen können.

23
00:01:37,550 --> 00:01:41,897
Ich habe Ihnen auch eine Website zur Verfügung gestellt, auf der Sie selbstsignierten privaten

24
00:01:41,897 --> 00:01:43,430
Schlüssel und Zertifikat generieren können.

25
00:01:43,430 --> 00:01:44,960
Also lassen Sie uns gehen und einen kurzen Blick darauf werfen.

26
00:01:45,960 --> 00:01:49,440
Wenn Sie einen Windows-Rechner ausführen und

27
00:01:49,440 --> 00:01:52,080
OpenSSL noch nicht installiert ist.

28
00:01:52,080 --> 00:01:56,120
Dann bietet dieser Link Binärdateien für

29
00:01:56,120 --> 00:02:00,300
OpenSSL, die Sie herunterladen und auf Ihrem Windows-Computer installieren können.

30
00:02:00,300 --> 00:02:06,050
Dieser Link ist also in den Anweisungen für diese Übung enthalten. Wenn Sie

31
00:02:06,050 --> 00:02:08,720
also dort reingehen,

32
00:02:08,720 --> 00:02:14,145
finden Sie mehrere Downloads von

33
00:02:14,145 --> 00:02:19,742
OpenSSL-bezogenen Distributionen von Drittanbietern, die Sie herunterladen und auf Ihrem Computer installieren können.

34
00:02:19,742 --> 00:02:24,730
Installieren Sie also eines davon, um

35
00:02:24,730 --> 00:02:29,030
mit dieser Übung fortzufahren, wenn Sie OpenSSL nicht bereits auf Ihrem Computer haben.

36
00:02:30,200 --> 00:02:35,330
Nun auch, wenn Sie eine andere Möglichkeit haben,

37
00:02:36,410 --> 00:02:40,410
Ihren privaten Schlüssel und Ihr Zertifikat zu generieren.

38
00:02:40,410 --> 00:02:45,240
Hier ist ein Blog-Artikel, ein Link, auf den ich bereits in der Anleitung angegeben habe

39
00:02:45,240 --> 00:02:49,990
, der auch erklärt, wie Sie Ihren Windows-Rechner mit

40
00:02:51,410 --> 00:02:55,990
OpenSSL einrichten und auch den privaten Schlüssel und das Zertifikat generieren.

41
00:02:55,990 --> 00:03:01,140
Gehen Sie also durch diese Schritte, um Ihren Windows-Computer zum

42
00:03:01,140 --> 00:03:05,330
Generieren des privaten Schlüssels und Zertifikats zu konfigurieren.

43
00:03:05,330 --> 00:03:09,960
Nun, wenn Sie OpenSSL nicht installieren möchten, dann ist hier ein Link

44
00:03:09,960 --> 00:03:14,610
zu einer Website, die es Ihnen erlaubt,

45
00:03:14,610 --> 00:03:19,420
dort selbstsigniertes SSL-Zertifikat und Schlüssel zu generieren, wie Sie hier sehen.

46
00:03:19,420 --> 00:03:22,900
Ein Link zu dieser Seite ist also auch in der Anleitung enthalten.

47
00:03:22,900 --> 00:03:27,690
So können Sie den Server verwenden, um das SSL-Zertifikat und den

48
00:03:27,690 --> 00:03:29,930
Schlüssel für Ihre Windows-Maschine zu generieren.

49
00:03:29,930 --> 00:03:32,330
Jeder dieser Ansätze kann also zum

50
00:03:32,330 --> 00:03:38,720
Generieren des privaten Schlüssels und des Zertifikats für Ihren Windows-Computer verwendet werden.

51
00:03:38,720 --> 00:03:41,320
Da ich auf einer OSX-Maschine laufe,

52
00:03:41,320 --> 00:03:47,580
werde ich meinen privaten Schlüssel und mein Zertifikat mit OpenSSL generieren.

53
00:03:47,580 --> 00:03:52,858
Also gehen Sie zum Terminal, lassen Sie mich openssl genrsa

54
00:03:52,858 --> 00:03:59,249
1024 eingeben, was bedeutet, dass ich einen privaten Schlüssel der Größe 1024 generieren werde.

55
00:03:59,249 --> 00:04:04,400
Also werde ich dies in eine Datei mit dem Namen privaten Schlüssel einfügen, und

56
00:04:04,400 --> 00:04:10,590
sobald dies generiert wird, werden wir die entsprechende cert.csr-Datei generieren,

57
00:04:10,590 --> 00:04:16,340
so dass es openssl req Anfrage sagen wird.

58
00:04:16,340 --> 00:04:21,398
Wir fordern also ein neues Zertifikat

59
00:04:21,398 --> 00:04:27,839
mit dem Schlüssel private.key an, und es wird das generieren.

60
00:04:32,283 --> 00:04:35,530
Cert.CSR hier.

61
00:04:35,530 --> 00:04:40,440
Nun, wenn Sie die cert.csr generieren, wird es mit ein paar Fragen kommen, die

62
00:04:40,440 --> 00:04:42,378
Sie ausfüllen können.

63
00:04:42,378 --> 00:04:44,700
Sie können die Standardwerte übernehmen oder

64
00:04:44,700 --> 00:04:48,400
eigene Werte eingeben, wenn Sie dies gewählt haben.

65
00:04:48,400 --> 00:04:52,120
Es spielt keine Rolle, weil dieses Zertifikat, das wir nur innerhalb unseres

66
00:04:52,120 --> 00:04:55,730
Computers verwenden, um unseren HTTPS-Server zu testen.

67
00:04:55,730 --> 00:04:58,156
Also, lassen Sie mich einige Details ausfüllen.

68
00:05:02,293 --> 00:05:06,286
Ich lasse ein paar Dinge leer.

69
00:05:06,286 --> 00:05:09,380
Und das würde gut funktionieren,

70
00:05:09,380 --> 00:05:13,900
es spielt keine Rolle, ob Sie diese Informationen eingeben oder nicht.

71
00:05:13,900 --> 00:05:19,679
Sobald Sie also tun, dass Ihre cert.csr generiert wird und

72
00:05:19,679 --> 00:05:26,834
daraus wird das Verteilungszertifikat generiert, so

73
00:05:26,834 --> 00:05:31,651
dass wir an der Eingabeaufforderung

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

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

76
00:05:42,134 --> 00:05:47,052
Dies wird also das Zertifikat für

77
00:05:47,052 --> 00:05:52,111
uns generieren, und

78
00:05:52,111 --> 00:05:55,623
wenn Sie diese Schritte ausführen,

79
00:05:55,623 --> 00:06:00,961
werden Sie sehen, dass Sie die private.key,

80
00:06:00,961 --> 00:06:07,255
die cert.csr und certificate.pem darin haben.

81
00:06:07,255 --> 00:06:11,205
Dies wird für die Konfiguration unseres HTTPS-Servers benötigt.

82
00:06:11,205 --> 00:06:17,375
Also, jetzt, um HTTPS-Server zu konfigurieren, gehen wir zu unserem Editor.

83
00:06:17,375 --> 00:06:21,755
Im Editor gehen wir hier zu diesem bin-Ordner.

84
00:06:21,755 --> 00:06:25,135
Und im Ordner bin sehen Sie diese Datei namens www.

85
00:06:25,135 --> 00:06:30,550
Wir haben uns diese Datei in einer der früheren Übungen kurz angesehen.

86
00:06:30,550 --> 00:06:36,296
Nun, wenn wir in diese Datei

87
00:06:36,296 --> 00:06:41,704
gehen, werden wir jetzt auch das HTTPS-Kernmodul importieren, so dass

88
00:06:41,704 --> 00:06:49,776
wir sagen, HTTPS erfordert HTTPS und

89
00:06:49,776 --> 00:06:53,010
wir werden auch das Dateisystemmodul benötigen.

90
00:06:53,010 --> 00:06:57,160
Sie haben das Dateisystemmodul bereits früher

91
00:06:57,160 --> 00:06:58,560
in einer der Übungen gefunden.

92
00:06:58,560 --> 00:07:01,440
Also werden wir beide importieren.

93
00:07:01,440 --> 00:07:07,180
Und dann, wenn wir hier unten gehen, werden wir die Portnummer konfigurieren, an der unser

94
00:07:07,180 --> 00:07:13,200
HTTPS-Server läuft, also sagen wir app.set und

95
00:07:13,200 --> 00:07:17,160
wir sagen SecPort.

96
00:07:17,160 --> 00:07:22,370
Also werden wir hier eine Variable einrichten, die Secure Port genannt wird, und

97
00:07:22,370 --> 00:07:26,890
dann werde ich dies auf Port+443 initialisieren.

98
00:07:26,890 --> 00:07:29,998
Warum verwende ich diesen Port+443?

99
00:07:29,998 --> 00:07:35,881
Wenn Ihr Server auf einem Standardserver als Webserver fungiert,

100
00:07:35,881 --> 00:07:42,890
wird Ihr HTTP-Protokoll an der Portnummer 80 auf Ihrem Server ausgeführt.

101
00:07:42,890 --> 00:07:47,049
Und das sichere HTTP wird auf Portnummer 443 ausgeführt.

102
00:07:48,090 --> 00:07:54,070
Nun möchten Sie normalerweise nicht diese reservierten Ports

103
00:07:54,070 --> 00:08:00,170
in einer Entwicklungsanwendung verwenden, aber wir tun in diesem Kurs.

104
00:08:00,170 --> 00:08:02,250
Stattdessen

105
00:08:02,250 --> 00:08:08,170
hatten wir, wie Sie bereits gesehen haben, unsere Portnummer auf 3000 konfiguriert, wo unser HTTP-Server läuft.

106
00:08:08,170 --> 00:08:15,481
Also werde ich den HTTPS-Server unter Portnummer 3443 ausführen.

107
00:08:15,481 --> 00:08:18,311
Also 3000 plus 443.

108
00:08:18,311 --> 00:08:22,550
Das ist der Grund, warum ich diesen sicheren Port deklariere.

109
00:08:22,550 --> 00:08:30,748
Als Port+443, so wird unser HTTPS-Server an Port Nummer 443 laufen.

110
00:08:30,748 --> 00:08:35,296
Ich werde immer noch den HTTP-Server an Port 3000 betreiben,

111
00:08:35,296 --> 00:08:40,696
wir haben bereits den HTTP-Server hier im WWW erstellt, oder besser gesagt,

112
00:08:40,696 --> 00:08:46,220
dieser wird automatisch vom Express-Generator generiert.

113
00:08:46,220 --> 00:08:49,890
Da der HTTP-Server bereits konfiguriert ist,

114
00:08:49,890 --> 00:08:54,290
konfigurieren wir nun den HTTPS-Server.

115
00:08:55,810 --> 00:09:02,460
So konfigurieren Sie den HTTPS-Server, gleich nachdem wir den HTTP-Server konfigurieren.

116
00:09:02,460 --> 00:09:06,410
Nun der Grund, warum ich den HTTP-Server immer noch ausführen werde, ist, dass,

117
00:09:06,410 --> 00:09:12,120
wenn ich eine Anfrage am Port des HTTP-Servers erhalte,

118
00:09:12,120 --> 00:09:16,420
diese Anfrage an den HTTPS-Server umgeleitet wird.

119
00:09:16,420 --> 00:09:23,070
Mein Server wird also nur Serviceanfrage auf den HTTPS-Ports eingehen.

120
00:09:23,070 --> 00:09:27,750
Aber wenn zufällig jemand auf den Server am HTTP-Port zugreift,

121
00:09:27,750 --> 00:09:31,070
werde ich diese Anfrage an den HTTPS-Port umleiten. Das

122
00:09:31,070 --> 00:09:33,270
werden wir ein wenig später machen.

123
00:09:33,270 --> 00:09:36,316
Lassen Sie uns zunächst HTTPS-Server konfigurieren.

124
00:09:36,316 --> 00:09:40,665
Um also den HTTPS-Server zu konfigurieren,

125
00:09:40,665 --> 00:09:46,060
werde ich hier ein paar Optionen für meinen HTTPS-Server deklarieren. Denken Sie

126
00:09:46,060 --> 00:09:51,740
nun daran, dass wir für einen HTTPS-Server den privaten Schlüssel und

127
00:09:51,740 --> 00:09:56,670
das Zertifikat konfigurieren müssen, das mein HTTPS-Server verwenden wird.

128
00:09:56,670 --> 00:10:01,200
Also in den Optionen werde ich Schlüssel angeben und

129
00:10:01,200 --> 00:10:07,832
dann werde ich das Dateisystem verwenden und dann werde ich sagen, ReadFileSync.

130
00:10:09,340 --> 00:10:16,250
Also werde ich diese Datei synchron lesen, damit ich die Datei vollständig einlesen werde,

131
00:10:16,250 --> 00:10:21,290
bevor ich meinen HTTPS-Server konfigurieren kann.

132
00:10:21,290 --> 00:10:25,862
Also werde ich diese Datei von __dirname lesen.

133
00:10:25,862 --> 00:10:30,958
Sie wissen bereits, warum ich __dirname aus den vorherigen

134
00:10:30,958 --> 00:10:36,710
Übungen benutze, bei denen wir sahen, dass die fünf Systemmodule verwendet wurden.

135
00:10:36,710 --> 00:10:40,370
Und dann, also werde ich __dirname+ sagen.

136
00:10:40,370 --> 00:10:49,570
Also hier liefern wir den Pfad zur private.key.

137
00:10:49,570 --> 00:10:54,346
Nun erinnern Sie sich, dass sich diese www im Ordner bin befindet.

138
00:10:54,346 --> 00:10:57,710
Und die private.key ist auch im bin-Ordner,

139
00:10:57,710 --> 00:11:03,200
deshalb werde ich dirname+ sagen, also wird dies

140
00:11:03,200 --> 00:11:08,170
dem Dateisystem-Lesemodul angeben, dass die Datei

141
00:11:08,170 --> 00:11:13,440
aus diesem bin-Verzeichnis gelesen werden soll, aus dieser private.key Datei hier.

142
00:11:14,730 --> 00:11:18,360
Jetzt werden wir auch das Zertifikat hier lesen.

143
00:11:18,360 --> 00:11:21,585
Also sagen wir, Zertifikat fs.readFileSync.

144
00:11:21,585 --> 00:11:26,053
So wird es synchron Datei lesen, was bedeutet, dass

145
00:11:26,053 --> 00:11:33,050
die Datei vollständig gelesen wird, bevor Sie mit diesem nächsten Schritt hier fortfahren.

146
00:11:33,050 --> 00:11:40,340
Und die Datei, die wir lesen müssen, ist auch __dirname+.

147
00:11:40,340 --> 00:11:47,865
Und wir werden sagen, /certificate.pem, die wir früher generiert haben.

148
00:11:51,407 --> 00:11:56,697
Und das sollte ein Komma sein, und ich sollte kein Semikolon dort setzen,

149
00:11:56,697 --> 00:12:02,740
weil dies ein JavaScript-Objekt ist, das wir definiert haben, die Optionen hat.

150
00:12:02,740 --> 00:12:09,070
Also, sobald wir das JavaScript-Objekt definieren, dann lassen Sie uns den sicheren Server konfigurieren.

151
00:12:09,070 --> 00:12:15,407
Also sagen wir var SecureServer https.

152
00:12:15,407 --> 00:12:21,410
Daran erinnern, dass wir jetzt https verwenden werden, und dann sagen wir CreateServer.

153
00:12:21,410 --> 00:12:27,611
Also erinnern Sie sich, dass wir für HTTP unseren Server hier so konfiguriert haben.

154
00:12:27,611 --> 00:12:32,540
Für den sicheren Server, werden wir, um das zu schaffen, indem wir sagen,

155
00:12:32,540 --> 00:12:37,859
var SecureServer https.CreateServer, und dann werden wir

156
00:12:37,859 --> 00:12:44,161
die Optionen, die wir gerade konfiguriert haben, und dann der zweite Teil ist App hier.

157
00:12:44,161 --> 00:12:48,026
Mein SecureServer ist also gut und

158
00:12:48,026 --> 00:12:54,410
wird auch für meine App verfügbar sein.

159
00:12:54,410 --> 00:13:00,301
Jetzt unten hier unten, werde ich

160
00:13:00,301 --> 00:13:06,044
die SecureServer konfigurieren.Hören Sie auf Portnummer,

161
00:13:11,990 --> 00:13:13,530
SecPort. Daran

162
00:13:13,530 --> 00:13:17,950
erinnern, dass wir hier einen app.set SecPort gemacht hatten, also

163
00:13:17,950 --> 00:13:23,840
setzen wir diesen Wert hier auf die sichere Portnummer.

164
00:13:23,840 --> 00:13:27,280
Und dann unten hier unten sagen wir app.get.

165
00:13:27,280 --> 00:13:32,013
Das bedeutet also, dass dieser Wert, den wir

166
00:13:32,013 --> 00:13:36,470
früher konfiguriert haben,

167
00:13:36,470 --> 00:13:41,205
uns zur Verfügung stehen wird, um unseren Listening-Port für

168
00:13:41,205 --> 00:13:45,522
unseren Server, app.get SecPort, und

169
00:13:45,522 --> 00:13:52,059
dann liefern Sie die, Callback-Funktion hier.

170
00:13:55,029 --> 00:13:58,438
Und innerhalb dieser Callback-Funktion werden wir sagen,

171
00:14:03,514 --> 00:14:11,715
console.log Server auf Port lauschen.

172
00:14:21,317 --> 00:14:26,931
Lassen Sie uns sicheren Server hören auf Port

173
00:14:28,697 --> 00:14:32,448
Und dann, sobald wir den SecureServer konfigurieren,

174
00:14:32,448 --> 00:14:38,690
dann müssen wir, Siehe, SecureServer auf.

175
00:14:38,690 --> 00:14:45,170
Wenn also der SecureServer ein Fehlerereignis empfängt,

176
00:14:45,170 --> 00:14:51,790
dann werden wir den OnError, der unten konfiguriert ist, mögen, um das zu behandeln.

177
00:14:51,790 --> 00:14:55,520
Und dann sagen wir, SecureServer.on.

178
00:14:59,786 --> 00:15:04,428
Hören, also, wenn Sie das hörende Ereignis erhalten,

179
00:15:04,428 --> 00:15:07,950
dann rufen wir das OnListening an.

180
00:15:07,950 --> 00:15:11,100
Wo sind diese OnError und OnListening konfiguriert?

181
00:15:11,100 --> 00:15:14,830
Wenn Sie hier unten in den Code gehen, hier unten.

182
00:15:14,830 --> 00:15:20,920
Sie geben diese beiden Funktionen an, die OnError hier funktionieren,

183
00:15:20,920 --> 00:15:24,540
und dann die OnListening Funktion hier.

184
00:15:24,540 --> 00:15:30,140
Also werden wir diese beiden Funktionen verwenden, um unseren Server hier zu konfigurieren.

185
00:15:30,140 --> 00:15:32,320
Mit diesen Änderungen

186
00:15:32,320 --> 00:15:38,180
ist mein Server nun so konfiguriert, dass er auch den SecureServer unter Portnummer 443 läuft.

187
00:15:38,180 --> 00:15:44,290
Wir haben hier bereits den Standard-HTTP-Server konfiguriert.

188
00:15:44,290 --> 00:15:51,860
Sobald wir diese beiden gemacht haben, wird unser nächstes Update in der Datei app.js sein.

189
00:15:51,860 --> 00:15:58,313
Also gehe ich zur Datei app.js Was ich tun werde, ist, diesen

190
00:15:58,313 --> 00:16:04,729
Server so zu konfigurieren, dass er jeden Datenverkehr umleitet, der an den unsicheren Port kommt.

191
00:16:04,729 --> 00:16:09,780
Das ist Portnummer 3.000, es wird diese Anfrage an den sicheren Port umleiten.

192
00:16:09,780 --> 00:16:16,285
Um dies zu tun, lassen Sie mich eine Middleware einrichten, direkt nachdem wir die app.express deklariert haben.

193
00:16:16,285 --> 00:16:21,541
Also hier werden wir sagen, app.all, was bedeutet, für

194
00:16:21,541 --> 00:16:27,090
alle Anfragen, egal wie der Pfad in der Anfrage ist.

195
00:16:27,090 --> 00:16:33,118
Eigene Anfrage kommt in, ich werde das umleiten zu,

196
00:16:35,885 --> 00:16:39,582
Also sagen wir rec, res, next, und

197
00:16:39,582 --> 00:16:44,156
die Rückruffunktion, die hier definiert wird.

198
00:16:44,156 --> 00:16:51,820
Und so werden wir, Deklarieren Sie die Funktion hier drin.

199
00:16:51,820 --> 00:16:58,529
Und wir werden sagen, wenn req.secure.

200
00:16:58,529 --> 00:17:04,215
Also, wenn die eingehende Anfrage bereits eine sichere Anfrage ist,

201
00:17:04,215 --> 00:17:06,520
woher wissen wir das?

202
00:17:06,520 --> 00:17:10,591
Wenn die eingehende Anforderung bereits eine sichere Anforderung ist, dann

203
00:17:10,591 --> 00:17:15,020
wird das Anforderungsobjekt dieses Flag namens secure tragen, das bereits auf true gesetzt ist.

204
00:17:16,121 --> 00:17:19,410
Wenn die eingehende Anforderung überhaupt nicht sicherer Port

205
00:17:19,410 --> 00:17:24,960
ist, sondern stattdessen an den unsicheren Port kommt, dann wird die write.secure nicht gesetzt.

206
00:17:24,960 --> 00:17:28,331
Also, darum kümmere ich mich.

207
00:17:28,331 --> 00:17:31,511
Wenn es bereits zum sicheren Port kommt, gehe ich einfach voran,

208
00:17:31,511 --> 00:17:35,110
ohne etwas zu tun, weil es bereits zum sicheren Port kommt.

209
00:17:35,110 --> 00:17:38,514
Also kann ich einfach sagen, als nächstes.

210
00:17:39,586 --> 00:17:44,320
Sonst, so werden wir sagen, zurück als Nächstes.

211
00:17:44,320 --> 00:17:48,678
Andernfalls, so wird die sonst auftreten,

212
00:17:52,360 --> 00:17:55,780
Wenn es an den unsicheren Port kommt.

213
00:17:55,780 --> 00:17:59,850
Also in diesem Fall werde ich res.redirect sagen.

214
00:17:59,850 --> 00:18:03,920
So ist die Umleitungsmethode verfügbar,

215
00:18:03,920 --> 00:18:09,390
die die eingehende Anfrage an eine andere URL umleitet.

216
00:18:09,390 --> 00:18:15,960
Also, ich werde diese unsichere Anfrage an https://umleiten.

217
00:18:15,960 --> 00:18:24,950
Also führe ich diese Anfrage an den, req.host-Namen um.

218
00:18:24,950 --> 00:18:27,720
Die Anfrage wird also bereits den Hostnamen tragen.

219
00:18:27,720 --> 00:18:31,083
Also, weil dies auf den gleichen Server kommt, so dass

220
00:18:31,083 --> 00:18:33,657
ich auf den gleichen Server umleiten.

221
00:18:33,657 --> 00:18:38,428
Und dann sagen wir +,

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

223
00:18:44,860 --> 00:18:52,468
Nun erinnern Sie sich, dass wir bereits den sicheren Port in der app.get dort konfiguriert hatten.

224
00:18:52,468 --> 00:19:00,861
Also sagen wir app.get SecPort + req.url.

225
00:19:00,861 --> 00:19:05,757
Jetzt enthält diese req.url den Rest des Pfades

226
00:19:05,757 --> 00:19:10,080
außer dem Hostnamen und der Portnummer.

227
00:19:10,080 --> 00:19:12,943
Wenn Sie also einen localhost sagen: 3000,

228
00:19:12,943 --> 00:19:17,685
wird dieser localhost: 3000 vom ersten Teil abgedeckt und

229
00:19:17,685 --> 00:19:24,110
dies wird von dieser Konfiguration hier zu localhost: 3443 umgeleitet.

230
00:19:24,110 --> 00:19:29,410
Und dann, der Rest davon, wird die req.url den tatsächlichen Pfad auf dem Server enthalten.

231
00:19:29,410 --> 00:19:34,220
Also fügen wir es einfach dem Umleitungspfad hinzu, und

232
00:19:34,220 --> 00:19:39,390
dies ist der Pfad, zu dem ich die eingehende Anforderungsnachricht umleiten werde.

233
00:19:39,390 --> 00:19:42,200
Sobald ich die eingehende Anforderungsnachricht umgeleitet habe,

234
00:19:42,200 --> 00:19:46,630
wird meine Anforderungsnachricht an den gesicherten Port umgeleitet.

235
00:19:46,630 --> 00:19:50,240
Und eine letzte Änderung könnte res.redirect,

236
00:19:50,240 --> 00:19:54,470
wir werden den geschriebenen Statuscode als 307 hinzufügen.

237
00:19:54,470 --> 00:19:59,084
307 stellt hier dar, dass sich die Zielressource vorübergehend unter einer

238
00:19:59,084 --> 00:20:00,890
anderen URL befindet.

239
00:20:00,890 --> 00:20:04,990
Und der User-Agent darf die Anforderungsmethode nicht ändern, wenn er

240
00:20:04,990 --> 00:20:08,120
in der automatischen Umleitung zu dieser URL reformiert.

241
00:20:08,120 --> 00:20:11,880
Daher erwarte ich, dass der Benutzeragent

242
00:20:11,880 --> 00:20:16,780
mit der gleichen Methode, die er für den ursprünglichen Endpunkt verwendet hat, erneut versucht.

243
00:20:16,780 --> 00:20:21,820
Das ist es, dass die Änderung, die ich in der Datei app.js vornehmen muss.

244
00:20:21,820 --> 00:20:26,452
Nachdem wir also die app.js und das www geändert haben und

245
00:20:26,452 --> 00:20:30,548
auch den Schlüssel und das Zertifikat generiert

246
00:20:30,548 --> 00:20:35,751
haben, können wir nun die Änderungen speichern und unseren Server starten.

247
00:20:36,864 --> 00:20:41,606
Gehen Sie zum Terminal oder zum Befehlsfenster, stellen Sie sicher, dass Sie sich

248
00:20:41,606 --> 00:20:46,340
wieder in Ihrem ConfusionServer-Ordner befinden, und starten Sie dann den Server.

249
00:20:46,340 --> 00:20:49,443
Also bin ich am Terminal und tippe npm start.

250
00:20:52,473 --> 00:20:57,295
Und Ihr Server wird einsatzbereit sein, und Sie bemerken auch, dass wir

251
00:20:57,295 --> 00:21:01,848
hier ausdrucken und sagen, Secure Server lauschen auf Port Nummer 3443 hier.

252
00:21:01,848 --> 00:21:09,322
Um den sicheren Server zu betonen, gehen Sie hier zu einem Browser wie Chrome.

253
00:21:09,322 --> 00:21:13,648
Und dann, lassen Sie mich zuerst auf den sicheren Server unter

254
00:21:13,648 --> 00:21:19,750
localhost zugreifen: 3443, wo mein sicherer Server läuft.

255
00:21:19,750 --> 00:21:29,490
Und beachten Sie, dass, wenn ich versuchen, die https://localhost3443 im Browser,

256
00:21:29,490 --> 00:21:34,170
es wird mit dieser Nachricht kommen hier sagen, Ihre Verbindung ist nicht privat.

257
00:21:34,170 --> 00:21:37,670
Offensichtlich, weil das Zertifikat, das wir jetzt verwenden,

258
00:21:37,670 --> 00:21:39,640
ein selbstsigniertes Zertifikat ist.

259
00:21:39,640 --> 00:21:44,770
Und dies wird von Chrome nicht als gültiges Zertifikat erkannt.

260
00:21:44,770 --> 00:21:49,780
Aber da wir wissen, was wir tun, ist es in Ordnung für uns zu akzeptieren

261
00:21:49,780 --> 00:21:56,210
, dass wir erlauben werden, zu diesem bestimmten Server weiterzufahren.

262
00:21:56,210 --> 00:22:00,630
Jetzt werde ich Ihnen dringend raten, dies niemals auf

263
00:22:00,630 --> 00:22:04,110
einer Website zu tun, die mit dem Vorschlag kommt.

264
00:22:04,110 --> 00:22:07,260
Wir tun dies speziell in dieser Übung, weil

265
00:22:07,260 --> 00:22:09,430
wir genau wissen, wo der Server ist, und

266
00:22:09,430 --> 00:22:13,480
wir wissen, dass wir den Server explizit selbst konfiguriert haben.

267
00:22:13,480 --> 00:22:18,930
Aber wenn eine andere Website mit dieser Nachricht kommt, würde ich

268
00:22:18,930 --> 00:22:24,750
Ihnen dringend raten, den Vorschlag nicht zu akzeptieren und mit dem Zugriff auf den Server fortzufahren.

269
00:22:24,750 --> 00:22:31,840
So sollten Sie zurück zur Sicherheit springen, wenn Sie jemals dies oder auf einer anderen Website sehen.

270
00:22:31,840 --> 00:22:36,360
Aber da wir wissen, dass dies unser eigener Server ist, gehe ich

271
00:22:36,360 --> 00:22:43,450
hier zum localhost, und dann würden Sie sehen, dass wir auf den Express-Server zugreifen.

272
00:22:43,450 --> 00:22:45,900
Und Sie würden hier oben feststellen

273
00:22:45,900 --> 00:22:51,280
, dass Ihr Browser Ihnen zeigt, dass Sie auf einen unsicheren Server zugreifen.

274
00:22:51,280 --> 00:22:54,040
Wenn Sie darauf klicken, würden Sie die Nachricht

275
00:22:54,040 --> 00:22:57,160
hier sehen, dass Ihre Verbindung zur Website nicht sicher ist.

276
00:22:57,160 --> 00:23:04,068
Aber wir wissen, dass, da wir den Server selbst betreiben, dies in Ordnung ist.

277
00:23:04,068 --> 00:23:08,860
So würden Sie auf den HTTPS-Server zugreifen.

278
00:23:08,860 --> 00:23:14,338
Nun, lassen Sie mich versuchen, auf den gleichen HTTP-Server zuzugreifen, aber lassen Sie mich auf die,

279
00:23:16,040 --> 00:23:19,206
Standard localhost: 3000 zugreifen.

280
00:23:19,206 --> 00:23:24,625
Hier läuft unser unsicherer Server zum normalen HTTP-Server.

281
00:23:24,625 --> 00:23:30,190
Wenn ich also versuche, auf diesen HTTP localhost zuzugreifen: 3000 zuzugreifen,

282
00:23:30,190 --> 00:23:37,700
dann sehen Sie sofort, dass mein Server mich zum sicheren Server umleitet.

283
00:23:37,700 --> 00:23:41,850
So stellen Sie Ihren Server, den wir gerade konfigurieren

284
00:23:41,850 --> 00:23:46,740
, sicher, dass Sie immer auf den Server über seinen sicheren Port zugreifen.

285
00:23:46,740 --> 00:23:50,040
Dies garantiert auch die Tatsache, dass beim Austausch,

286
00:23:50,040 --> 00:23:52,902
beim Senden Ihrer Anmeldeinformationen usw.

287
00:23:52,902 --> 00:23:56,343
der gesamte Austausch der Anmeldeinformationen in der Kopfzeile der Nachricht gewährleistet ist.

288
00:23:56,343 --> 00:24:01,863
Und auch wenn Sie sich mit der lokalen Authentifizierung anmelden, alles, was

289
00:24:01,863 --> 00:24:07,910
auf sichere Weise in einem verschlüsselten Kanal zwischen Ihrem Client und dem Server geschieht.

290
00:24:07,910 --> 00:24:15,010
Nun haben wir unseren Server so konfiguriert, dass er ein sicherer HTTPS-Server ist.

291
00:24:15,010 --> 00:24:18,090
Damit schließen wir diese Übung ab.

292
00:24:18,090 --> 00:24:22,880
In dieser Übung haben wir gelernt, wie Sie einen sicheren HTTP-Server konfigurieren oder

293
00:24:22,880 --> 00:24:25,930
das HTTPS-Protokoll verwenden.

294
00:24:25,930 --> 00:24:27,994
Damit schließen wir diese Übung ab.

295
00:24:27,994 --> 00:24:34,230
Dies ist ein guter Zeitpunkt für Sie, ein Git-Commit mit der Nachricht HTTPS zu machen.

296
00:24:34,230 --> 00:24:36,719
( MUSIK)