นี่เป็นคำถามที่เป็นที่ยอมรับ ... ฉันหวังว่าจะไม่เป็นไร
ในที่ทำงานของฉัน ฉันมักจะแก้ปัญหาเมื่อไคลเอ็นต์ที่ทำงานบนเซิร์ฟเวอร์ Linux (โดยปกติจะเป็นแอปพลิเคชันจาวา) ไม่เชื่อถือใบรับรองที่ถูกต้องและลงนาม ซึ่งเป็นใบรับรองที่เบราว์เซอร์เชื่อถือ การแก้ไขอย่างรวดเร็วตามปกติของเราคือการเพิ่มใบรับรองไปยังที่เก็บที่เชื่อถือได้ของ java cacerts แต่ทำให้ฉันรำคาญว่าเหตุใดจึงจำเป็น
ในความเข้าใจของฉันมีความเป็นไปได้สองประการ:
- ฝั่งเซิร์ฟเวอร์ไม่ส่งเชนแบบเต็ม (ใบรับรองเอนทิตีปลายทาง + ใบรับรองระดับกลาง) ในลำดับที่ถูกต้อง และไคลเอนต์ไม่เชื่อถือใบรับรองระดับกลาง (อาจเป็นเพราะใบรับรองเก่าเกินไป)
- ร้านค้าที่ไว้วางใจของลูกค้าไม่มีใบรับรองรูทเพื่อใช้เป็นจุดยึดที่เชื่อถือได้ (อาจเป็นเพราะเก่าเกินไป)
ถูกต้องหรือไม่? ถ้าเป็นเช่นนั้น ดูเหมือนว่ามีความเป็นไปได้ทางเลือกอื่นในการบังคับให้เชื่อถือใบรับรองเอนทิตีคือ:
- กำหนดค่าแอปพลิเคชันเซิร์ฟเวอร์เพื่อส่งห่วงโซ่แบบเต็ม
- อัปเกรดไคลเอ็นต์ (เช่น java) เป็นเวอร์ชันใหม่กว่า ในกรณีของฉัน โดยปกติจาวารีลีสหลักที่สามารถใช้ได้จะถูกจำกัดโดยข้อกำหนดเบื้องต้นของซอฟต์แวร์ แต่บางทีรีลีสย่อยแต่ละรีลีสจะมี trust store ที่อัปเดตแล้ว
ขอขอบคุณสำหรับความคิดเห็นใด ๆ เกี่ยวกับคำชี้แจง