1
00:00:00,000 --> 00:00:04,781
[MÚSICA]

2
00:00:04,781 --> 00:00:09,377
Na palestra anterior, aprendemos sobre HTTPS e como eles podem realizar uma

3
00:00:09,377 --> 00:00:13,141
comunicação segura entre o cliente e o servidor.

4
00:00:13,141 --> 00:00:17,960
Também aprendemos um pouco sobre criptografia,

5
00:00:17,960 --> 00:00:21,700
o suficiente para entender como HTTPS funciona.

6
00:00:21,700 --> 00:00:24,800
Para que possamos configurar nosso servidor HTTP,

7
00:00:24,800 --> 00:00:28,500
precisamos obter uma chave pública e um certificado.

8
00:00:28,500 --> 00:00:34,650
Agora vamos configurar o nosso servidor ConfUSIC para usar HTTPS neste exercício.

9
00:00:34,650 --> 00:00:38,940
Então, vamos avançar, primeiro para gerar a chave e

10
00:00:38,940 --> 00:00:42,130
o certificado que podemos usar para o nosso servidor e,

11
00:00:42,130 --> 00:00:47,240
em seguida, modificar nossa aplicação expressa para suportar HTTPS.

12
00:00:49,060 --> 00:00:53,310
Para começar este exercício, vá para a pasta do servidor Confusion.

13
00:00:53,310 --> 00:00:57,230
E, em seguida, no terminal ou na janela de comando e

14
00:00:57,230 --> 00:01:02,200
, em seguida, vá para a pasta bin dentro da pasta do servidor Confusion.

15
00:01:02,200 --> 00:01:05,440
E na pasta bin você verá um arquivo chamado www.

16
00:01:05,440 --> 00:01:09,520
Esta é a pasta onde vamos gerar nossa chave privada e, em

17
00:01:09,520 --> 00:01:12,310
seguida, também gerar o certificado para o

18
00:01:12,310 --> 00:01:18,840
nosso servidor HTTPS usando uma ferramenta de linha de comando chamada como OpenSSL.

19
00:01:18,840 --> 00:01:24,320
Agora, o OpenSSL é normalmente instalado em máquinas Mac OS por padrão.

20
00:01:24,320 --> 00:01:31,030
Para máquinas Windows, você pode precisar baixar e instalar o OpenSSL explicitamente.

21
00:01:31,030 --> 00:01:35,780
Agora eu forneci alguns links nas instruções para você ir e

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

23
00:01:37,550 --> 00:01:41,897
Eu também forneci um site onde você pode gerar

24
00:01:41,897 --> 00:01:43,430
chave privada auto-assinada e certificado.

25
00:01:43,430 --> 00:01:44,960
Então vamos dar uma olhada rápida nisso.

26
00:01:45,960 --> 00:01:49,440
Se você estiver executando um computador Windows e

27
00:01:49,440 --> 00:01:52,080
se você não tiver OpenSSL já instalado.

28
00:01:52,080 --> 00:01:56,120
Em seguida, este link fornece binários para

29
00:01:56,120 --> 00:02:00,300
OpenSSL que você pode baixar e instalar em sua máquina Windows.

30
00:02:00,300 --> 00:02:06,050
Portanto, este link é fornecido nas instruções para este exercício.

31
00:02:06,050 --> 00:02:08,720
Então, indo lá,

32
00:02:08,720 --> 00:02:14,145
você vai encontrar vários downloads de

33
00:02:14,145 --> 00:02:19,742
distribuições relacionadas OpenSSL de terceiros que você pode baixar e instalar em seu computador.

34
00:02:19,742 --> 00:02:24,730
Então instale um destes para prosseguir

35
00:02:24,730 --> 00:02:29,030
com este exercício se você não tem OpenSSL já em sua máquina.

36
00:02:30,200 --> 00:02:35,330
Agora, também se você quiser outra maneira de

37
00:02:36,410 --> 00:02:40,410
gerar sua chave privada e certificado.

