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

2
00:00:04,781 --> 00:00:09,377
Trong bài giảng trước, chúng tôi đã học được về HTTPS và làm thế nào họ có thể thực hiện

3
00:00:09,377 --> 00:00:13,141
giao tiếp an toàn giữa máy khách và máy chủ.

4
00:00:13,141 --> 00:00:17,960
Chúng tôi cũng học được một chút về mật mã,

5
00:00:17,960 --> 00:00:21,700
đủ để hiểu cách HTTPS hoạt động.

6
00:00:21,700 --> 00:00:24,800
Để chúng tôi cấu hình máy chủ HTTP của chúng

7
00:00:24,800 --> 00:00:28,500
tôi, chúng tôi cần phải có được một khóa công khai và chứng chỉ.

8
00:00:28,500 --> 00:00:34,650
Bây giờ chúng ta sẽ cấu hình máy chủ Confant của chúng tôi để sử dụng HTTPS trong bài tập này.

9
00:00:34,650 --> 00:00:38,940
Vì vậy, chúng ta hãy tiến hành về phía trước, trước tiên để tạo khóa và

10
00:00:38,940 --> 00:00:42,130
chứng chỉ mà chúng ta có thể sử dụng cho máy chủ của chúng tôi và

11
00:00:42,130 --> 00:00:47,240
sau đó sửa đổi ứng dụng thể hiện của chúng tôi để hỗ trợ HTTPS.

12
00:00:49,060 --> 00:00:53,310
Để bắt đầu bài tập này, hãy vào thư mục máy chủ Confant.

13
00:00:53,310 --> 00:00:57,230
Và sau đó trong cửa sổ thiết bị đầu cuối hoặc lệnh của bạn và

14
00:00:57,230 --> 00:01:02,200
sau đó đi vào thư mục bin bên trong thư mục máy chủ Confect.

15
00:01:02,200 --> 00:01:05,440
Và trong thư mục bin, bạn sẽ thấy một tệp có tên www.

16
00:01:05,440 --> 00:01:09,520
Đây là thư mục mà chúng tôi sẽ tạo ra khóa riêng của chúng tôi và

17
00:01:09,520 --> 00:01:12,310
sau đó cũng tạo ra chứng chỉ cho

18
00:01:12,310 --> 00:01:18,840
máy chủ HTTPS của chúng tôi bằng cách sử dụng một công cụ dòng lệnh được gọi là OpenSSL.

19
00:01:18,840 --> 00:01:24,320
Bây giờ OpenSSL thường được cài đặt trên máy Mac OS theo mặc định.

20
00:01:24,320 --> 00:01:31,030
Đối với máy Windows, bạn có thể cần phải tải xuống và cài đặt OpenSSL một cách rõ ràng.

21
00:01:31,030 --> 00:01:35,780
Bây giờ tôi đã cung cấp một vài liên kết trong hướng dẫn để bạn đi và

22
00:01:35,780 --> 00:01:37,550
lấy OpenSSL.

23
00:01:37,550 --> 00:01:41,897
Tôi cũng đã cung cấp cho bạn một trang web nơi bạn có thể tạo

24
00:01:41,897 --> 00:01:43,430
khóa riêng tự ký và chứng chỉ.

25
00:01:43,430 --> 00:01:44,960
Vì vậy, chúng ta hãy đi và xem xét nhanh điều đó.

26
00:01:45,960 --> 00:01:49,440
Nếu bạn đang chạy một máy Windows và

27
00:01:49,440 --> 00:01:52,080
nếu bạn chưa cài đặt OpenSSL.

28
00:01:52,080 --> 00:01:56,120
Sau đó, liên kết này cung cấp các chương trình nhị phân cho

29
00:01:56,120 --> 00:02:00,300
OpenSSL mà bạn có thể tải về và cài đặt trên máy Windows của bạn.

30
00:02:00,300 --> 00:02:06,050
Vì vậy, liên kết này được cung cấp trong hướng dẫn cho bài tập này.

31
00:02:06,050 --> 00:02:08,720
Vì vậy, đi vào đó,

32
00:02:08,720 --> 00:02:14,145
bạn sẽ tìm thấy một số tải về các

33
00:02:14,145 --> 00:02:19,742
bản phân phối liên quan đến OpenSSL của bên thứ ba mà bạn có thể tải xuống và cài đặt trên máy tính của bạn.

34
00:02:19,742 --> 00:02:24,730
Vì vậy, cài đặt một trong những để tiếp tục

35
00:02:24,730 --> 00:02:29,030
với bài tập này nếu bạn không có OpenSSL đã có trên máy tính của bạn.

36
00:02:30,200 --> 00:02:35,330
Bây giờ, cũng nếu bạn muốn một cách khác để

37
00:02:36,410 --> 00:02:40,410
tạo khóa riêng và chứng chỉ của bạn.

38
00:02:40,410 --> 00:02:45,240
Dưới đây là một bài viết blog, một liên kết mà tôi đã cung cấp trong các hướng dẫn,

