ฉันกำลังพยายามเชื่อมต่อ Java Web API ผ่าน HTTPS อย่างไรก็ตามมีข้อยกเว้นเกิดขึ้น:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
ฉันทำตามขั้นตอนเหล่านี้ซึ่งฉันได้เรียนรู้จากบทเรียนออนไลน์ keytool และใบรับรอง SSL:
ฉันคัดลอก URL HTTPS ลงในเบราว์เซอร์ดาวน์โหลดใบรับรอง SSL และติดตั้งในเบราว์เซอร์โดยใช้ Internet Explorer
ส่งออกใบรับรองไปยังเส้นทางบนคอมพิวเตอร์ของฉันใบรับรองถูกบันทึกเป็น
.cer
ใช้ตัวเลือกการนำเข้าของ keytool คำสั่งด้านล่างดำเนินการโดยไม่มีข้อผิดพลาดใด ๆ
keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
ฉันได้รับแจ้งให้ใส่รหัสผ่านที่พรอมต์คำสั่งซึ่งฉันป้อนแล้วฉันได้รับการรับรองความถูกต้อง
cmd
หน้าต่างพิมพ์ข้อมูลใบรับรองบางและลายเซ็นและผมได้รับแจ้งมีคำถาม:เชื่อถือใบรับรองนี้ไหม
ฉันตอบว่าใช่
พร้อมต์ cmd ปรากฏขึ้น
เพิ่มใบรับรองในที่เก็บคีย์แล้ว
อย่างไรก็ตามหลังจากข้อความนั้นมีข้อยกเว้นอื่นปรากฏขึ้น:
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
ในที่สุดเมื่อฉันตรวจสอบที่เก็บคีย์ไม่ได้เพิ่มใบรับรอง SSL และแอปพลิเคชันของฉันให้ข้อยกเว้นเดียวกันกับที่ฉันได้รับก่อนหน้านี้เมื่อพยายามเชื่อมต่อ:
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)
keytool
คำสั่งที่แน่นอนที่คุณได้ดำเนินการและเป็นผลลัพธ์ได้หรือไม่? ปัญหาที่ชัดเจนบางประการที่นี่คือ-keystore
ข้อโต้แย้งที่พิมพ์ผิดและข้อเท็จจริงที่ว่า keytool ไม่พบที่เก็บคีย์เพื่อนำเข้าคีย์