38
00:02:40,410 --> 00:02:45,240
Aqui está um artigo de blog, um link para o qual eu já forneceu nas instruções,

39
00:02:45,240 --> 00:02:49,990
que explica também como configurar sua máquina Windows com

40
00:02:51,410 --> 00:02:55,990
OpenSSL e também gerar a chave privada e o certificado.

41
00:02:55,990 --> 00:03:01,140
Portanto, percorra essas etapas para configurar seu computador Windows para

42
00:03:01,140 --> 00:03:05,330
gerar a chave privada e o certificado.

43
00:03:05,330 --> 00:03:09,960
Agora, se você não quiser instalar OpenSSL, então aqui está um link

44
00:03:09,960 --> 00:03:14,610
para um site que permite que você gere

45
00:03:14,610 --> 00:03:19,420
lá certificado SSL auto-assinado e chave como você vê aqui.

46
00:03:19,420 --> 00:03:22,900
Portanto, um link para este site também é fornecido nas instruções.

47
00:03:22,900 --> 00:03:27,690
Assim, você pode usar o servidor para gerar o certificado SSL e a

48
00:03:27,690 --> 00:03:29,930
chave para sua máquina Windows.

49
00:03:29,930 --> 00:03:32,330
Portanto, qualquer uma dessas abordagens pode ser usada para

50
00:03:32,330 --> 00:03:38,720
gerar a chave privada e o certificado para sua máquina Windows.

51
00:03:38,720 --> 00:03:41,320
Como estou executando em uma máquina OSX,

52
00:03:41,320 --> 00:03:47,580
vou gerar minha chave privada e certificado usando OpenSSL.

53
00:03:47,580 --> 00:03:52,858
Então, indo para o terminal, deixe-me digitar openssl genrsa

54
00:03:52,858 --> 00:03:59,249
1024, o que significa que eu vou gerar uma chave privada de tamanho 1024.

55
00:03:59,249 --> 00:04:04,400
Então eu vou colocar isso em um arquivo chamado chave privada, e uma

56
00:04:04,400 --> 00:04:10,590
vez que isso é gerado, em seguida, vamos gerar o arquivo cert.csr correspondente

57
00:04:10,590 --> 00:04:16,340
para que ele vai dizer openssl req request.

58
00:04:16,340 --> 00:04:21,398
Então, estamos solicitando um novo certificado,

59
00:04:21,398 --> 00:04:27,839
com a chave private.key, e ele irá gerar isso.

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

61
00:04:35,530 --> 00:04:40,440
Agora, quando você gerar o cert.csr, ele vai aparecer com algumas perguntas

62
00:04:40,440 --> 00:04:42,378
para você preencher.

63
00:04:42,378 --> 00:04:44,700
Você pode aceitar os valores padrão ou

64
00:04:44,700 --> 00:04:48,400
você pode preencher seus próprios valores se você assim escolher.

65
00:04:48,400 --> 00:04:52,120
Isso realmente não importa porque este certificado que estamos usando apenas dentro do nosso

66
00:04:52,120 --> 00:04:55,730
computador para testar nosso servidor HTTPS.

67
00:04:55,730 --> 00:04:58,156
Então, deixe-me preencher alguns detalhes.

68
00:05:02,293 --> 00:05:06,286
Vou deixar algumas coisas vazias lá.

69
00:05:06,286 --> 00:05:09,380
E isso funcionaria muito bem,

70
00:05:09,380 --> 00:05:13,900
não importa se você preenche essa informação ou não.

71
00:05:13,900 --> 00:05:19,679
Então, uma vez que você faz que seu cert.csr é gerado e a

72
00:05:19,679 --> 00:05:26,834
partir disso eles irão gerar o certificado de distribuição

73
00:05:26,834 --> 00:05:31,651
para que nós vamos digitar no prompt de comando

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
Então isso irá gerar o certificado para

77
00:05:47,052 --> 00:05:52,111
nós, e assim que você concluir essas etapas,

78
00:05:52,111 --> 00:05:55,623
quando você olhar para sua pasta,