39
00:02:45,240 --> 00:02:49,990
cũng giải thích cách thiết lập máy Windows của bạn với

40
00:02:51,410 --> 00:02:55,990
OpenSSL và cũng tạo khóa riêng và chứng chỉ.

41
00:02:55,990 --> 00:03:01,140
Vì vậy, hãy đi qua các bước này để cấu hình máy Windows của bạn để

42
00:03:01,140 --> 00:03:05,330
tạo khóa riêng và chứng chỉ.

43
00:03:05,330 --> 00:03:09,960
Bây giờ, nếu bạn không muốn cài đặt OpenSSL, sau đó đây là một liên kết

44
00:03:09,960 --> 00:03:14,610
đến một trang web cho phép bạn tạo ra

45
00:03:14,610 --> 00:03:19,420
có chứng chỉ SSL tự ký và khóa như bạn thấy ở đây.

46
00:03:19,420 --> 00:03:22,900
Vì vậy, một liên kết đến trang web này cũng được cung cấp trong hướng dẫn.

47
00:03:22,900 --> 00:03:27,690
Vì vậy, bạn có thể sử dụng máy chủ để tạo ra chứng chỉ SSL và

48
00:03:27,690 --> 00:03:29,930
khóa cho máy Windows của bạn.

49
00:03:29,930 --> 00:03:32,330
Vì vậy, bất kỳ ai của phương pháp này có thể được sử dụng để

50
00:03:32,330 --> 00:03:38,720
tạo khóa riêng và chứng chỉ cho máy Windows của bạn.

51
00:03:38,720 --> 00:03:41,320
Kể từ khi tôi đang chạy trên một máy OSX,

52
00:03:41,320 --> 00:03:47,580
tôi sẽ tạo ra khóa riêng tư và chứng chỉ sử dụng OpenSSL.

53
00:03:47,580 --> 00:03:52,858
Vì vậy, đi đến thiết bị đầu cuối, hãy để tôi gõ openssl genrsa

54
00:03:52,858 --> 00:03:59,249
1024, có nghĩa là tôi sẽ tạo ra một khóa riêng của kích thước 1024.

55
00:03:59,249 --> 00:04:04,400
Vì vậy, tôi sẽ đưa điều này vào một tập tin có tên là khóa riêng, và một

56
00:04:04,400 --> 00:04:10,590
khi điều này được tạo ra, sau đó chúng tôi sẽ tạo ra các tập tin cert.csr tương ứng

57
00:04:10,590 --> 00:04:16,340
vì vậy nó sẽ nói openssl req yêu cầu.

58
00:04:16,340 --> 00:04:21,398
Vì vậy, chúng tôi đang yêu cầu một chứng chỉ mới,

59
00:04:21,398 --> 00:04:27,839
với khóa private.key, và nó sẽ tạo ra điều đó.

60
00:04:32,283 --> 00:04:35,530
CERT.CSR đây.

61
00:04:35,530 --> 00:04:40,440
Bây giờ, khi bạn tạo ra cert.csr, nó sẽ đưa ra một vài câu hỏi

62
00:04:40,440 --> 00:04:42,378
để bạn điền vào.

63
00:04:42,378 --> 00:04:44,700
Bạn có thể chấp nhận các giá trị mặc định hoặc

64
00:04:44,700 --> 00:04:48,400
bạn có thể điền vào các giá trị của riêng bạn nếu bạn chọn.

65
00:04:48,400 --> 00:04:52,120
Nó không thực sự quan trọng bởi vì chứng chỉ này chúng tôi chỉ sử dụng trong

66
00:04:52,120 --> 00:04:55,730
máy tính của chúng tôi để kiểm tra máy chủ HTTPS của chúng tôi.

67
00:04:55,730 --> 00:04:58,156
Vì vậy, để tôi điền vào một số chi tiết.

68
00:05:02,293 --> 00:05:06,286
Tôi sẽ để lại một vài thứ trống rỗng ở đó.

69
00:05:06,286 --> 00:05:09,380
Và điều đó sẽ làm việc tốt,

70
00:05:09,380 --> 00:05:13,900
nó không thực sự quan trọng cho dù bạn điền thông tin này hay không.

71
00:05:13,900 --> 00:05:19,679
Vì vậy, một khi bạn làm điều đó cert.csr của bạn được tạo ra và

72
00:05:19,679 --> 00:05:26,834
từ đó họ sẽ tạo ra chứng chỉ phân phối để

73
00:05:26,834 --> 00:05:31,651
cho rằng chúng tôi sẽ gõ tại dấu nhắc lệnh

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 ate.pem.

76
00:05:42,134 --> 00:05:47,052
Vì vậy, điều này sẽ tạo ra chứng chỉ cho

77
00:05:47,052 --> 00:05:52,111
chúng tôi, và vì vậy một

78
00:05:52,111 --> 00:05:55,623
khi bạn hoàn thành các bước này, khi

79
00:05:55,623 --> 00:06:00,961
bạn nhìn vào thư mục của bạn, bạn sẽ thấy rằng bạn có private.key

