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

2
00:00:04,781 --> 00:00:09,377
Nella lezione precedente abbiamo appreso informazioni su HTTPS e su come possono effettuare

3
00:00:09,377 --> 00:00:13,141
comunicazioni sicure tra il client e il server.

4
00:00:13,141 --> 00:00:17,960
Abbiamo anche imparato un po 'sulla crittografia,

5
00:00:17,960 --> 00:00:21,700
abbastanza per capire come funziona HTTPS.

6
00:00:21,700 --> 00:00:24,800
Per noi di configurare il nostro server HTTP,

7
00:00:24,800 --> 00:00:28,500
abbiamo bisogno di ottenere una chiave pubblica e un certificato.

8
00:00:28,500 --> 00:00:34,650
Ora configureremo il nostro server Confusione per utilizzare HTTPS in questo esercizio.

9
00:00:34,650 --> 00:00:38,940
Quindi, procediamo avanti, prima di generare la chiave e

10
00:00:38,940 --> 00:00:42,130
il certificato che possiamo usare per il nostro server e

11
00:00:42,130 --> 00:00:47,240
poi modificare la nostra applicazione espressa per supportare HTTPS.

12
00:00:49,060 --> 00:00:53,310
Per iniziare questo esercizio, andare alla cartella del server Confusione.

13
00:00:53,310 --> 00:00:57,230
E poi nel tuo terminale o nella finestra di comando e

14
00:00:57,230 --> 00:01:02,200
poi vai nella cartella bin all'interno della cartella del server Confusione.

15
00:01:02,200 --> 00:01:05,440
E nella cartella bin vedrai un file chiamato www.

16
00:01:05,440 --> 00:01:09,520
Questa è la cartella in cui stiamo andando a generare la nostra chiave privata e

17
00:01:09,520 --> 00:01:12,310
quindi anche generare il certificato per il

18
00:01:12,310 --> 00:01:18,840
nostro server HTTPS utilizzando uno strumento da riga di comando chiamato come OpenSSL.

19
00:01:18,840 --> 00:01:24,320
Ora OpenSSL è in genere installato su macchine Mac OS per impostazione predefinita.

20
00:01:24,320 --> 00:01:31,030
Per le macchine Windows potrebbe essere necessario scaricare e installare OpenSSL in modo esplicito.

21
00:01:31,030 --> 00:01:35,780
Ora ho fornito un paio di link nelle istruzioni per andare a

22
00:01:35,780 --> 00:01:37,550
prendere OpenSSL.

23
00:01:37,550 --> 00:01:41,897
Ti ho anche fornito un sito web in cui puoi generare

24
00:01:41,897 --> 00:01:43,430
chiave privata autofirmata e certificato.

25
00:01:43,430 --> 00:01:44,960
Quindi andiamo a dare un'occhiata veloce a questo.

26
00:01:45,960 --> 00:01:49,440
Se si esegue una macchina Windows e

27
00:01:49,440 --> 00:01:52,080
se non si dispone di OpenSSL già installato.

28
00:01:52,080 --> 00:01:56,120
Quindi questo link fornisce file binari per

29
00:01:56,120 --> 00:02:00,300
OpenSSL che è possibile scaricare e installare sul computer Windows.

30
00:02:00,300 --> 00:02:06,050
Quindi questo link è fornito nelle istruzioni per questo esercizio.

31
00:02:06,050 --> 00:02:08,720
Quindi andando lì,

32
00:02:08,720 --> 00:02:14,145
troverete diversi download di

33
00:02:14,145 --> 00:02:19,742
distribuzioni OpenSSL di terze parti che è possibile scaricare e installare sul vostro computer.

34
00:02:19,742 --> 00:02:24,730
Quindi installate uno di questi per procedere

35
00:02:24,730 --> 00:02:29,030
con questo esercizio se non avete già OpenSSL sulla vostra macchina.

36
00:02:30,200 --> 00:02:35,330
Ora, anche se vuoi un altro modo di

37
00:02:36,410 --> 00:02:40,410
generare la tua chiave privata e il tuo certificato.