79
00:05:55,623 --> 00:06:00,961
você verá que você tem o private.key,

80
00:06:00,961 --> 00:06:07,255
o cert.csr e o certificate.pem lá.

81
00:06:07,255 --> 00:06:11,205
Isso será necessário para configurar nosso servidor HTTPS.

82
00:06:11,205 --> 00:06:17,375
Então, agora para configurar o servidor HTTPS, vamos para o nosso editor.

83
00:06:17,375 --> 00:06:21,755
No editor, vamos para esta pasta bin aqui.

84
00:06:21,755 --> 00:06:25,135
E na pasta bin, você verá esse arquivo chamado www.

85
00:06:25,135 --> 00:06:30,550
Analisamos brevemente este arquivo em um dos exercícios anteriores.

86
00:06:30,550 --> 00:06:36,296
Agora, indo

87
00:06:36,296 --> 00:06:41,704
para este arquivo, vamos agora também importar o módulo núcleo HTTPS então

88
00:06:41,704 --> 00:06:49,776
vamos dizer HTTPS requer HTTPS E

89
00:06:49,776 --> 00:06:53,010
também vamos exigir o módulo do sistema de arquivos.

90
00:06:53,010 --> 00:06:57,160
Você já encontrou o módulo do sistema de arquivos anteriormente

91
00:06:57,160 --> 00:06:58,560
em um dos exercícios.

92
00:06:58,560 --> 00:07:01,440
Então vamos importar os dois.

93
00:07:01,440 --> 00:07:07,180
E então, indo para baixo aqui, vamos configurar o número da porta em que nosso

94
00:07:07,180 --> 00:07:13,200
servidor HTTPS será executado, então vamos dizer app.set e

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

96
00:07:17,160 --> 00:07:22,370
Então vamos configurar uma variável aqui chamada porta segura e, em

97
00:07:22,370 --> 00:07:26,890
seguida, eu vou inicializar isso para porta+443.

98
00:07:26,890 --> 00:07:29,998
Agora, por que eu uso esta porta+443?

99
00:07:29,998 --> 00:07:35,881
Em um servidor padrão, se o servidor estiver atuando como um servidor web,

100
00:07:35,881 --> 00:07:42,890
seu protocolo HTTP será executado na porta número 80 do servidor.

101
00:07:42,890 --> 00:07:47,049
E o HTTP seguro será executado na porta número 443.

102
00:07:48,090 --> 00:07:54,070
Agora você normalmente não gostaria de usar essas portas reservadas

103
00:07:54,070 --> 00:08:00,170
em um aplicativo de desenvolvimento, mas estamos fazendo neste curso.

104
00:08:00,170 --> 00:08:02,250
Em vez disso, como você viu anteriormente,

105
00:08:02,250 --> 00:08:08,170
configuramos nosso número de porta para 3000 onde nosso servidor HTTP está sendo executado.

106
00:08:08,170 --> 00:08:15,481
Então eu vou estar executando o servidor HTTPS, na porta número 3443.

107
00:08:15,481 --> 00:08:18,311
Então 3000 mais 443.

108
00:08:18,311 --> 00:08:22,550
Então é por isso que estou declarando este porto seguro.

109
00:08:22,550 --> 00:08:30,748
Como porta+443, então nosso servidor HTTPS será executado na porta número 443.

110
00:08:30,748 --> 00:08:35,296
Eu ainda estarei executando o servidor HTTP na porta 3000,

111
00:08:35,296 --> 00:08:40,696
nós já criamos o servidor HTTP aqui na WWW, ou melhor,

112
00:08:40,696 --> 00:08:46,220
isso é gerado automaticamente pelo gerador express.

113
00:08:46,220 --> 00:08:49,890
Agora, uma vez que o servidor HTTP já está configurado,

114
00:08:49,890 --> 00:08:54,290
vamos agora configurar o servidor HTTPS.

115
00:08:55,810 --> 00:09:02,460
Então, para configurar o servidor HTTPS, logo após configurar o servidor HTTP.