80
00:06:00,961 --> 00:06:07,255
, cert.csr và certificate ate.pem trong đó.

81
00:06:07,255 --> 00:06:11,205
Điều này sẽ được yêu cầu để cấu hình máy chủ HTTPS của chúng tôi.

82
00:06:11,205 --> 00:06:17,375
Vì vậy, bây giờ để cấu hình máy chủ HTTPS, chúng ta hãy đi đến trình soạn thảo của chúng tôi.

83
00:06:17,375 --> 00:06:21,755
Trong trình soạn thảo, chúng tôi sẽ đi đến thư mục bin này ở đây.

84
00:06:21,755 --> 00:06:25,135
Và trong thư mục bin, bạn sẽ thấy tệp này được gọi là www.

85
00:06:25,135 --> 00:06:30,550
Chúng tôi đã xem xét một thời gian ngắn tập tin này trong một trong những bài tập trước đó.

86
00:06:30,550 --> 00:06:36,296
Bây giờ đi vào tập tin này, chúng tôi sẽ

87
00:06:36,296 --> 00:06:41,704
cũng nhập khẩu mô-đun lõi HTTPS, vì vậy

88
00:06:41,704 --> 00:06:49,776
chúng tôi sẽ nói HTTPS yêu cầu HTTPS Và

89
00:06:49,776 --> 00:06:53,010
chúng tôi cũng sẽ yêu cầu mô-đun hệ thống tập tin.

90
00:06:53,010 --> 00:06:57,160
Bạn đã gặp phải mô-đun hệ thống tệp trước đó

91
00:06:57,160 --> 00:06:58,560
trong một trong các bài tập.

92
00:06:58,560 --> 00:07:01,440
Vì vậy, chúng tôi sẽ nhập cả hai trong số này.

93
00:07:01,440 --> 00:07:07,180
Và sau đó, đi xuống đây, chúng tôi sẽ cấu hình số cổng mà

94
00:07:07,180 --> 00:07:13,200
máy chủ HTTPS của chúng tôi sẽ chạy, vì vậy chúng tôi sẽ nói app.set và

95
00:07:13,200 --> 00:07:17,160
chúng tôi sẽ nói SecPort.

96
00:07:17,160 --> 00:07:22,370
Vì vậy, chúng tôi sẽ thiết lập một biến ở đây gọi là cổng an toàn và

97
00:07:22,370 --> 00:07:26,890
sau đó tôi sẽ khởi tạo này để cổng 443.

98
00:07:26,890 --> 00:07:29,998
Bây giờ, tại sao tôi sử dụng cổng này+443?

99
00:07:29,998 --> 00:07:35,881
Trong một máy chủ tiêu chuẩn, nếu máy chủ của bạn hoạt động như một máy chủ web,

100
00:07:35,881 --> 00:07:42,890
giao thức HTTP của bạn sẽ chạy ở cổng số 80 trên máy chủ của bạn.

101
00:07:42,890 --> 00:07:47,049
Và HTTP an toàn sẽ chạy trên cổng số 443.

102
00:07:48,090 --> 00:07:54,070
Bây giờ bạn sẽ thường không muốn sử dụng các cổng dành riêng

103
00:07:54,070 --> 00:08:00,170
trong một ứng dụng phát triển nhưng chúng tôi đang làm trong khóa học này.

104
00:08:00,170 --> 00:08:02,250
Thay vào đó, như bạn đã thấy trước đó,

105
00:08:02,250 --> 00:08:08,170
chúng tôi đã cấu hình số cổng của chúng tôi để 3000 nơi máy chủ HTTP của chúng tôi đang chạy.

106
00:08:08,170 --> 00:08:15,481
Vì vậy, tôi sẽ chạy máy chủ HTTPS, tại cổng số 3443.

107
00:08:15,481 --> 00:08:18,311
Vậy là 3000 cộng với 443.

108
00:08:18,311 --> 00:08:22,550
Vì vậy, đó là lý do tại sao tôi tuyên bố cổng an toàn này.

109
00:08:22,550 --> 00:08:30,748
Là cổ+443, vì vậy máy chủ HTTPS của chúng tôi sẽ chạy ở cổng số 443.

110
00:08:30,748 --> 00:08:35,296
Tôi vẫn sẽ chạy máy chủ HTTP tại cổng 3000,

111
00:08:35,296 --> 00:08:40,696
chúng tôi đã tạo ra máy chủ HTTP ở đây trong WWW, hay đúng hơn,

112
00:08:40,696 --> 00:08:46,220
điều này được tự động tạo ra bởi máy phát nhanh.

113
00:08:46,220 --> 00:08:49,890
Bây giờ, kể từ khi máy chủ HTTP đã được cấu hình,

114
00:08:49,890 --> 00:08:54,290
bây giờ chúng ta sẽ cấu hình máy chủ HTTPS.

115
00:08:55,810 --> 00:09:02,460
Vì vậy, để cấu hình máy chủ HTTPS, ngay sau khi chúng tôi cấu hình máy chủ HTTP.

