ฉันต้องการนำเข้าใบรับรองที่ลงนามด้วยตนเองลงใน Java ดังนั้นแอปพลิเคชัน Java ใด ๆ ที่จะพยายามสร้างการเชื่อมต่อ SSL จะเชื่อถือใบรับรองนี้
จนถึงตอนนี้ฉันพยายามที่จะนำเข้ามัน
keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem
ถึงกระนั้นเมื่อฉันพยายามที่จะเรียกใช้HTTPSClient.class
ฉันยังคงได้รับ:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: การสร้างเส้นทาง PKIX ล้มเหลว: sun.security.provider.certpath.SunCertPathBuilderException: ไม่สามารถค้นหาเส้นทางการรับรองที่ถูกต้องไปยังเป้าหมายที่ร้องขอ
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider())
ไม่จำเป็นอย่างสมบูรณ์ในส่วนแรก ที่สองไม่ทำการตรวจสอบรับรองใด ๆ ลองใช้แบบธรรมดาURLConnection
เพื่อเริ่มต้นด้วย คุณแน่ใจหรือว่าคุณได้ทำการแก้ไขcacerts
ในlib/security
การติดตั้ง JRE ของคุณ? คุณลองtrustmanager
ตัวเลือกการแก้ไขข้อบกพร่องแล้วหรือยัง