อาการ
พิจารณาสถานการณ์สมมติต่อไปนี้:
-
ในสภาพแวดล้อม Exchange Server 2013 มีการกำหนดค่าเว็บไซต์ Outlook Web App หรือแผงควบคุมอัตราแลกเปลี่ยน (ECP) เมื่อต้องการใช้การรับรองโดยใช้ฟอร์ม (FBA)
-
ผู้ใช้ป้อนชื่อผู้ใช้ของกล่องจดหมายที่ถูกต้องและรหัสผ่าน
เมื่อผู้ใช้เข้าสู่ระบบ Outlook Web App หรือ ECP ในสถานการณ์สมมตินี้ เขาหรือเธอถูกเปลี่ยนเส้นทางไปยังเพจที่ FBA มีข้อผิดพลาดไม่มีอยู่
นอกจากนี้ ในล็อก HttpProxy\Owa รายการสำหรับ " / owa " แสดงว่า " CorrelationID = <ว่าง > NoCookies = 302" ถูกส่งกลับสำหรับคำขอล้มเหลว ก่อนหน้านี้ในล็อก รายการสำหรับ " / owa/auth.owa " บ่งชี้ว่า ผู้ใช้มีการรับรองความถูกต้องเรียบร้อยแล้วสาเหตุ
ปัญหานี้อาจเกิดขึ้นได้ถ้าเว็บไซต์ได้รับการป้องกัน โดยใบรับรองที่ใช้ผู้ให้บริการการจัดเก็บคีย์ (KSP) สำหรับการเก็บคีย์ส่วนตัวโดยใช้การเข้ารหัสถัดไปสร้าง (CNG)
Exchange Server ไม่สนับสนุนใบรับรอง CNG/KSP สำหรับการรักษาความปลอดภัย Outlook Web App หรือ ECP ผู้ให้บริการเข้ารหัสลับ (CSP) ต้องถูกนำมาใช้แทน คุณสามารถกำหนดว่า คีย์ส่วนตัวถูกเก็บไว้ใน KSP แบบจากเซิร์ฟเวอร์ที่เป็นโฮสต์ให้เว็บไซต์ได้รับผลกระทบ คุณสามารถตรวจสอบด้วยซึ่งถ้าคุณมีแฟ้มใบรับรองที่ประกอบด้วยคีย์ส่วนตัว (pfx, p12 เท่า)วิธีการใช้ CertUtil เพื่อตรวจสอบการจัดเก็บคีย์ส่วนตัว
ถ้าใบรับรองถูกติดตั้งบนเซิร์ฟเวอร์ เรียกใช้คำสั่งต่อไปนี้:
certutil-เก็บของฉัน <CertificateSerialNumber>ถ้าใบรับรองถูกเก็บอยู่ในแฟ้ม pfx/p12 เท่า เรียกใช้คำสั่งต่อไปนี้:
certutil <CertificateFileName>ในกรณีใดกรณีหนึ่ง ผลลัพธ์ของแบบสอบถามใบรับรองแสดงต่อไปนี้:
ผู้ให้บริการ = Microsoft เก็บผู้ให้บริการที่สำคัญ
การแก้ปัญหา
เมื่อต้องการแก้ไขปัญหานี้ โยกย้ายใบรับรองไป CSP หรือการร้องขอใบรับรอง CSP จากผู้ให้บริการใบรับรอง
หมายเหตุ ถ้าคุณใช้ CSP หรือ KSP จากตัวแทนจำหน่ายซอฟต์แวร์หรือฮาร์ดแวร์อื่น ผู้ติดต่อของผู้จัดจำหน่ายที่เกี่ยวข้องสำหรับคำแนะนำที่เหมาะสม ตัวอย่างเช่น คุณควรทำเช่นนี้ ถ้าคุณใช้บริการเข้ารหัสลับของ SChannel RSA Microsoft และใบรับรองไม่ได้ถูกล็อกไว้ใน KSP-
สำรองข้อมูลใบรับรองของคุณที่มีอยู่ รวมทั้งคีย์ส่วนตัว สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำเช่นนี้ ดูExchangeCertificate ส่งออก
-
เรียกใช้คำสั่งGet ExchangeCertificateเพื่อตรวจสอบว่าบริการใดถูกผูกไว้กับใบรับรองการอยู่ในขณะนี้
-
นำเข้าใบรับรองใหม่ลงใน CSP โดยการเรียกใช้คำสั่งต่อไปนี้:
"Microsoft RSA SChannel เข้ารหัสลับให้บริการ" - csp certutil - importpfx < CertificateFilename > -
เรียกใช้ExchangeCertificate รับเพื่อให้แน่ใจว่า ใบรับรองยังผูกอยู่กับบริการเดียวกัน
-
เริ่มเซิร์ฟเวอร์ใหม่
-
เรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่า ใบรับรองที่มีคีย์ส่วนตัวของที่จัดเก็บไว้กับ CSP เดี๋ยวนี้:
certutil-เก็บของฉัน <CertificateSerialNumber>
ผลผลิตขณะนี้ควรแสดงต่อไปนี้:
ผู้ให้บริการ = Microsoft RSA ผู้ให้บริการการเข้ารหัสลับ SChannel