38
00:02:40,410 --> 00:02:45,240
Ecco un articolo del blog, un link a cui ho già fornito nelle istruzioni,

39
00:02:45,240 --> 00:02:49,990
che spiega anche come configurare la tua macchina Windows con

40
00:02:51,410 --> 00:02:55,990
OpenSSL e generare anche la chiave privata e il certificato.

41
00:02:55,990 --> 00:03:01,140
Quindi seguire questa procedura per configurare il computer Windows per

42
00:03:01,140 --> 00:03:05,330
la generazione della chiave privata e del certificato.

43
00:03:05,330 --> 00:03:09,960
Ora, se non vuoi installare OpenSSL, ecco un link

44
00:03:09,960 --> 00:03:14,610
a un sito che ti permette di generare

45
00:03:14,610 --> 00:03:19,420
lì certificato SSL autofirmato e chiave come vedi qui.

46
00:03:19,420 --> 00:03:22,900
Quindi un link a questo sito è fornito anche nelle istruzioni.

47
00:03:22,900 --> 00:03:27,690
In questo modo è possibile utilizzare il server per generare il certificato SSL e la

48
00:03:27,690 --> 00:03:29,930
chiave per il computer Windows.

49
00:03:29,930 --> 00:03:32,330
Quindi chiunque di questi approcci può essere utilizzato per

50
00:03:32,330 --> 00:03:38,720
generare la chiave privata e il certificato per il tuo computer Windows.

51
00:03:38,720 --> 00:03:41,320
Dal momento che sono in esecuzione su una macchina OSX,

52
00:03:41,320 --> 00:03:47,580
genererò la mia chiave privata e il mio certificato usando OpenSSL.

53
00:03:47,580 --> 00:03:52,858
Quindi, andando al terminale, lasciami digitare openssl genrsa

54
00:03:52,858 --> 00:03:59,249
1024, il che significa che genererò una chiave privata di dimensione 1024.

55
00:03:59,249 --> 00:04:04,400
Quindi ho intenzione di metterlo in un file chiamato chiave privata, e

56
00:04:04,400 --> 00:04:10,590
una volta generato questo, allora genereremo il file cert.csr corrispondente in

57
00:04:10,590 --> 00:04:16,340
modo che dirà la richiesta di req openssl.

58
00:04:16,340 --> 00:04:21,398
Quindi stiamo chiedendo un nuovo certificato,

59
00:04:21,398 --> 00:04:27,839
con la chiave private.key, e lo genererà.

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

61
00:04:35,530 --> 00:04:40,440
Ora, quando si genera il cert.csr, verrà con alcune

62
00:04:40,440 --> 00:04:42,378
domande da compilare.

63
00:04:42,378 --> 00:04:44,700
È possibile accettare i valori predefiniti oppure

64
00:04:44,700 --> 00:04:48,400
è possibile inserire i propri valori se lo si è scelto.

65
00:04:48,400 --> 00:04:52,120
Non importa perché questo certificato che stiamo usando solo all'interno del nostro

66
00:04:52,120 --> 00:04:55,730
computer per testare il nostro server HTTPS.

67
00:04:55,730 --> 00:04:58,156
Quindi, lasciatemi inserire alcuni dettagli.

68
00:05:02,293 --> 00:05:06,286
Lascerò alcune cose vuote.

69
00:05:06,286 --> 00:05:09,380
E funzionerebbe bene,

70
00:05:09,380 --> 00:05:13,900
non importa se riempi queste informazioni o meno.

71
00:05:13,900 --> 00:05:19,679
Quindi una volta fatto che il tuo cert.csr è generato e

72
00:05:19,679 --> 00:05:26,834
da quello genererà il certificato di distribuzione, quindi

73
00:05:26,834 --> 00:05:31,651
per questo digiteremo al prompt dei comandi

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.

76
00:05:42,134 --> 00:05:47,052
Quindi questo genererà il certificato per

77
00:05:47,052 --> 00:05:52,111
noi, e così una volta completati questi passaggi,

78
00:05:52,111 --> 00:05:55,623
quando guardi la tua cartella,