116
00:09:02,460 --> 00:09:06,410
Agora a razão pela qual eu ainda vou executar o servidor HTTP é que,

117
00:09:06,410 --> 00:09:12,120
se eu receber uma solicitação na porta do servidor HTTP, em seguida,

118
00:09:12,120 --> 00:09:16,420
essa solicitação será redirecionada para o servidor HTTPS.

119
00:09:16,420 --> 00:09:23,070
Portanto, o meu servidor irá apenas solicitar o serviço que entra nas portas HTTPS.

120
00:09:23,070 --> 00:09:27,750
Mas se por acaso alguém acessar o servidor na porta HTTP,

121
00:09:27,750 --> 00:09:31,070
eu redirecionarei essa solicitação para a porta HTTPS.

122
00:09:31,070 --> 00:09:33,270
Faremos isso um pouco mais tarde.

123
00:09:33,270 --> 00:09:36,316
Primeiro, vamos configurar o servidor HTTPS.

124
00:09:36,316 --> 00:09:40,665
Então, para configurar o servidor HTTPS, aqui mesmo,

125
00:09:40,665 --> 00:09:46,060
vou declarar algumas opções aqui para o meu servidor HTTPS.

126
00:09:46,060 --> 00:09:51,740
Agora lembre-se que para um servidor HTTPS, precisamos configurar a chave privada e

127
00:09:51,740 --> 00:09:56,670
o certificado que meu servidor HTTPS vai usar.

128
00:09:56,670 --> 00:10:01,200
Então, nas opções, eu vou especificar chave e, em

129
00:10:01,200 --> 00:10:07,832
seguida, eu vou usar o sistema de arquivos e, em seguida, eu vou dizer, ReadFileSync.

130
00:10:09,340 --> 00:10:16,250
Então eu vou ler este arquivo de forma síncrona para que eu vou completar a leitura no arquivo

131
00:10:16,250 --> 00:10:21,290
antes de eu poder configurar meu servidor HTTPS.

132
00:10:21,290 --> 00:10:25,862
Então eu vou ler este arquivo de __dirname.

133
00:10:25,862 --> 00:10:30,958
Você já sabe por que eu uso __dirname dos

134
00:10:30,958 --> 00:10:36,710
exercícios anteriores onde vimos o módulo de cinco sistemas sendo usado.

135
00:10:36,710 --> 00:10:40,370
E então, então eu vou dizer __dirname+.

136
00:10:40,370 --> 00:10:49,570
Então, aqui, nós fornecemos o caminho para o private.key.

137
00:10:49,570 --> 00:10:54,346
Agora, lembre-se que este www está na pasta bin.

138
00:10:54,346 --> 00:10:57,710
E o private.key também está na pasta bin, então

139
00:10:57,710 --> 00:11:03,200
é por isso que eu vou dizer dirname+ isto, então isso irá especificar

140
00:11:03,200 --> 00:11:08,170
para o módulo de leitura do sistema de arquivos que o arquivo deve ser

141
00:11:08,170 --> 00:11:13,440
lido a partir deste diretório bin, a partir desse arquivo private.key aqui.

142
00:11:14,730 --> 00:11:18,360
Agora também, vamos ler no certificado aqui.

143
00:11:18,360 --> 00:11:21,585
Então vamos dizer, cert fs.readFileSync.

144
00:11:21,585 --> 00:11:26,053
Assim, ele irá ler arquivo de forma

145
00:11:26,053 --> 00:11:33,050
síncrona, o que significa que, o arquivo será lido completamente antes de prosseguir para o próximo passo aqui.

146
00:11:33,050 --> 00:11:40,340
E o arquivo que precisamos ler também é __dirname+.

147
00:11:40,340 --> 00:11:47,865
E diremos, /certificate.pem, que geramos anteriormente.

148
00:11:51,407 --> 00:11:56,697
E isso deve ser uma vírgula, e eu não deveria colocar um ponto-e-vírgula lá,

149
00:11:56,697 --> 00:12:02,740
porque este é um objeto JavaScript que definimos tem as opções.

