เรามีเซิร์ฟเวอร์ JAVA และไคลเอ็นต์สื่อสารผ่านเครือข่ายโดยใช้ SSL เซิร์ฟเวอร์และไคลเอนต์รับรองความถูกต้องซึ่งกันและกันโดยใช้ใบรับรอง ชนิดที่เก็บคีย์ที่ใช้โดยเซิร์ฟเวอร์และไคลเอ็นต์คือ JKS เซิร์ฟเวอร์และไคลเอ็นต์โหลดไฟล์ที่เก็บคีย์และ truststore ของพวกเขา ชื่อไฟล์ keystore และ truststore คือ: server.keystore, server.truststore, client.keystore และ client.truststore ฉันใช้ใบรับรองแบบลงนามด้วยตนเองเพื่อการทดสอบเท่านั้น
คำถาม:
ไตรมาสที่ 1 ฉันต้องการทราบว่าทำไมฉันต้องเพิ่มใบรับรองของเซิร์ฟเวอร์และลูกค้าของตัวเองลงในร้านค้าที่เชื่อถือได้ในขั้นตอนที่ 6
ไตรมาสที่ 2 ฉันสามารถลดจำนวนขั้นตอนเพื่อให้ได้สิ่งเดียวกันได้หรือไม่? ถ้าใช่แล้วได้อย่างไร
ขั้นตอนในการสร้างคีย์ RSA ใบรับรองที่ลงนามเองที่เก็บคีย์และ truststore สำหรับเซิร์ฟเวอร์
สร้างคีย์ RSA ส่วนตัว
openssl genrsa -out diagserverCA.key 2048
สร้างใบรับรอง x509
openssl req -x509 -new -nodes -key diagserverCA.key \ -sha256 -days 1024 -out diagserverCA.pem
สร้างที่เก็บคีย์ PKCS12 จากไพรเวตคีย์และพับลิกใบรับรอง
openssl pkcs12 -export -name server-cert \ -in diagserverCA.pem -inkey diagserverCA.key \ -out serverkeystore.p12
แปลงที่เก็บคีย์ PKCS12 เป็นที่เก็บคีย์ JKS
keytool -importkeystore -destkeystore server.keystore \ -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert
นำเข้าใบรับรองของลูกค้าไปยังที่เก็บที่เชื่อถือได้ของเซิร์ฟเวอร์
keytool -import -alias client-cert \ -file diagclientCA.pem -keystore server.truststore
นำเข้าใบรับรองของเซิร์ฟเวอร์ไปยังที่เก็บที่เชื่อถือได้ของเซิร์ฟเวอร์
keytool -import -alias server-cert \ -file diagserverCA.pem -keystore server.truststore
ขั้นตอนในการสร้างคีย์ส่วนตัว RSA ใบรับรองที่ลงนามเองที่เก็บคีย์และ truststore สำหรับไคลเอ็นต์
สร้างรหัสส่วนตัว
openssl genrsa -out diagclientCA.key 2048
สร้างใบรับรอง x509
openssl req -x509 -new -nodes -key diagclientCA.key \ -sha256 -days 1024 -out diagclientCA.pem
สร้างที่เก็บคีย์ PKCS12 จากไพรเวตคีย์และพับลิกใบรับรอง
openssl pkcs12 -export -name client-cert \ -in diagclientCA.pem -inkey diagclientCA.key \ -out clientkeystore.p12
แปลงที่เก็บคีย์ PKCS12 เป็นที่เก็บคีย์ JKS
keytool -importkeystore -destkeystore client.keystore \ -srckeystore clientkeystore.p12 -srcstoretype pkcs12 \ -alias client-cert
นำเข้าใบรับรองของเซิร์ฟเวอร์ไปยังที่เก็บที่เชื่อถือได้ของลูกค้า
keytool -import -alias server-cert -file diagserverCA.pem \ -keystore client.truststore
นำเข้าใบรับรองของลูกค้าไปยังที่เก็บความเชื่อถือของลูกค้า
keytool -import -alias client-cert -file diagclientCA.pem \ -keystore client.truststore