Như được chỉ ra trong số answer của mình để Hostname/IP doesn't match certificate's altname Node.js thực hiện xác minh thành công chứng chỉ TLS trên tên máy chủ khi tên máy chủ được yêu cầu được cung cấp làm Tên thường dùng (CN) của chứng chỉ.Tại sao Node.js chấp nhận địa chỉ IP trong các chứng chỉ chỉ cho SAN chứ không phải cho CN?
Request : localhost
Common Name: localhost
=> Success
Bây giờ khi tôi cố gắng cùng một địa chỉ IP, xác minh thất bại:
Request : 192.168.178.31
Common Name: 192.168.178.31
=> Fail
Nó chỉ hoạt động nếu tôi chỉ định địa chỉ IP như Subject Alternative Name (SAN):
Request : 192.168.178.31
Common Name : 192.168.178.31
Subject Alternative Name: 192.168.178.31
=> Success
Như được mô tả trong answer đến IP address as hostname (CN) when creating a certificate? (HTTPS hostname wrong: should be <ipAddress>),
sử dụng địa chỉ IP trong chứng chỉ không được khuyến nghị [...].
Cách thay thế được đề xuất trong answer thành How are SSL certificate server names resolved/Can I add alternative names using keytool? để thêm địa chỉ IP làm SAN (mà lần lượt hoạt động trong Node.js).
Bây giờ câu hỏi của tôi là: Không được đề xuất không có nghĩa sai hoặc cấm. Có lý do cụ thể nào ngoại trừ là không được đề xuất rằng Node.js không hỗ trợ địa chỉ IP trong CN, hay tại sao nó sẽ là một rủi ro (bảo mật, bất cứ điều gì, ...) nếu nó đã làm?
Tôi gặp sự cố tương tự. Cảm ơn bạn đã đăng nghiên cứu của bạn ở đây dưới hình thức dễ tiêu hóa như vậy - đã giúp tôi xác nhận những nghi ngờ của mình! –
Tôi rất vui vì nó đã giúp bạn :-)) –