150
00:12:02,740 --> 00:12:09,070
Então, uma vez que definimos o objeto JavaScript, então vamos configurar o servidor seguro.

151
00:12:09,070 --> 00:12:15,407
Então, vamos dizer var SecureServer https.

152
00:12:15,407 --> 00:12:21,410
Lembre-se que, agora, vamos estar usando https, e então vamos dizer CreateServer.

153
00:12:21,410 --> 00:12:27,611
Então lembre-se que para HTTP, nós configuramos nosso servidor assim aqui.

154
00:12:27,611 --> 00:12:32,540
Para o servidor seguro, vamos criar isso dizendo,

155
00:12:32,540 --> 00:12:37,859
var SecureServer https.CreateServer, e então vamos fornecer

156
00:12:37,859 --> 00:12:44,161
as opções que acabamos de configurar e, em seguida, a segunda parte é o aplicativo aqui.

157
00:12:44,161 --> 00:12:48,026
Então meu SecureServer está bem,

158
00:12:48,026 --> 00:12:54,410
também estará disponível para o meu aplicativo acessar.

159
00:12:54,410 --> 00:13:00,301
Agora abaixo aqui, vou configurar

160
00:13:00,301 --> 00:13:06,044
o SecuReserver.Listen no número da porta,

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

162
00:13:13,530 --> 00:13:17,950
Lembre-se que aqui nós tínhamos feito um secPort app.set, então

163
00:13:17,950 --> 00:13:23,840
nós definimos este valor aqui para o número da porta segura.

164
00:13:23,840 --> 00:13:27,280
E, em seguida, abaixo aqui, estamos dizendo app.get.

165
00:13:27,280 --> 00:13:32,013
Então isso significa que esse valor que

166
00:13:32,013 --> 00:13:36,470
configuramos anteriormente estará disponível

167
00:13:36,470 --> 00:13:41,205
para nós para configurar nossa porta de escuta para o

168
00:13:41,205 --> 00:13:45,522
nosso servidor, app.get SecPort e,

169
00:13:45,522 --> 00:13:52,059
em seguida, fornecer a função Callback aqui.

170
00:13:55,029 --> 00:13:58,438
E dentro desta função de retorno de chamada, vamos dizer,

171
00:14:03,514 --> 00:14:11,715
console.log Server escutando na porta.

172
00:14:21,317 --> 00:14:26,931
Vamos fazer o servidor de escuta segura na porta

173
00:14:28,697 --> 00:14:32,448
E então, uma vez que configuramos o SecureServer,

174
00:14:32,448 --> 00:14:38,690
então precisamos, Veja, SecureServer ligado.

175
00:14:38,690 --> 00:14:45,170
Então, se o SecureServer recebe um evento de erro,

176
00:14:45,170 --> 00:14:51,790
então vamos gostar do OnError, que está configurado abaixo, para lidar com isso.

177
00:14:51,790 --> 00:14:55,520
E então vamos dizer, Secureserver.on.

178
00:14:59,786 --> 00:15:04,428
Ouvindo, então se você receber o evento de escuta,

179
00:15:04,428 --> 00:15:07,950
então vamos chamar o OnListening.

180
00:15:07,950 --> 00:15:11,100
Agora, onde esses OnError e OnListening estão configurados?

181
00:15:11,100 --> 00:15:14,830
Se você entrar no código aqui, abaixo aqui.

182
00:15:14,830 --> 00:15:20,920
Você está especificando essas duas funções que a função OnError aqui

183
00:15:20,920 --> 00:15:24,540
e, em seguida, a função OnListening aqui.

184
00:15:24,540 --> 00:15:30,140
Então vamos usar essas duas funções para configurar nosso servidor aqui.

185
00:15:30,140 --> 00:15:32,320
Assim, com essas alterações,

186
00:15:32,320 --> 00:15:38,180
meu servidor agora está configurado para executar também o SecureServer na porta número 443.

187
00:15:38,180 --> 00:15:44,290
Já configuramos o servidor HTTP padrão aqui.