116
00:09:02,460 --> 00:09:06,410
Bây giờ lý do tại sao tôi sẽ vẫn chạy máy chủ HTTP là,

117
00:09:06,410 --> 00:09:12,120
nếu tôi nhận được một yêu cầu trên cổng của máy chủ HTTP sau đó,

118
00:09:12,120 --> 00:09:16,420
yêu cầu đó sẽ được chuyển hướng đến máy chủ HTTPS.

119
00:09:16,420 --> 00:09:23,070
Vì vậy, máy chủ của tôi sẽ chỉ yêu cầu dịch vụ đến trên các cổng HTTPS.

120
00:09:23,070 --> 00:09:27,750
Nhưng nếu tình cờ bất cứ ai truy cập máy chủ tại cổng HTTP,

121
00:09:27,750 --> 00:09:31,070
tôi sẽ chuyển hướng yêu cầu đó đến cổng HTTPS.

122
00:09:31,070 --> 00:09:33,270
Chúng ta sẽ làm điều đó một chút sau.

123
00:09:33,270 --> 00:09:36,316
Trước tiên, hãy cấu hình máy chủ HTTPS.

124
00:09:36,316 --> 00:09:40,665
Vì vậy, để cấu hình máy chủ HTTPS, ngay tại đây,

125
00:09:40,665 --> 00:09:46,060
tôi sẽ khai báo một vài tùy chọn ở đây cho máy chủ HTTPS của tôi.

126
00:09:46,060 --> 00:09:51,740
Bây giờ nhớ lại rằng đối với một máy chủ HTTPS, chúng ta cần phải cấu hình khóa riêng và

127
00:09:51,740 --> 00:09:56,670
chứng chỉ mà máy chủ HTTPS của tôi sẽ sử dụng.

128
00:09:56,670 --> 00:10:01,200
Vì vậy, trong các tùy chọn, tôi sẽ chỉ định chìa khóa và

129
00:10:01,200 --> 00:10:07,832
sau đó tôi sẽ sử dụng hệ thống tập tin và sau đó tôi sẽ nói, ReadFileSync.

130
00:10:09,340 --> 00:10:16,250
Vì vậy, tôi sẽ đọc tập tin này đồng bộ để tôi sẽ hoàn thành việc đọc trong tập tin

131
00:10:16,250 --> 00:10:21,290
trước khi tôi có thể cấu hình máy chủ HTTPS của tôi.

132
00:10:21,290 --> 00:10:25,862
Vì vậy, tôi sẽ đọc tập tin này từ __dirname.

133
00:10:25,862 --> 00:10:30,958
Bạn đã biết lý do tại sao tôi sử dụng __dirname từ các

134
00:10:30,958 --> 00:10:36,710
bài tập trước đó, nơi chúng tôi thấy mô-đun hệ thống năm đang được sử dụng.

135
00:10:36,710 --> 00:10:40,370
Và sau đó, vì vậy tôi sẽ nói __dirname+.

136
00:10:40,370 --> 00:10:49,570
Vì vậy, ở đây, chúng tôi cung cấp đường dẫn đến private.key.

137
00:10:49,570 --> 00:10:54,346
Bây giờ, nhớ lại rằng www này nằm trong thư mục bin.

138
00:10:54,346 --> 00:10:57,710
Và private.key cũng nằm trong thư mục bin, vì vậy

139
00:10:57,710 --> 00:11:03,200
đó là lý do tại sao tôi sẽ nói dirname+ này, vì vậy điều này sẽ chỉ

140
00:11:03,200 --> 00:11:08,170
định cho hệ thống tập tin đọc mô-đun rằng các tập tin nên được

141
00:11:08,170 --> 00:11:13,440
đọc từ thư mục bin này, từ tập tin private.key ở đây.

142
00:11:14,730 --> 00:11:18,360
Bây giờ cũng, chúng tôi sẽ đọc trong giấy chứng nhận ở đây.

143
00:11:18,360 --> 00:11:21,585
Vì vậy, chúng tôi sẽ nói, cert FS.readFileSync.

144
00:11:21,585 --> 00:11:26,053
Vì vậy, nó sẽ đồng bộ đọc tập tin có nghĩa là,

145
00:11:26,053 --> 00:11:33,050
các tập tin sẽ được đọc hoàn toàn trước khi bạn tiếp tục bước tiếp theo ở đây.

146
00:11:33,050 --> 00:11:40,340
Và tập tin mà chúng ta cần đọc cũng là __dirname+.

147
00:11:40,340 --> 00:11:47,865
Và chúng tôi sẽ nói, /certificate ate.pem, mà chúng tôi đã tạo ra trước đó.

148
00:11:51,407 --> 00:11:56,697
Và đó phải là một dấu phẩy, và tôi không nên đặt một dấu chấm phẩy ở đó,

149
00:11:56,697 --> 00:12:02,740
bởi vì đây là một đối tượng JavaScript mà chúng tôi đã xác định có các tùy chọn.

150
00:12:02,740 --> 00:12:09,070
Vì vậy, một khi chúng ta xác định đối tượng JavaScript, sau đó chúng ta hãy cấu hình máy chủ an toàn.