79
00:05:55,623 --> 00:06:00,961
vedrai che hai il private.key,

80
00:06:00,961 --> 00:06:07,255
il cert.csr e certificate.pem lì dentro.

81
00:06:07,255 --> 00:06:11,205
Questo sarà necessario per configurare il nostro server HTTPS.

82
00:06:11,205 --> 00:06:17,375
Quindi, ora per configurare il server HTTPS, andiamo al nostro editor.

83
00:06:17,375 --> 00:06:21,755
Nell' editor, andremo a questa cartella bin qui.

84
00:06:21,755 --> 00:06:25,135
E nella cartella bin, vedrai questo file chiamato www.

85
00:06:25,135 --> 00:06:30,550
Abbiamo esaminato brevemente questo file in uno degli esercizi precedenti.

86
00:06:30,550 --> 00:06:36,296
Ora entrando in questo file stiamo andando

87
00:06:36,296 --> 00:06:41,704
a importare anche il modulo principale HTTPS quindi

88
00:06:41,704 --> 00:06:49,776
diremo HTTPS richiede HTTPS e

89
00:06:49,776 --> 00:06:53,010
avremo anche bisogno del modulo del file system.

90
00:06:53,010 --> 00:06:57,160
Hai già incontrato il modulo del file system

91
00:06:57,160 --> 00:06:58,560
in precedenza in uno degli esercizi.

92
00:06:58,560 --> 00:07:01,440
Quindi importeremo entrambi.

93
00:07:01,440 --> 00:07:07,180
E poi, andando qui, configureremo il numero di porta in cui il nostro

94
00:07:07,180 --> 00:07:13,200
server HTTPS sarà in esecuzione, quindi diremo app.set e

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

96
00:07:17,160 --> 00:07:22,370
Quindi stiamo andando a impostare una variabile qui chiamata porta sicura e

97
00:07:22,370 --> 00:07:26,890
poi inizializzerò questo a port+443.

98
00:07:26,890 --> 00:07:29,998
Ora, perché uso questa porta+443?

99
00:07:29,998 --> 00:07:35,881
In un server standard, se il server agisce come server Web,

100
00:07:35,881 --> 00:07:42,890
il protocollo HTTP verrà eseguito alla porta numero 80 del server.

101
00:07:42,890 --> 00:07:47,049
E l'HTTP sicuro verrà eseguito sulla porta numero 443.

102
00:07:48,090 --> 00:07:54,070
Ora normalmente non si desidera utilizzare quelle porte riservate

103
00:07:54,070 --> 00:08:00,170
in un'applicazione di sviluppo, ma stiamo facendo in questo corso.

104
00:08:00,170 --> 00:08:02,250
Invece, come hai visto in precedenza,

105
00:08:02,250 --> 00:08:08,170
avevamo configurato il nostro numero di porta su 3000 dove il nostro server HTTP è in esecuzione.

106
00:08:08,170 --> 00:08:15,481
Quindi eseguirò il server HTTPS, al numero di porta 3443.

107
00:08:15,481 --> 00:08:18,311
Quindi 3000 più 443.

108
00:08:18,311 --> 00:08:22,550
Quindi questo è il motivo per cui sto dichiarando questa porta sicura.

109
00:08:22,550 --> 00:08:30,748
Come porta+443, quindi il nostro server HTTPS sarà in esecuzione alla porta numero 443.

110
00:08:30,748 --> 00:08:35,296
Sarò ancora in esecuzione il server HTTP alla porta 3000,

111
00:08:35,296 --> 00:08:40,696
abbiamo già creato il server HTTP qui nel WWW, o meglio,

112
00:08:40,696 --> 00:08:46,220
questo viene generato automaticamente dal generatore espresso.

113
00:08:46,220 --> 00:08:49,890
Ora, poiché il server HTTP è già configurato,

114
00:08:49,890 --> 00:08:54,290
ora stiamo andando a configurare il server HTTPS.

115
00:08:55,810 --> 00:09:02,460
Quindi, per configurare il server HTTPS, subito dopo aver configurato il server HTTP.