188
00:15:44,290 --> 00:15:51,860
Então, uma vez que tenhamos feito esses dois, então, nossa próxima atualização será no arquivo app.js.

189
00:15:51,860 --> 00:15:58,313
Então, indo para o arquivo app.js O que eu vou fazer é configurar este

190
00:15:58,313 --> 00:16:04,729
servidor de modo que ele irá redirecionar qualquer tráfego vindo para a porta insegura.

191
00:16:04,729 --> 00:16:09,780
Essa é a porta número 3.000, vai redirecionar o pedido para a porta segura.

192
00:16:09,780 --> 00:16:16,285
Então, para fazer isso, deixe-me configurar um middleware logo após declararmos o app.express.

193
00:16:16,285 --> 00:16:21,541
Então, aqui vamos dizer, app.all, então o que significa, para

194
00:16:21,541 --> 00:16:27,090
todas as solicitações, não importa qual o caminho na solicitação é.

195
00:16:27,090 --> 00:16:33,118
Próprio pedido chegando, eu vou redirecionar isso para,

196
00:16:35,885 --> 00:16:39,582
então vamos dizer rec, res, em seguida, e

197
00:16:39,582 --> 00:16:44,156
a função de retorno de chamada sendo definida aqui.

198
00:16:44,156 --> 00:16:51,820
E então vamos, Declarar a função aqui dentro.

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

200
00:16:58,529 --> 00:17:04,215
Então, o que significa que, se o pedido de entrada já é um pedido seguro,

201
00:17:04,215 --> 00:17:06,520
então como sabemos isso?

202
00:17:06,520 --> 00:17:10,591
Se a solicitação de entrada já é uma solicitação segura, então o

203
00:17:10,591 --> 00:17:15,020
objeto de solicitação carregará esse sinalizador chamado secure que já será definido como true.

204
00:17:16,121 --> 00:17:19,410
Se a solicitação de entrada não é de todo porta segura, mas

205
00:17:19,410 --> 00:17:24,960
em vez disso está chegando à porta insegura, então a write.secure não será definida.

206
00:17:24,960 --> 00:17:28,331
Então, é disso que estou cuidando.

207
00:17:28,331 --> 00:17:31,511
Se ele já está chegando ao porto seguro, eu vou seguir em frente

208
00:17:31,511 --> 00:17:35,110
sem fazer nada porque ele já está chegando ao porto seguro.

209
00:17:35,110 --> 00:17:38,514
Então eu posso dizer, em seguida.

210
00:17:39,586 --> 00:17:44,320
Caso contrário, então diremos, volte em seguida.

211
00:17:44,320 --> 00:17:48,678
Caso contrário, então o caso contrário ocorrerá,

212
00:17:52,360 --> 00:17:55,780
Quando ele está vindo para a porta insegura.

213
00:17:55,780 --> 00:17:59,850
Então, neste caso, vou dizer res.redirect.

214
00:17:59,850 --> 00:18:03,920
Portanto, o método de redirecionamento está disponível, o

215
00:18:03,920 --> 00:18:09,390
que redireciona a solicitação de entrada para outro URL.

216
00:18:09,390 --> 00:18:15,960
Então, redirecionarei essa solicitação insegura para https://.

217
00:18:15,960 --> 00:18:24,950
Então eu estou redirecionando essa solicitação para o nome, req.host.

218
00:18:24,950 --> 00:18:27,720
Assim, a solicitação já carregará o nome do host.

219
00:18:27,720 --> 00:18:31,083
Então, porque isso está chegando ao mesmo servidor, então

220
00:18:31,083 --> 00:18:33,657
eu estou redirecionando para o mesmo servidor.

221
00:18:33,657 --> 00:18:38,428
E então vamos dizer +,

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

223
00:18:44,860 --> 00:18:52,468
Agora lembre-se de que já tínhamos configurado a porta segura no app.get lá.

224
00:18:52,468 --> 00:19:00,861
Então, vamos dizer app.get SecPort + req.url.

225
00:19:00,861 --> 00:19:05,757
Agora este req.url conterá o resto do caminho

