ฉันมีเว็บไซต์สองแห่งที่โฮสต์บนอินสแตนซ์ IIS 8.5 ฉันใช้letsencrypt-win-simpleเพื่อสร้างใบรับรอง เครื่องมือนี้ยังติดตั้งใบรับรองลงใน IIS ฉันมีรายงานว่าเบราว์เซอร์บางตัว ซึ่งส่วนใหญ่เป็นโทรศัพท์ Android ไม่สามารถใช้เว็บไซต์ได้ เนื่องจากข้อผิดพลาด SSL

นี่คือผลลัพธ์ตัวอย่างจากopenssl:

$ openssl s_client -showcerts -connect ad.adtube.ir:443 -servername ad.adtube.ir
CONNECTED(00000003)
depth=0 CN = ad.adtube.ir
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = ad.adtube.ir
verify error:num=21:unable to verify the first certificate
verify return:1

ฉันเคยมีข้อผิดพลาดนี้มาก่อน แต่ฉันแก้ไขใน Apache มันเป็นการกำหนดค่าผิด ฉันไม่พบสิ่งใดที่เกี่ยวข้องกับ IIS นี่เป็นครั้งแรกที่ฉันต้องใช้งานอินสแตนซ์ IIS น่าสงสาร :)

อย่างไรก็ตามฉันจะทำอย่างไร? ฉันได้ตรวจสอบ SSL Labs แล้ว และอาการของปัญหาก็เหมือนกับที่นี่เป็นต้น ทุกคนพูดถึง Apache ราวกับว่าไม่ควรเกิดขึ้นใน IIS

answer

ปรากฎว่าปัญหาคือใบรับรอง X1 เก่าที่ยังคงอยู่ โซลูชันที่โพสต์ที่นี่ใช้งานได้สำหรับฉัน

นี่คือคำแนะนำ:

To get to it, you need to download PsTools from SysInternals212 and run psexec -i -s mmc.exe, go to File -> Add-Remove Snap-in, choose Certificates and My user account. Now go into Intermediate Certificate Authorities and you should find that elusive X1 certificate hiding there.

It might be enough to remove the X1 and then restart IIS, but I ended up adding X3 certificate here just to be sure (right click on the certificate list - click All Tasks -> Import and choose the X3 file).

After this you need to "touch" the bindings in IIS (for example, change the certificate and then back again or delete/add the binding) and after IIS is then restarted it will finally start to serve the correct chain.