151
00:12:09,070 --> 00:12:15,407
Vì vậy, chúng ta sẽ nói var Securever https.

152
00:12:15,407 --> 00:12:21,410
Nhớ lại rằng, bây giờ, chúng tôi sẽ sử dụng https, và sau đó chúng tôi sẽ nói CreateServer.

153
00:12:21,410 --> 00:12:27,611
Vì vậy, nhớ lại rằng đối với HTTP, chúng tôi cấu hình máy chủ của chúng tôi như thế này ở đây.

154
00:12:27,611 --> 00:12:32,540
Đối với máy chủ an toàn, chúng tôi sẽ tạo ra rằng bằng cách nói,

155
00:12:32,540 --> 00:12:37,859
var Securever https.CreateServer, và sau đó chúng tôi sẽ cung cấp

156
00:12:37,859 --> 00:12:44,161
các tùy chọn mà chúng tôi vừa cấu hình và sau đó phần thứ hai là ứng dụng ở đây.

157
00:12:44,161 --> 00:12:48,026
Vì vậy, Securever của tôi là tốt,

158
00:12:48,026 --> 00:12:54,410
cũng sẽ có sẵn cho ứng dụng của tôi để truy cập.

159
00:12:54,410 --> 00:13:00,301
Bây giờ dưới đây, tôi sẽ cấu

160
00:13:00,301 --> 00:13:06,044
hình Securever.Nghe trên số cổng,

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

162
00:13:13,530 --> 00:13:17,950
Nhớ lại rằng ở đây chúng tôi đã thực hiện một app.set SecPort, vì vậy

163
00:13:17,950 --> 00:13:23,840
chúng tôi đặt giá trị này ở đây để số cổng an toàn.

164
00:13:23,840 --> 00:13:27,280
Và sau đó dưới đây, chúng tôi đang nói app.get.

165
00:13:27,280 --> 00:13:32,013
Vì vậy, điều này có nghĩa rằng giá trị này mà chúng tôi đã

166
00:13:32,013 --> 00:13:36,470
cấu hình trước đó sẽ có sẵn cho

167
00:13:36,470 --> 00:13:41,205
chúng tôi để cấu hình cổng nghe

168
00:13:41,205 --> 00:13:45,522
của chúng tôi cho máy chủ của chúng tôi, app.get SecPort, và

169
00:13:45,522 --> 00:13:52,059
sau đó cung cấp, chức năng gọi lại ở đây.

170
00:13:55,029 --> 00:13:58,438
Và bên trong chức năng gọi lại này, chúng ta sẽ nói,

171
00:14:03,514 --> 00:14:11,715
console.log Server lắng nghe trên cổng.

172
00:14:21,317 --> 00:14:26,931
Hãy làm máy chủ an toàn lắng nghe trên cổng

173
00:14:28,697 --> 00:14:32,448
Và sau đó, một khi chúng tôi cấu hình SecureVerer,

174
00:14:32,448 --> 00:14:38,690
sau đó chúng tôi cần phải, Xem, SecureVerer trên.

175
00:14:38,690 --> 00:14:45,170
Vì vậy, nếu SecuReserver nhận được một sự kiện lỗi,

176
00:14:45,170 --> 00:14:51,790
sau đó chúng tôi sẽ thích onError, được cấu hình dưới đây, để xử lý điều đó.

177
00:14:51,790 --> 00:14:55,520
Và sau đó chúng ta sẽ nói, Secureserver.on.

178
00:14:59,786 --> 00:15:04,428
Nghe, vì vậy nếu bạn nhận được sự kiện nghe,

179
00:15:04,428 --> 00:15:07,950
sau đó chúng tôi sẽ gọi onListening.

180
00:15:07,950 --> 00:15:11,100
Bây giờ các onError và onListening được cấu hình ở đâu?

181
00:15:11,100 --> 00:15:14,830
Nếu bạn đi xuống mã ở đây, xuống dưới đây.

182
00:15:14,830 --> 00:15:20,920
Bạn đang chỉ định hai chức năng onError chức năng ở đây,

183
00:15:20,920 --> 00:15:24,540
và sau đó chức năng onListening ở đây.

184
00:15:24,540 --> 00:15:30,140
Vì vậy, chúng tôi sẽ được sử dụng hai chức năng này để cấu hình máy chủ của chúng tôi ở đây.

185
00:15:30,140 --> 00:15:32,320
Vì vậy, với những thay đổi này,

186
00:15:32,320 --> 00:15:38,180
máy chủ của tôi bây giờ được cấu hình để cũng chạy SecuReserver tại cổng số 443.

187
00:15:38,180 --> 00:15:44,290
Chúng tôi đã cấu hình máy chủ HTTP tiêu chuẩn ở đây rồi.

188
00:15:44,290 --> 00:15:51,860
Vì vậy, một khi chúng tôi đã thực hiện hai, sau đó, cập nhật tiếp theo của chúng tôi sẽ được trong tập tin app.js.

