ในระหว่างการพัฒนาไคลเอนต์ Java เว็บเซอร์ฉันพบปัญหา การรับรองความถูกต้องสำหรับเว็บเซอร์กำลังใช้ใบรับรองไคลเอ็นต์ชื่อผู้ใช้และรหัสผ่าน ใบรับรองไคลเอนต์ที่ฉันได้รับจาก บริษัท ที่อยู่เบื้องหลังเว็บเซอร์เวอร์อยู่ใน.cer
รูปแบบ เมื่อฉันตรวจสอบไฟล์โดยใช้โปรแกรมแก้ไขข้อความมันมีเนื้อหาดังต่อไปนี้:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
ฉันสามารถนำเข้าไฟล์นี้เป็นใบรับรองใน Internet Explorer (โดยไม่ต้องป้อนรหัสผ่าน!) และใช้มันเพื่อตรวจสอบสิทธิ์กับ webservice
ฉันสามารถนำเข้าใบรับรองนี้ไปยังที่เก็บคีย์ได้โดยการเปิดบรรทัดแรกและบรรทัดสุดท้ายโดยแปลงเป็นยูนิกซ์ขึ้นบรรทัดใหม่และรัน base64-decode ไฟล์ผลลัพธ์สามารถอิมพอร์ตไปยังที่เก็บคีย์ (โดยใช้keytool
คำสั่ง) เมื่อฉันแสดงรายการใน keystore รายการนี้เป็นชนิดtrustedCertEntry
ที่รายการนี้เป็นชนิดที่ เนื่องจากประเภทรายการนี้ (?) ฉันไม่สามารถใช้ใบรับรองนี้เพื่อตรวจสอบสิทธิ์กับเว็บเซอร์ ฉันเริ่มคิดว่าใบรับรองที่ให้ไว้เป็นใบรับรองสาธารณะที่ใช้สำหรับการตรวจสอบสิทธิ์ ...
วิธีแก้ปัญหาที่ฉันพบคือการนำเข้าใบรับรองใน IE และส่งออกเป็น.pfx
ไฟล์ ไฟล์นี้สามารถโหลดเป็นที่เก็บคีย์และสามารถใช้เพื่อพิสูจน์ตัวตนกับเว็บเซอร์ อย่างไรก็ตามฉันไม่สามารถคาดหวังให้ลูกค้าทำตามขั้นตอนเหล่านี้ทุกครั้งที่ได้รับใบรับรองใหม่ ดังนั้นฉันต้องการโหลด.cer
ไฟล์ลงใน Java โดยตรง ความคิดใด ๆ
ข้อมูลเพิ่มเติม: บริษัท ที่อยู่เบื้องหลังเว็บเซอร์บอกฉันว่าควรมีการร้องขอใบรับรอง (โดยใช้ IE & เว็บไซต์) จากพีซีและผู้ใช้ที่จะนำเข้าใบรับรองในภายหลัง