เรามีรายการบริการบนเว็บ & โครงการ wcf [Sslprotocols.TLS12 แบบฮาร์ดโค้ด] ที่กำหนดค่าด้วยใบรับรองที่ลงนามเอง ซึ่งจะปรับใช้ใน IIS และสามารถเข้าถึงบริการเว็บได้สำเร็จบนเซิร์ฟเวอร์ windows อื่นๆ เช่น windows server 2016, 2012 เป็นต้น .
แต่บน Windows Server 2022 [v21H2 OS build 20348.230] กับ IIS [v10.0.20348.1] เราได้รับ 403.7 ห้ามโดยมีข้อผิดพลาดปฏิเสธการเข้าถึงเมื่อเข้าถึง URL ผ่าน IE บนเซิร์ฟเวอร์ windows
และ
ข้อยกเว้นคือเมื่อเข้าถึง "https://localhost:8083/adminservice/admin.svc" ผ่าน httpclient
15 ธันวาคม 2021 02:10:33.002 UTC [ข้อยกเว้น] เกิดข้อผิดพลาดอย่างน้อยหนึ่งข้อ
ที่ System.Threading.Tasks.Task.ThrowIfExceptional (บูลีน includeTaskCanceledExceptions)
ที่ System.Threading.Tasks.Task.Wait (Int32 มิลลิวินาทีหมดเวลา, CancellationToken cancelToken)
ที่ System.Threading.Tasks.Task.Wait()
ที่ Common.HttpClientInstance.GetWithClientCert (สตริง uri, เนื้อหา HttpContent, สตริง & getResponse, สตริง ClientCertThumbprint)
15 ธันวาคม 2021 02:10:33.002 UTC [ข้อยกเว้น] InnerException : System.Net.Http.HttpRequestException: เกิดข้อผิดพลาดขณะส่งคำขอ ---> System.Net.WebException: การเชื่อมต่อพื้นฐานถูกปิด: เกิดข้อผิดพลาดที่ไม่คาดคิดในการรับ ---> System.IO.IOException: ไม่สามารถอ่านข้อมูลจากการเชื่อมต่อการขนส่ง: การเชื่อมต่อที่มีอยู่ถูกบังคับให้ปิดโดยโฮสต์ระยะไกล---> System.Net.Sockets.SocketException: การเชื่อมต่อที่มีอยู่ถูกบังคับให้ปิดโดยโฮสต์ระยะไกล
ที่ System.Net.Sockets.Socket.EndReceive (IAsyncResult asyncResult)
ที่ System.Net.Sockets.NetworkStream.EndRead (IAsyncResult asyncResult)
--- สิ้นสุดการติดตามสแต็กข้อยกเว้นภายใน ---
ที่ System.Net.Security._SslStream.EndRead (IAsyncResult asyncResult)
ที่ System.Net.TlsStream.EndRead (IAsyncResult asyncResult)
ที่ System.Net.PooledStream.EndRead (IAsyncResult asyncResult)
ที่ System.Net.Connection.ReadCallback (IAsyncResult asyncResult)
--- สิ้นสุดการติดตามสแต็กข้อยกเว้นภายใน ---
ที่ System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult)
ที่ System.Net.Http.HttpClientHandler.GetResponseCallback (IAsyncResult ar)
--- สิ้นสุดการติดตามสแต็กข้อยกเว้นภายใน ---
เนื่องจาก MSDN ระบุว่าเปิดใช้งาน TLS1.3 เป็นค่าเริ่มต้น แต่เซิร์ฟเวอร์ควรเข้ากันได้กับเวอร์ชันที่เก่ากว่าหากไคลเอนต์ร้องขอ TLS1.2 นอกจากนี้ยังไม่มีคีย์รีจิสทรีสำหรับโปรโตคอล [TLS1.2, TLS 1.3] เมื่อตรวจสอบคีย์รีจิสทรีภายใต้ SCHANNEL
และเพิ่มคีย์รีจิสทรี TLS1.2 [client/server] ด้วยตนเอง & สามารถเข้าถึง URL ด้วย HTTPS ได้สำเร็จ & & **สงสัยว่าทำไมได้รับข้อผิดพลาดนี้เมื่อเข้าถึง "https://localhost:8083/adminservice/admin.svc" [โดยไม่ต้อง มีการเปิดใช้งานคีย์รีจิสทรี TLS1.2] **
คุณช่วยให้คำแนะนำหรือแนวทางแก้ไขได้ไหม หรือจะ Debug อย่างไรเพื่อหาสาเหตุที่แท้จริง?
[ตรวจสอบด้วยการติดตามคำขอที่ล้มเหลวและใบรับรองไคลเอ็นต์ที่ตรวจสอบแล้วซึ่งติดตั้งในร้านค้าส่วนบุคคลและ CA รูทในร้านค้าที่เชื่อถือได้]