189
00:15:51,860 --> 00:15:58,313
Vì vậy, đi đến tập tin app.js Những gì tôi sẽ làm là để cấu hình

190
00:15:58,313 --> 00:16:04,729
máy chủ này như vậy mà nó sẽ chuyển hướng bất kỳ lưu lượng truy cập đến cổng không an toàn.

191
00:16:04,729 --> 00:16:09,780
Đó là cổng số 3.000, nó sẽ chuyển hướng yêu cầu đó đến cổng an toàn.

192
00:16:09,780 --> 00:16:16,285
Vì vậy, để làm điều đó, hãy để tôi thiết lập một middleware ngay sau khi chúng tôi khai báo app.express.

193
00:16:16,285 --> 00:16:21,541
Vì vậy, ở đây chúng tôi sẽ nói, app.all, do đó, có nghĩa là, cho

194
00:16:21,541 --> 00:16:27,090
tất cả các yêu cầu bất kể đường dẫn trong yêu cầu là gì.

195
00:16:27,090 --> 00:16:33,118
Yêu cầu riêng sắp tới, Tôi sẽ chuyển hướng đó đến,

196
00:16:35,885 --> 00:16:39,582
Vì vậy, chúng ta sẽ nói rec, res, tiếp theo, và

197
00:16:39,582 --> 00:16:44,156
các chức năng gọi lại được định nghĩa ở đây.

198
00:16:44,156 --> 00:16:51,820
Và vì vậy chúng tôi sẽ, Khai báo các chức năng bên trong đây.

199
00:16:51,820 --> 00:16:58,529
Và chúng tôi sẽ nói, nếu req.secure.

200
00:16:58,529 --> 00:17:04,215
Vì vậy, có nghĩa là, nếu yêu cầu đến đã là một yêu cầu an toàn,

201
00:17:04,215 --> 00:17:06,520
vậy làm thế nào để chúng ta biết điều đó?

202
00:17:06,520 --> 00:17:10,591
Nếu yêu cầu đến đã là một yêu cầu an toàn, sau đó

203
00:17:10,591 --> 00:17:15,020
đối tượng request sẽ mang cờ này được gọi là secure mà sẽ được thiết lập thành true.

204
00:17:16,121 --> 00:17:19,410
Nếu yêu cầu đến không phải là tất cả các cổng an toàn nhưng

205
00:17:19,410 --> 00:17:24,960
thay vào đó là đến cổng không an toàn, sau đó các write.secure sẽ không được thiết lập.

206
00:17:24,960 --> 00:17:28,331
Vì vậy, đó là điều tôi đang chăm sóc.

207
00:17:28,331 --> 00:17:31,511
Nếu nó đang đến cổng an toàn đã, tôi sẽ đi tiếp

208
00:17:31,511 --> 00:17:35,110
mà không làm bất cứ điều gì bởi vì nó đã đến cổng an toàn.

209
00:17:35,110 --> 00:17:38,514
Vì vậy, tôi có thể nói đơn giản, tiếp theo.

210
00:17:39,586 --> 00:17:44,320
Nếu không, vì vậy chúng tôi sẽ nói, trở lại tiếp theo.

211
00:17:44,320 --> 00:17:48,678
Nếu không, vì vậy nếu không sẽ xảy ra,

212
00:17:52,360 --> 00:17:55,780
Khi nó đang đến cổng không an toàn.

213
00:17:55,780 --> 00:17:59,850
Vì vậy, trong trường hợp này, tôi sẽ nói res.redirect.

214
00:17:59,850 --> 00:18:03,920
Vì vậy, phương pháp chuyển hướng có sẵn,

215
00:18:03,920 --> 00:18:09,390
chuyển hướng yêu cầu đến đến URL khác.

216
00:18:09,390 --> 00:18:15,960
Vì vậy, tôi sẽ chuyển hướng yêu cầu không an toàn này để https://.

217
00:18:15,960 --> 00:18:24,950
Vì vậy, tôi chuyển hướng yêu cầu này đến tên req.host.

218
00:18:24,950 --> 00:18:27,720
Vì vậy, yêu cầu sẽ đã mang tên máy chủ.

219
00:18:27,720 --> 00:18:31,083
Vì vậy, bởi vì điều này đang đến cùng một máy chủ, vì vậy

220
00:18:31,083 --> 00:18:33,657
tôi đang chuyển hướng đến cùng một máy chủ.

221
00:18:33,657 --> 00:18:38,428
Và sau đó chúng ta sẽ nói +,

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

223
00:18:44,860 --> 00:18:52,468
Bây giờ nhớ lại rằng chúng tôi đã cấu hình cổng an toàn trong app.get ở đó.

224
00:18:52,468 --> 00:19:00,861
Vì vậy, chúng tôi sẽ nói app.get Secport + req.url.

225
00:19:00,861 --> 00:19:05,757
Bây giờ req.url này sẽ chứa phần còn lại của đường dẫn

226
00:19:05,757 --> 00:19:10,080
ngoại trừ tên máy chủ, và số cổng.