226
00:19:05,757 --> 00:19:10,080
, exceto o nome do host e o número da porta.

227
00:19:10,080 --> 00:19:12,943
Então, se você disser um localhost:3000,

228
00:19:12,943 --> 00:19:17,685
esse localhost:3000 será coberto pela primeira parte e

229
00:19:17,685 --> 00:19:24,110
isso será redirecionado para localhost:3443 por esta configuração aqui.

230
00:19:24,110 --> 00:19:29,410
E, em seguida, o req.url irá conter o caminho real no servidor.

231
00:19:29,410 --> 00:19:34,220
Então, nós apenas adicioná-lo ao caminho de redirecionamento, e

232
00:19:34,220 --> 00:19:39,390
este é o caminho para o qual eu vou redirecionar a mensagem de solicitação de entrada.

233
00:19:39,390 --> 00:19:42,200
Assim que eu redirecionar a mensagem de solicitação recebida

234
00:19:42,200 --> 00:19:46,630
, minha mensagem de solicitação será redirecionada para a porta segura.

235
00:19:46,630 --> 00:19:50,240
E uma última alteração poderia res.redirect,

236
00:19:50,240 --> 00:19:54,470
vamos adicionar o código de status escrito como 307.

237
00:19:54,470 --> 00:19:59,084
307 aqui representa que o recurso de destino reside temporariamente em

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

239
00:20:00,890 --> 00:20:04,990
E o agente do usuário não deve alterar o método de solicitação se ele se

240
00:20:04,990 --> 00:20:08,120
reformar no redirecionamento automático para esse URL.

241
00:20:08,120 --> 00:20:11,880
Então, estarei esperando que o agente do usuário tente novamente

242
00:20:11,880 --> 00:20:16,780
com o mesmo método que eles usaram para o ponto final original.

243
00:20:16,780 --> 00:20:21,820
É isso, que a mudança que eu preciso fazer no arquivo app.js.

244
00:20:21,820 --> 00:20:26,452
Então, tendo alterado o app.js, e o www, e

245
00:20:26,452 --> 00:20:30,548
também gerado a chave e o certificado,

246
00:20:30,548 --> 00:20:35,751
agora podemos salvar as alterações, e ir e iniciar nosso servidor.

247
00:20:36,864 --> 00:20:41,606
Indo para o terminal ou a janela de comando, certifique-se de que está de

248
00:20:41,606 --> 00:20:46,340
volta na pasta ConfusionServer e, em seguida, inicie o servidor.

249
00:20:46,340 --> 00:20:49,443
Então eu estou no terminal digitando NPM start.

250
00:20:52,473 --> 00:20:57,295
E seu servidor estará funcionando, e você também percebe que estamos imprimindo

251
00:20:57,295 --> 00:21:01,848
aqui dizendo, Servidor seguro escutando na porta número 3443 aqui.

252
00:21:01,848 --> 00:21:09,322
Para realçar o servidor seguro, acesse um navegador como o Chrome aqui.

253
00:21:09,322 --> 00:21:13,648
E então, deixe-me primeiro acessar o servidor seguro no

254
00:21:13,648 --> 00:21:19,750
localhost: 3443 que é onde meu servidor seguro está sendo executado.

255
00:21:19,750 --> 00:21:29,490
E observe que quando eu tentar o https://localhost3443 no navegador,

256
00:21:29,490 --> 00:21:34,170
ele aparecerá com esta mensagem aqui dizendo, Sua conexão não é privada.

257
00:21:34,170 --> 00:21:37,670
Obviamente, porque o certificado que estamos usando agora

258
00:21:37,670 --> 00:21:39,640
é um certificado auto-assinado.

259
00:21:39,640 --> 00:21:44,770
E isso não é reconhecido pelo Chrome como um certificado válido.

260
00:21:44,770 --> 00:21:49,780
Mas já que sabemos o que estamos fazendo, está tudo bem para nós

261
00:21:49,780 --> 00:21:56,210
aceitarmos que vamos permitir prosseguir para este servidor em particular.

