Tôi đã cố gắng thiết lập môi trường thử nghiệm nơi tôi có dịch vụ cửa sổ lưu trữ IDP. IDP, vì những lý do cũ, có sẵn bằng cả HTTP và HTTPS. Trên cùng một máy chủ, tôi cũng đã triển khai một chương trình thử nghiệm sẽ gọi dịch vụ và kiểm tra IDP. Máy chủ đang chạy Windows Server 2016 Standard.
Khi tôi gọi cho IDP bằng HTTPS, tôi nhận được thiết lập lại TCP để phản hồi Client Hello:
Loại nội dung: Bắt tay (22)
Phiên bản: TLS 1.2 (0x0303)
Chiều dài: 156
Giao thức bắt tay: Xin chào khách hàng
Kiểu bắt tay: Xin chào khách hàng (1)
Chiều dài: 152
Phiên bản: TLS 1.2 (0x0303)
Ngẫu nhiên: 61404bb1f286d56caf2a6f1eb9d47f62ea8e7c8dd7764e6654d56ab4f90fef7a
Độ dài ID phiên: 0
Bộ mật mã Chiều dài: 56
Cipher Suites (28 dãy phòng)
Bộ mật mã: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Bộ mật mã: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Bộ mật mã: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)
Bộ mật mã: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
Bộ mật mã: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f)
Bộ mật mã: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
Bộ mật mã: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
Bộ mật mã: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
Bộ mật mã: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
Bộ mật mã: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
Bộ mật mã: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Bộ mật mã: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
Bộ mật mã: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Bộ mật mã: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Bộ mật mã: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
Bộ mật mã: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
Bộ mật mã: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
Bộ mật mã: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
Bộ mật mã: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)
Bộ mật mã: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)
Bộ mật mã: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
Bộ mật mã: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
Bộ mật mã: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
Bộ mật mã: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (0x006a)
Bộ mật mã: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (0x0040)
Bộ mật mã: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038)
Bộ mật mã: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032)
Bộ mật mã: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013)
Chiều dài phương pháp nén: 1
Phương pháp nén (1 phương pháp)
Phương thức nén: null (0)
Độ dài tiện ích mở rộng: 55
Tiện ích mở rộng: supports_groups (len=8)
Loại: supports_groups (10)
Chiều dài: 8
Độ dài danh sách nhóm được hỗ trợ: 6
Nhóm được hỗ trợ (3 nhóm)
Tiện ích mở rộng: ec_point_formats (len=2)
Loại: ec_point_formats (11)
Chiều dài: 2
Định dạng điểm EC Độ dài: 1
Định dạng điểm đường cong elip (1)
Tiện ích mở rộng: signature_algorithms (len=20)
Loại: signature_algorithms (13)
Chiều dài: 20
Thuật toán băm chữ ký Độ dài: 18
Thuật toán băm chữ ký (9 thuật toán)
Tiện ích mở rộng: session_ticket (len=0)
Loại: session_ticket (35)
Chiều dài: 0
Dữ liệu (0 byte)
Tiện ích mở rộng: Extended_master_secret (len=0)
Loại: Extended_master_secret (23)
Chiều dài: 0
Tiện ích mở rộng: đàm phán lại_info (len=1)
Loại: đàm phán lại_info (65281)
Chiều dài: 1
Tiện ích mở rộng thông tin đàm phán lại
Tôi đã thử một số phương pháp tạo chứng chỉ khác nhau. Nhật ký này đang sử dụng chứng chỉ được tạo bằng power shell trên cùng một máy chủ đang chạy thử nghiệm:
New-SelfSignedCertificate -CertStoreLocation Chứng chỉ:\LocalMachine\My -DnsName "host.com" -FriendlyName "host.com" -Notafter (Get-Date).AddYears(10)
Tôi cũng đã thử sử dụng chứng chỉ được cài đặt với ứng dụng của chúng tôi nhưng tôi nhận được kết quả tương tự.
Khi thực hiện cùng một bài kiểm tra trên hai máy chủ Windows 10 nơi các chứng chỉ đã được tạo theo cùng một cách. Một trong số chúng cũng tạo phản hồi Đặt lại TCP trên Client Hello khi cái kia hoạt động như dự định và tôi có thể xác thực bằng IDP.
Gọi IDP bằng HTTP luôn hoạt động.
Vấn đề này có thể là do tôi đang sử dụng giao diện loopback trong khi đặt tên DNS thành "host.com"? Trong trường hợp đó, DNS nên là gì? Việc sử dụng 'localhost' và '127.0.0.1' đều dẫn đến đặt lại TCP.
Hoặc có thể có một số cấu hình chặn kết nối?
Người ta sẽ nghĩ rằng kể từ khi tạo chứng chỉ trên cùng một máy chủ đang chạy ứng dụng và dịch vụ, tất cả các mật mã sẽ được máy chủ hỗ trợ.