116
00:09:02,460 --> 00:09:06,410
Ora il motivo per cui eseguirò ancora il server HTTP è che,

117
00:09:06,410 --> 00:09:12,120
se ottengo una richiesta sulla porta del server HTTP,

118
00:09:12,120 --> 00:09:16,420
quella richiesta verrà reindirizzata al server HTTPS.

119
00:09:16,420 --> 00:09:23,070
Quindi il mio server richiederà solo la richiesta di servizio in arrivo sulle porte HTTPS.

120
00:09:23,070 --> 00:09:27,750
Ma se per caso qualcuno accede al server alla porta HTTP,

121
00:09:27,750 --> 00:09:31,070
reindirizzerò quella richiesta alla porta HTTPS.

122
00:09:31,070 --> 00:09:33,270
Lo faremo un po' più tardi.

123
00:09:33,270 --> 00:09:36,316
Innanzitutto, configuriamo il server HTTPS.

124
00:09:36,316 --> 00:09:40,665
Quindi, per configurare il server HTTPS, proprio qui,

125
00:09:40,665 --> 00:09:46,060
dichiaro alcune opzioni qui per il mio server HTTPS.

126
00:09:46,060 --> 00:09:51,740
Ora ricorda che per un server HTTPS, abbiamo bisogno di configurare la chiave privata e

127
00:09:51,740 --> 00:09:56,670
il certificato che il mio server HTTPS sta per utilizzare.

128
00:09:56,670 --> 00:10:01,200
Quindi nelle opzioni, ho intenzione di specificare la chiave e

129
00:10:01,200 --> 00:10:07,832
poi userò il file system e poi dirò, readFileSync.

130
00:10:09,340 --> 00:10:16,250
Quindi leggerò questo file in modo sincrono in modo da completare la lettura nel file

131
00:10:16,250 --> 00:10:21,290
prima di poter configurare il mio server HTTPS.

132
00:10:21,290 --> 00:10:25,862
Quindi ho intenzione di leggere questo file da __dirname.

133
00:10:25,862 --> 00:10:30,958
Sai già perché uso __dirname dagli

134
00:10:30,958 --> 00:10:36,710
esercizi precedenti in cui abbiamo visto i cinque moduli di sistema utilizzati.

135
00:10:36,710 --> 00:10:40,370
E poi, così dirò __dirname+.

136
00:10:40,370 --> 00:10:49,570
Quindi qui, forniamo il percorso per private.key.

137
00:10:49,570 --> 00:10:54,346
Ora, ricorda che questo www si trova nella cartella bin.

138
00:10:54,346 --> 00:10:57,710
E private.key è anche nella cartella bin, quindi

139
00:10:57,710 --> 00:11:03,200
è per questo che dirname+ questo, quindi questo specificherà

140
00:11:03,200 --> 00:11:08,170
al modulo di lettura del file system che il file dovrebbe essere

141
00:11:08,170 --> 00:11:13,440
letto da questa directory bin, da quel file private.key qui.

142
00:11:14,730 --> 00:11:18,360
Ora anche, leggeremo nel certificato qui.

143
00:11:18,360 --> 00:11:21,585
Quindi diremo, cert fs.readFileSync.

144
00:11:21,585 --> 00:11:26,053
Quindi leggerà il file in modo sincrono,

145
00:11:26,053 --> 00:11:33,050
il che significa che, il file verrà letto completamente prima di procedere a quel passaggio successivo qui.

146
00:11:33,050 --> 00:11:40,340
E il file che dobbiamo leggere è anche __dirname+.

147
00:11:40,340 --> 00:11:47,865
E diremo, /certificate.pem, che abbiamo generato in precedenza.

148
00:11:51,407 --> 00:11:56,697
E che dovrebbe essere una virgola, e non dovrei mettere un punto e virgola lì,

149
00:11:56,697 --> 00:12:02,740
perché questo è un oggetto JavaScript che abbiamo definito ha le opzioni.

150
00:12:02,740 --> 00:12:09,070
Quindi, una volta definito l'oggetto JavaScript, allora cerchiamo di configurare il server sicuro.

151
00:12:09,070 --> 00:12:15,407
Quindi diremo var SecureServer https.

