ເຫດຜົນແລະວິທີແກ້ໄຂສໍາລັບ "ການຮ້ອງຂໍຖືກຍົກເລີກແລະລົ້ມເຫລວໃນການສ້າງຊ່ອງທີ່ປອດໄພ SSL/TLS"
ຄໍາອະທິບາຍ: ການຮ້ອງຂໍຖືກຍົກເລີກ: ບໍ່ສໍາເລັດໃນການສ້າງຊ່ອງຄວາມປອດໄພ SSL / TLS. ບໍ່ສາມາດສ້າງຊ່ອງທີ່ປອດໄພ SSL/TLS ໄດ້.
ສ້າງແພລດຟອມ: Windows Server 2012, Windows 7 Service Pack 1 (SP1), ແລະ Windows Server 2008 R2 SP1
ການແກ້ໄຂຫນຶ່ງ:
ຕັ້ງລະຫັດກ່ອນ HttpWebRequest
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
ການແກ້ໄຂ 2
- ຖ້າວິທີການຂ້າງເທິງນີ້ບໍ່ໄດ້ຜົນ, ມັນເປັນບັນຫາລະດັບລະບົບການປັບປຸງ patch ຂອງລະບົບຕາມລະບົບທີ່ທ່ານກໍາລັງໃຊ້.
ອັບເດດເພື່ອເປີດໃຊ້ TLS 1.1 ແລະ TLS 1.2 ເປັນໂປຣໂຕຄໍຄວາມປອດໄພເລີ່ມຕົ້ນໃນ WinHTTP ໃນ Windows, ການປັບປຸງນີ້ສະຫນອງການສະຫນັບສະຫນູນການຂົນສົ່ງຊັ້ນຄວາມປອດໄພ (TLS) ໃນ Windows Server 2012, Windows 7 Service Pack 1 (SP1), ແລະ Windows Server 2008 R2 SP1 1.1 ແລະການສະຫນັບສະຫນູນ TLS 1.2, ກະລຸນາເບິ່ງເອກະສານທາງການhttps://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
ປັບປຸງແກ້ໄຂ
ຕັ້ງຄ່າເລີ່ມຕົ້ນ
- ເປີດໃຊ້ TLS 1.1 ແລະ 1.2 ຢູ່ໃນ Windows 7 ໃນລະດັບອົງປະກອບຂອງຊ່ອງ (ຮັບຮອງເອົາຫນຶ່ງໃນການປັບປຸງ 2.1 ຫຼື 2.2 ຂ້າງລຸ່ມນີ້)
2.1 Microsoft ຕິດຕັ້ງແລະປັບປຸງການຈົດທະບຽນ:http://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi
2.2 ປັບປຸງການລົງທະບຽນດ້ວຍຕົນເອງ, ຄັດລອກລະຫັດການລົງທະບຽນຕໍ່ໄປນີ້ແລະນໍາເຂົ້າເຂົ້າໃນການລົງທະບຽນ. ສ້າງ txt ໃຫມ່, ປ່ຽນ suffix txt ເປັນ reg (registry key), ແລະນໍາເຂົ້າ (ເຮັດການສໍາຮອງຂໍ້ມູນກ່ອນທີ່ຈະນໍາເຂົ້າ)
1 | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] |
ລະບົບການຢັ້ງຢືນ
- ກວດສອບວ່າລະບົບຮອງຮັບ TLS1.2, TLS1.3 ຫຼືບໍ່
PowerShell ເປີດ:
Net.ServicePointManager::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
ການແກ້ໄຂສາມ
- ທັງສອງວິທີການທີ່ຜ່ານມາຈະບໍ່ເຮັດວຽກ ທ່ານພຽງແຕ່ສາມາດນໍາໃຊ້ວິທີການສຸດທ້າຍເພື່ອຍົກລະດັບລະບົບເປັນ Windows 10.
ເນື້ອຫາອ້າງອີງອື່ນໆ
https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/
ການແກ້ໄຂມີຢູ່, ແຕ່ພວກມັນຂຶ້ນກັບສະບັບກອບ:
.NET 4.6 ແລະສູງກວ່າ. ທ່ານບໍ່ຈໍາເປັນຕ້ອງເຮັດວຽກເພີ່ມເຕີມເພື່ອສະຫນັບສະຫນູນ TLS 1.2, ມັນສະຫນັບສະຫນູນໂດຍຄ່າເລີ່ມຕົ້ນ.
.NET 4.5. ຮອງຮັບ TLS 1.2, ແຕ່ມັນບໍ່ແມ່ນໂປຣໂຕຄໍເລີ່ມຕົ້ນ. ທ່ານຈໍາເປັນຕ້ອງເລືອກໃຊ້ມັນ. ລະຫັດຕໍ່ໄປນີ້ກໍານົດ TLS 1.2 ເປັນຄ່າເລີ່ມຕົ້ນ, ໃຫ້ແນ່ໃຈວ່າໄດ້ປະຕິບັດມັນກ່ອນທີ່ຈະເຊື່ອມຕໍ່ກັບຊັບພະຍາກອນທີ່ປອດໄພ:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
.NET 4.0. TLS 1.2 ບໍ່ຮອງຮັບ, ແຕ່ຖ້າ .NET 4.5 (ຫຼືສູງກວ່າ) ຖືກຕິດຕັ້ງຢູ່ໃນລະບົບຂອງເຈົ້າ, ເຈົ້າຍັງມີທາງເລືອກທີ່ຈະໃຊ້ TLS 1.2 ເຖິງແມ່ນວ່າກອບແອັບພລິເຄຊັນຂອງເຈົ້າບໍ່ຮອງຮັບ TLS 1.2. ບັນຫາພຽງແຕ່ວ່າ SecurityProtocolType ໃນ .NET 4.0 ບໍ່ມີການເຂົ້າສໍາລັບ TLS1.2, ດັ່ງນັ້ນພວກເຮົາຕ້ອງໃຊ້ການເປັນຕົວແທນຕົວເລກຂອງມູນຄ່າ enum ນີ້:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
.NET 3.5 ຫຼືຕ່ຳກວ່າ. ບໍ່ຮອງຮັບ TLS 1.2(*) ແລະບໍ່ມີການແກ້ໄຂບັນຫາ. ອັບເກຣດແອັບພລິເຄຊັນຂອງທ່ານເປັນເວີຊັນຫຼ້າສຸດຂອງກອບ.
PS ສໍາລັບສະຖານະການ 3, ຍັງມີການ hack ລີຈິດຊີທີ່ຈະບັງຄັບໃຫ້ 4.5 ໃຊ້ TLS 1.2 ໂດຍຄ່າເລີ່ມຕົ້ນໂດຍບໍ່ຈໍາເປັນຕ້ອງບັງຄັບມັນດ້ວຍໂປຣແກຣມ.
PPS ດັ່ງທີ່ Christian Pop ຂອງ Microsoft ກ່າວຢູ່ລຸ່ມນີ້, ມີແພັດຫຼ້າສຸດທີ່ມີໃຫ້ສຳລັບ .NET 3.5 ເຊິ່ງເຮັດໃຫ້ຮອງຮັບ TLS1.2.
ເບິ່ງ:
KB3154518 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
KB3154519 – ຄວາມໜ້າເຊື່ອຖື Rollup HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
KB3154520 – ຄວາມໜ້າເຊື່ອຖື Rollup HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.