227
00:19:10,080 --> 00:19:12,943
Vì vậy, nếu bạn nói một localhost:3000,

228
00:19:12,943 --> 00:19:17,685
localhost:3000 sẽ được bao phủ bởi phần đầu tiên và

229
00:19:17,685 --> 00:19:24,110
điều này sẽ được chuyển hướng đến localhost:3443 bởi cấu hình này ở đây.

230
00:19:24,110 --> 00:19:29,410
Và sau đó, phần còn lại của nó, req.url sẽ chứa đường dẫn thực tế trên máy chủ.

231
00:19:29,410 --> 00:19:34,220
Vì vậy, chúng tôi chỉ cần thêm nó vào đường dẫn chuyển hướng, và

232
00:19:34,220 --> 00:19:39,390
đây là đường dẫn mà tôi sẽ chuyển hướng thông báo yêu cầu đến.

233
00:19:39,390 --> 00:19:42,200
Vì vậy, một khi tôi chuyển hướng tin nhắn yêu cầu đến,

234
00:19:42,200 --> 00:19:46,630
sau đó tin nhắn yêu cầu của tôi sẽ được chuyển hướng đến cổng bảo mật.

235
00:19:46,630 --> 00:19:50,240
Và một thay đổi cuối cùng có thể res.redirect,

236
00:19:50,240 --> 00:19:54,470
chúng tôi sẽ thêm mã trạng thái bằng văn bản là 307.

237
00:19:54,470 --> 00:19:59,084
307 ở đây đại diện rằng tài nguyên mục tiêu nằm tạm thời dưới

238
00:19:59,084 --> 00:20:00,890
URL khác nhau.

239
00:20:00,890 --> 00:20:04,990
Và đại lý người dùng không được thay đổi phương thức yêu cầu nếu nó

240
00:20:04,990 --> 00:20:08,120
cải cách trong chuyển hướng tự động đến URL đó.

241
00:20:08,120 --> 00:20:11,880
Vì vậy, tôi sẽ mong đợi đại lý người dùng thử lại

242
00:20:11,880 --> 00:20:16,780
với cùng một phương pháp mà họ đã sử dụng cho điểm kết thúc ban đầu.

243
00:20:16,780 --> 00:20:21,820
Đó là nó, rằng sự thay đổi mà tôi cần phải thực hiện trong tập tin app.js.

244
00:20:21,820 --> 00:20:26,452
Vì vậy, sau khi thay đổi app.js, và www, và

245
00:20:26,452 --> 00:20:30,548
cũng tạo ra khóa và chứng chỉ,

246
00:20:30,548 --> 00:20:35,751
bây giờ chúng ta có thể lưu các thay đổi, và đi và khởi động máy chủ của chúng tôi.

247
00:20:36,864 --> 00:20:41,606
Đi đến thiết bị đầu cuối hoặc cửa sổ lệnh, hãy đảm bảo rằng bạn đã

248
00:20:41,606 --> 00:20:46,340
trở lại trong thư mục ConfusionServer của bạn, và sau đó khởi động máy chủ.

249
00:20:46,340 --> 00:20:49,443
Vì vậy, tôi đang ở đầu cuối gõ npm bắt đầu.

250
00:20:52,473 --> 00:20:57,295
Và máy chủ của bạn sẽ được lên và chạy, và bạn cũng nhận thấy rằng chúng tôi đang in

251
00:20:57,295 --> 00:21:01,848
ra đây nói, Máy chủ an toàn lắng nghe trên cổng số 3443 ở đây.

252
00:21:01,848 --> 00:21:09,322
Để nhấn mạnh máy chủ an toàn, hãy truy cập trình duyệt như Chrome ở đây.

253
00:21:09,322 --> 00:21:13,648
Và sau đó, hãy để tôi lần đầu tiên truy cập vào máy chủ an toàn tại

254
00:21:13,648 --> 00:21:19,750
localhost:3443 đó là nơi máy chủ an toàn của tôi đang chạy.

255
00:21:19,750 --> 00:21:29,490
Và lưu ý rằng khi tôi thử https://localhost3443 trong trình duyệt,

256
00:21:29,490 --> 00:21:34,170
nó sẽ đưa ra thông báo này ở đây nói, Kết nối của bạn không phải là riêng tư.

257
00:21:34,170 --> 00:21:37,670
Rõ ràng, bởi vì chứng chỉ những gì chúng tôi đang sử dụng ngay bây giờ

258
00:21:37,670 --> 00:21:39,640
là một chứng chỉ tự ký.

259
00:21:39,640 --> 00:21:44,770
Và điều này không được Chrome công nhận là chứng chỉ hợp lệ.

260
00:21:44,770 --> 00:21:49,780
Nhưng kể từ khi chúng ta biết những gì chúng ta đang làm, chúng ta chấp nhận

261
00:21:49,780 --> 00:21:56,210
rằng chúng ta sẽ cho phép tiến tới máy chủ cụ thể này.

262
00:21:56,210 --> 00:22:00,630
Bây giờ, tôi sẽ khuyên bạn không bao giờ làm điều này trên