152
00:12:15,407 --> 00:12:21,410
Ricordiamo che, ora, useremo https, e poi diremo CreateServer.

153
00:12:21,410 --> 00:12:27,611
Quindi ricorda che per HTTP, abbiamo configurato il nostro server in questo modo qui.

154
00:12:27,611 --> 00:12:32,540
Per il server sicuro, stiamo andando a creare che dicendo,

155
00:12:32,540 --> 00:12:37,859
var SecureServer HTTPS.CreateServer, e poi forniremo

156
00:12:37,859 --> 00:12:44,161
le opzioni che abbiamo appena configurato e poi la seconda parte è app qui.

157
00:12:44,161 --> 00:12:48,026
Quindi il mio SecureServer

158
00:12:48,026 --> 00:12:54,410
sta bene, sarà anche disponibile per l'accesso alla mia app.

159
00:12:54,410 --> 00:13:00,301
Ora qui sotto, ho intenzione di configurare

160
00:13:00,301 --> 00:13:06,044
SecureServer.Listen sul numero di porta,

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

162
00:13:13,530 --> 00:13:17,950
Ricordiamo che qui avevamo fatto un secPort app.set, quindi

163
00:13:17,950 --> 00:13:23,840
impostiamo questo valore qui al numero di porta sicuro.

164
00:13:23,840 --> 00:13:27,280
E poi qui sotto, stiamo dicendo app.get.

165
00:13:27,280 --> 00:13:32,013
Quindi questo significa che questo valore che abbiamo

166
00:13:32,013 --> 00:13:36,470
configurato in precedenza sarà disponibile per

167
00:13:36,470 --> 00:13:41,205
noi per configurare la nostra porta di ascolto per

168
00:13:41,205 --> 00:13:45,522
il nostro server, app.get SecPort, e

169
00:13:45,522 --> 00:13:52,059
quindi fornire la, funzione di callback qui.

170
00:13:55,029 --> 00:13:58,438
E all'interno di questa funzione di callback, diremo,

171
00:14:03,514 --> 00:14:11,715
console.log Server in ascolto sulla porta.

172
00:14:21,317 --> 00:14:26,931
Facciamo ascolto server sicuro sulla porta

173
00:14:28,697 --> 00:14:32,448
e poi, una volta configurato il SecureServer,

174
00:14:32,448 --> 00:14:38,690
allora abbiamo bisogno di, Vedi, SecureServer su.

175
00:14:38,690 --> 00:14:45,170
Quindi, se il SecureServer riceve un evento di errore,

176
00:14:45,170 --> 00:14:51,790
allora ci piacerà l'onError, che è configurato di seguito, per gestirlo.

177
00:14:51,790 --> 00:14:55,520
E poi diremo, SecureServer.On.

178
00:14:59,786 --> 00:15:04,428
Ascoltando, quindi se ricevi l'evento di ascolto,

179
00:15:04,428 --> 00:15:07,950
chiameremo onListening.

180
00:15:07,950 --> 00:15:11,100
Ora dove sono configurati questi onError e onListening?

181
00:15:11,100 --> 00:15:14,830
Se entri nel codice qui, qui sotto.

182
00:15:14,830 --> 00:15:20,920
Stai specificando queste due funzioni che la funzione OnError qui,

183
00:15:20,920 --> 00:15:24,540
e quindi la funzione OnListening qui.

184
00:15:24,540 --> 00:15:30,140
Quindi stiamo andando a utilizzare queste due funzioni per configurare il nostro server qui.

185
00:15:30,140 --> 00:15:32,320
Quindi, con queste modifiche,

186
00:15:32,320 --> 00:15:38,180
il mio server è ora configurato per eseguire anche SecureServer alla porta numero 443.

187
00:15:38,180 --> 00:15:44,290
Abbiamo già configurato il server HTTP standard qui già.

188
00:15:44,290 --> 00:15:51,860
Quindi, una volta che abbiamo fatto questi due, quindi, il nostro prossimo aggiornamento sarà nel file app.js.