262
00:21:56,210 --> 00:22:00,630
Agora, eu recomendo fortemente que você nunca faça isso em

263
00:22:00,630 --> 00:22:04,110
nenhum site que venha com a sugestão.

264
00:22:04,110 --> 00:22:07,260
Estamos fazendo isso especificamente neste exercício porque

265
00:22:07,260 --> 00:22:09,430
sabemos exatamente onde o servidor está, e

266
00:22:09,430 --> 00:22:13,480
sabemos que nós mesmos configuramos explicitamente o servidor.

267
00:22:13,480 --> 00:22:18,930
Mas se qualquer outro site aparecer com esta mensagem, eu

268
00:22:18,930 --> 00:22:24,750
recomendo fortemente que você não aceite a sugestão e proceda ao acesso ao servidor.

269
00:22:24,750 --> 00:22:31,840
Então você deve voltar para a segurança se você vir este ou em qualquer outro site.

270
00:22:31,840 --> 00:22:36,360
Mas como sabemos que este é o nosso próprio servidor, eu vou prosseguir para

271
00:22:36,360 --> 00:22:43,450
o localhost aqui, e então você veria que estamos acessando o servidor Express.

272
00:22:43,450 --> 00:22:45,900
E você também notaria aqui em cima

273
00:22:45,900 --> 00:22:51,280
que seu navegador está mostrando que você está acessando um servidor inseguro.

274
00:22:51,280 --> 00:22:54,040
Quando você clica nisso, você veria essa mensagem

275
00:22:54,040 --> 00:22:57,160
aqui dizendo que sua conexão com o site não é segura.

276
00:22:57,160 --> 00:23:04,068
Mas sabemos que, uma vez que estamos executando o servidor nós mesmos, isso é bom para fazê-lo.

277
00:23:04,068 --> 00:23:08,860
Então é assim que você estaria acessando o servidor HTTPS.

278
00:23:08,860 --> 00:23:14,338
Agora, deixe-me tentar acessar o mesmo servidor HTTP, mas, deixe-me acessar o,

279
00:23:16,040 --> 00:23:19,206
padrão localhost: 3000.

280
00:23:19,206 --> 00:23:24,625
Este é o lugar onde nosso servidor inseguro está para o servidor HTTP normal está sendo executado.

281
00:23:24,625 --> 00:23:30,190
Então, quando eu tento acessar esse localhost HTTP: 3000,

282
00:23:30,190 --> 00:23:37,700
então você vê imediatamente que meu servidor vai me redirecionar para o servidor seguro.

283
00:23:37,700 --> 00:23:41,850
Desta forma, seu servidor que acabamos de configurar

284
00:23:41,850 --> 00:23:46,740
garantir que você sempre acessará o servidor em sua porta segura.

285
00:23:46,740 --> 00:23:50,040
Isso também garante o fato de que, quando você está trocando,

286
00:23:50,040 --> 00:23:52,902
quando você está enviando suas credenciais, e assim por diante,

287
00:23:52,902 --> 00:23:56,343
toda a troca de credenciais no cabeçalho da mensagem.

288
00:23:56,343 --> 00:24:01,863
E também quando você faz login com a autenticação local, tudo isso é feito de

289
00:24:01,863 --> 00:24:07,910
forma segura em um canal criptografado entre seu cliente e o servidor.

290
00:24:07,910 --> 00:24:15,010
Então, agora, configuramos nosso servidor para ser um servidor HTTPS seguro.

291
00:24:15,010 --> 00:24:18,090
Com isso, completamos este exercício.

292
00:24:18,090 --> 00:24:22,880
Neste exercício, aprendemos como configurar um servidor HTTP seguro ou

293
00:24:22,880 --> 00:24:25,930
usando o protocolo HTTPS.

294
00:24:25,930 --> 00:24:27,994
Com isso, completamos este exercício.

295
00:24:27,994 --> 00:24:34,230
Este é um bom momento para você fazer um git commit com a mensagem, HTTPS.

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