263
00:22:00,630 --> 00:22:04,110
bất kỳ trang web nào đi kèm với đề xuất.

264
00:22:04,110 --> 00:22:07,260
Chúng tôi đang làm điều này đặc biệt trong bài tập này bởi vì

265
00:22:07,260 --> 00:22:09,430
chúng tôi biết chính xác nơi máy chủ là, và

266
00:22:09,430 --> 00:22:13,480
chúng tôi biết rằng chúng tôi đã cấu hình một cách rõ ràng máy chủ mình.

267
00:22:13,480 --> 00:22:18,930
Nhưng nếu bất kỳ trang web nào khác đưa ra thông báo này, tôi sẽ

268
00:22:18,930 --> 00:22:24,750
khuyên bạn không nên chấp nhận đề xuất và tiếp tục truy cập vào máy chủ.

269
00:22:24,750 --> 00:22:31,840
Vì vậy, bạn nên quay trở lại an toàn nếu bạn từng thấy điều này hoặc trên bất kỳ trang web nào khác.

270
00:22:31,840 --> 00:22:36,360
Nhưng kể từ khi chúng ta biết rằng đây là máy chủ riêng của chúng tôi, tôi sẽ tiến hành

271
00:22:36,360 --> 00:22:43,450
localhost ở đây, và sau đó bạn sẽ thấy rằng chúng tôi đang truy cập vào máy chủ Express.

272
00:22:43,450 --> 00:22:45,900
Và bạn cũng sẽ nhận thấy trên đây

273
00:22:45,900 --> 00:22:51,280
rằng trình duyệt của bạn đang cho bạn thấy rằng bạn đang truy cập vào một máy chủ không an toàn.

274
00:22:51,280 --> 00:22:54,040
Khi bạn nhấp vào đó, bạn sẽ thấy thông báo

275
00:22:54,040 --> 00:22:57,160
ở đây nói rằng kết nối của bạn với trang web là không an toàn.

276
00:22:57,160 --> 00:23:04,068
Nhưng chúng ta biết rằng vì chúng ta đang tự chạy máy chủ, điều này là okay để làm như vậy.

277
00:23:04,068 --> 00:23:08,860
Vì vậy, đây là cách bạn sẽ truy cập vào máy chủ HTTPS.

278
00:23:08,860 --> 00:23:14,338
Bây giờ, hãy để tôi cố gắng truy cập vào cùng một máy chủ HTTP nhưng, hãy để tôi truy cập vào,

279
00:23:16,040 --> 00:23:19,206
chuẩn localhost:3000.

280
00:23:19,206 --> 00:23:24,625
Đây là nơi máy chủ không an toàn của chúng tôi đến máy chủ HTTP bình thường đang chạy.

281
00:23:24,625 --> 00:23:30,190
Vì vậy, khi tôi cố gắng truy cập rằng HTTP localhost:3000,

282
00:23:30,190 --> 00:23:37,700
sau đó bạn ngay lập tức thấy rằng máy chủ của tôi sẽ chuyển hướng tôi đến máy chủ an toàn.

283
00:23:37,700 --> 00:23:41,850
Vì vậy, theo cách này, máy chủ của bạn mà chúng tôi vừa cấu hình

284
00:23:41,850 --> 00:23:46,740
đảm bảo rằng bạn sẽ luôn luôn truy cập vào máy chủ trên cổng an toàn của nó.

285
00:23:46,740 --> 00:23:50,040
Điều này cũng đảm bảo thực tế là, khi bạn đang trao đổi,

286
00:23:50,040 --> 00:23:52,902
khi bạn đang gửi thông tin đăng nhập của bạn, và như vậy,

287
00:23:52,902 --> 00:23:56,343
tất cả các trao đổi thông tin đăng nhập trong tiêu đề của thư.

288
00:23:56,343 --> 00:24:01,863
Và cũng khi bạn đăng nhập với xác thực địa phương, tất cả những gì được thực hiện

289
00:24:01,863 --> 00:24:07,910
một cách an toàn trong một kênh được mã hóa giữa khách hàng của bạn và máy chủ.

290
00:24:07,910 --> 00:24:15,010
Vì vậy, bây giờ, chúng tôi đã cấu hình máy chủ của chúng tôi là một máy chủ HTTPS an toàn.

291
00:24:15,010 --> 00:24:18,090
Với điều này, chúng tôi hoàn thành bài tập này.

292
00:24:18,090 --> 00:24:22,880
Trong bài tập này, chúng ta đã học được cách cấu hình một máy chủ HTTP an toàn hoặc

293
00:24:22,880 --> 00:24:25,930
sử dụng giao thức HTTPS.

294
00:24:25,930 --> 00:24:27,994
Với điều này, chúng tôi hoàn thành bài tập này.

295
00:24:27,994 --> 00:24:34,230
Đây là thời điểm tốt để bạn thực hiện một cam kết git với thông điệp, HTTPS.

296
00:24:34,230 --> 00:24:36,719
[ NHẠC]