189
00:15:51,860 --> 00:15:58,313
Quindi andando al file app.js Quello che ho intenzione di fare è configurare questo

190
00:15:58,313 --> 00:16:04,729
server in modo tale che reindirizzerà qualsiasi traffico che arriva alla porta non sicura.

191
00:16:04,729 --> 00:16:09,780
Quella è la porta numero 3.000, reindirizzerà quella richiesta alla porta sicura.

192
00:16:09,780 --> 00:16:16,285
Quindi, per farlo, lasciami impostare un middleware subito dopo aver dichiarato l'app.express.

193
00:16:16,285 --> 00:16:21,541
Quindi qui diremo, app.all, quindi il che significa, per

194
00:16:21,541 --> 00:16:27,090
tutte le richieste, indipendentemente dal percorso nella richiesta. La

195
00:16:27,090 --> 00:16:33,118
propria richiesta in arrivo, ho intenzione di reindirizzarlo a,

196
00:16:35,885 --> 00:16:39,582
Quindi diremo rec, res, next, e

197
00:16:39,582 --> 00:16:44,156
la funzione di richiamo definita qui.

198
00:16:44,156 --> 00:16:51,820
E così faremo, Dichiarare la funzione qui dentro.

199
00:16:51,820 --> 00:16:58,529
E diremo, se req.secure.

200
00:16:58,529 --> 00:17:04,215
Quindi significa che, se la richiesta in arrivo è già una richiesta sicura,

201
00:17:04,215 --> 00:17:06,520
quindi come facciamo a saperlo?

202
00:17:06,520 --> 00:17:10,591
Se la richiesta in arrivo è già una richiesta sicura, l'

203
00:17:10,591 --> 00:17:15,020
oggetto richiesta porterà questo flag chiamato sicuro che sarà già impostato su true.

204
00:17:16,121 --> 00:17:19,410
Se la richiesta in arrivo non è affatto una porta sicura ma

205
00:17:19,410 --> 00:17:24,960
viene invece verso la porta non sicura, allora write.secure non verrà impostato.

206
00:17:24,960 --> 00:17:28,331
Quindi, e' di questo che mi sto occupando.

207
00:17:28,331 --> 00:17:31,511
Se sta già arrivando alla porta sicura, ho intenzione di andare avanti

208
00:17:31,511 --> 00:17:35,110
senza fare nulla perché sta già arrivando al porto sicuro.

209
00:17:35,110 --> 00:17:38,514
Quindi posso semplicemente dire, il prossimo.

210
00:17:39,586 --> 00:17:44,320
Altrimenti, quindi diremo, torna dopo.

211
00:17:44,320 --> 00:17:48,678
In caso contrario, in modo che il contrario si verificherà,

212
00:17:52,360 --> 00:17:55,780
Quando si tratta della porta insicura.

213
00:17:55,780 --> 00:17:59,850
Quindi, in questo caso, dirò res.redirect.

214
00:17:59,850 --> 00:18:03,920
Quindi è disponibile il metodo di reindirizzamento,

215
00:18:03,920 --> 00:18:09,390
che reindirizza la richiesta in entrata a un altro URL.

216
00:18:09,390 --> 00:18:15,960
Quindi, reindirizzerò questa richiesta insicura a https://.

217
00:18:15,960 --> 00:18:24,950
Quindi sto reindirizzando questa richiesta al nome, req.host.

218
00:18:24,950 --> 00:18:27,720
Quindi la richiesta porterà già il nome host.

219
00:18:27,720 --> 00:18:31,083
Quindi, perché questo sta arrivando allo stesso server, quindi

220
00:18:31,083 --> 00:18:33,657
sto reindirizzando allo stesso server.

221
00:18:33,657 --> 00:18:38,428
E poi diremo +,

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

223
00:18:44,860 --> 00:18:52,468
Ora ricordiamo che avevamo già configurato la porta sicura nell'app.get lì.

224
00:18:52,468 --> 00:19:00,861
Quindi diremo app.get SecPort + req.url.

225
00:19:00,861 --> 00:19:05,757
Ora questo req.url conterrà il resto del percorso

226
00:19:05,757 --> 00:19:10,080
tranne il nome host e il numero di porta.

227
00:19:10,080 --> 00:19:12,943
Quindi, se dici un localhost: 3000,

228
00:19:12,943 --> 00:19:17,685
quel localhost: 3000 sarà coperto dalla prima parte e

229
00:19:17,685 --> 00:19:24,110
questo sarà reindirizzato a localhost: 3443 da questa configurazione qui.

230
00:19:24,110 --> 00:19:29,410
E poi, il resto, il req.url conterrà il percorso effettivo sul server.

231
00:19:29,410 --> 00:19:34,220
Quindi, lo aggiungiamo al percorso di reindirizzamento, e

232
00:19:34,220 --> 00:19:39,390
questo è il percorso a cui reindirizzerò il messaggio di richiesta in arrivo.

233
00:19:39,390 --> 00:19:42,200
Quindi, una volta reindirizzato il messaggio di richiesta in arrivo,

234
00:19:42,200 --> 00:19:46,630
il mio messaggio di richiesta verrà reindirizzato alla porta protetta.

235
00:19:46,630 --> 00:19:50,240
E un ultimo cambiamento potrebbe res.redirect,

236
00:19:50,240 --> 00:19:54,470
aggiungeremo il codice di stato scritto come 307.

237
00:19:54,470 --> 00:19:59,084
307 qui rappresenta che la risorsa di destinazione risiede temporaneamente sotto

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

239
00:20:00,890 --> 00:20:04,990
E l'agente utente non deve modificare il metodo di richiesta se si

240
00:20:04,990 --> 00:20:08,120
riforma nel reindirizzamento automatico a quell'URL.

241
00:20:08,120 --> 00:20:11,880
Quindi, mi aspetto che l'agente utente riprovi

242
00:20:11,880 --> 00:20:16,780
con lo stesso metodo che hanno usato per l'endpoint originale.

243
00:20:16,780 --> 00:20:21,820
Questo è tutto, che la modifica che ho bisogno di fare nel file app.js.

244
00:20:21,820 --> 00:20:26,452
Quindi, dopo aver cambiato app.js e www, e

245
00:20:26,452 --> 00:20:30,548
anche generato la chiave e il certificato,

246
00:20:30,548 --> 00:20:35,751
ora possiamo salvare le modifiche e andare e avviare il nostro server.

247
00:20:36,864 --> 00:20:41,606
Passando al terminale o alla finestra dei comandi, assicurarsi di essere di

248
00:20:41,606 --> 00:20:46,340
nuovo nella cartella ConfusionServer e quindi avviare il server.

249
00:20:46,340 --> 00:20:49,443
Quindi sono al terminale a digitare npm start.

250
00:20:52,473 --> 00:20:57,295
E il vostro server sarà attivo e funzionante, e si nota anche che stiamo stampando

251
00:20:57,295 --> 00:21:01,848
qui dicendo, Secure Server in ascolto sulla porta numero 3443 qui.

252
00:21:01,848 --> 00:21:09,322
Per accentuare il server sicuro, vai a un browser come Chrome qui.

253
00:21:09,322 --> 00:21:13,648
E poi, lasciami prima accedere al server sicuro su

254
00:21:13,648 --> 00:21:19,750
localhost: 3443 che è dove il mio server sicuro è in esecuzione.

255
00:21:19,750 --> 00:21:29,490
E si noti che quando provo il https://localhost3443 nel browser,

256
00:21:29,490 --> 00:21:34,170
verrà fuori con questo messaggio qui dicendo, La tua connessione non è privata.

257
00:21:34,170 --> 00:21:37,670
Ovviamente, perché il certificato che stiamo usando in questo momento

258
00:21:37,670 --> 00:21:39,640
è un certificato autofirmato.

259
00:21:39,640 --> 00:21:44,770
E questo non è riconosciuto da Chrome come certificato valido.

260
00:21:44,770 --> 00:21:49,780
Ma dato che sappiamo cosa stiamo facendo, va bene per noi accettare

261
00:21:49,780 --> 00:21:56,210
che stiamo per permettere di procedere a questo particolare server.

262
00:21:56,210 --> 00:22:00,630
Ora, ti consiglierò vivamente di non farlo mai su

263
00:22:00,630 --> 00:22:04,110
nessun sito che viene fuori con il suggerimento.

264
00:22:04,110 --> 00:22:07,260
Lo stiamo facendo specificamente in questo esercizio perché

265
00:22:07,260 --> 00:22:09,430
sappiamo esattamente dove si trova il server, e

266
00:22:09,430 --> 00:22:13,480
sappiamo che abbiamo configurato esplicitamente il server noi stessi.

267
00:22:13,480 --> 00:22:18,930
Ma se qualche altro sito web viene fuori con questo messaggio,

268
00:22:18,930 --> 00:22:24,750
ti consiglio vivamente di non accettare il suggerimento e procedere all'accesso al server.

269
00:22:24,750 --> 00:22:31,840
Quindi dovresti tornare in sicurezza se mai vedi questo o su qualsiasi altro sito web.

270
00:22:31,840 --> 00:22:36,360
Ma dal momento che sappiamo che questo è il nostro server, ho intenzione di procedere

271
00:22:36,360 --> 00:22:43,450
al localhost qui, e poi si vedrebbe che stiamo accedendo al server Express.

272
00:22:43,450 --> 00:22:45,900
E anche si noterà qui

273
00:22:45,900 --> 00:22:51,280
che il browser sta mostrando che si sta accedendo a un server non sicuro.

274
00:22:51,280 --> 00:22:54,040
Quando si fa clic su questo, si vedrebbe il messaggio

275
00:22:54,040 --> 00:22:57,160
qui che dice che la connessione al sito non è sicura.

276
00:22:57,160 --> 00:23:04,068
Ma sappiamo che dal momento che stiamo eseguendo il server da soli, questo va bene farlo.

277
00:23:04,068 --> 00:23:08,860
Quindi questo è il modo in cui si accede al server HTTPS.

278
00:23:08,860 --> 00:23:14,338
Ora, permettetemi di provare ad accedere allo stesso server HTTP ma, permettetemi di accedere al,

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

280
00:23:19,206 --> 00:23:24,625
Questo è dove il nostro server insicuro sono al normale server HTTP è in esecuzione.

281
00:23:24,625 --> 00:23:30,190
Quindi, quando provo ad accedere a quel localhost HTTP: 3000,

282
00:23:30,190 --> 00:23:37,700
vedi immediatamente che il mio server mi reindirizzerà al server sicuro.

283
00:23:37,700 --> 00:23:41,850
Così in questo modo, il server che abbiamo appena configurato

284
00:23:41,850 --> 00:23:46,740
garantire che si sarà sempre accedere al server sulla sua porta sicura.

285
00:23:46,740 --> 00:23:50,040
Ciò garantisce anche il fatto che, quando si scambiano,

286
00:23:50,040 --> 00:23:52,902
quando si inviano le credenziali, e così via,

287
00:23:52,902 --> 00:23:56,343
tutto lo scambio delle credenziali nell'intestazione del messaggio.

288
00:23:56,343 --> 00:24:01,863
E anche quando si accede con l'autenticazione locale, tutto ciò viene fatto in

289
00:24:01,863 --> 00:24:07,910
modo sicuro in un canale crittografato tra il client e il server.

290
00:24:07,910 --> 00:24:15,010
Quindi, ora, abbiamo configurato il nostro server per essere un server HTTPS sicuro.

291
00:24:15,010 --> 00:24:18,090
Con questo, completiamo questo esercizio.

292
00:24:18,090 --> 00:24:22,880
In questo esercizio, abbiamo imparato come configurare un server HTTP sicuro o

293
00:24:22,880 --> 00:24:25,930
utilizzare il protocollo HTTPS.

294
00:24:25,930 --> 00:24:27,994
Con questo, completiamo questo esercizio.

295
00:24:27,994 --> 00:24:34,230
Questo è un buon momento per fare un commit git con il messaggio, HTTPS.

296
00:24:34,230 --> 00:24:36,719
[ MUSIC]