ค่อนข้างตรงไปตรงมาโดยใช้ jdk6 เป็นอย่างน้อย ... 
bash $ keytool -keystore foo.jks -genkeypair -alias foo \
        -dname 'CN = foo.example.com, L = Melbourne, ST = Victoria, C = AU'
ป้อนรหัสผ่านที่เก็บคีย์:  
ป้อนรหัสผ่านใหม่: 
ป้อนรหัสผ่านที่สำคัญสำหรับ 
        (ส่งคืนหากเหมือนกับรหัสผ่านที่เก็บคีย์):  
bash $ keytool -keystore foo.jks -exportcert -alias foo | \
       openssl x509 -inform der -text
ป้อนรหัสผ่านที่เก็บคีย์: asdasd
ใบรับรอง:
    ข้อมูล:
        เวอร์ชัน: 3 (0x2)
        หมายเลขผลิตภัณฑ์: 1237334757 (0x49c03ae5)
        อัลกอริทึมลายเซ็น: dsaWithSHA1
        ผู้ออก: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
        ความถูกต้อง
            ไม่ก่อน: 18 มี.ค. 00:05:57 น. 2009 GMT
            หลัง: 16 มิ.ย. 00:05:57 น. 2009 GMT
        เรื่อง: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
        ข้อมูลคีย์สาธารณะของหัวเรื่อง:
            อัลกอริทึมคีย์สาธารณะ: dsaEncryption
            คีย์สาธารณะ DSA:
                ผับ: 
                    00: e2: 66: 5c: e0: 2e: da: e0: 6b: a6: aa: 97: 64: 59: 14:
                    7e: a6: 2e: 5a: 45: f9: 2f: b5: 2d: f4: 34: 27: e6: 53: c7:
 
bash $ keytool -importkeystore -srckeystore foo.jks \
       -destkeystore foo.p12 \
       -srcstoretype jks \
       -deststoretype pkcs12
ป้อนรหัสผ่านที่เก็บคีย์ปลายทาง:  
ป้อนรหัสผ่านใหม่: 
ป้อนรหัสผ่านที่เก็บคีย์ต้นทาง:  
รายการสำหรับนามแฝง foo นำเข้าสำเร็จแล้ว
คำสั่งนำเข้าเสร็จสมบูรณ์: นำเข้า 1 รายการสำเร็จ 0 รายการล้มเหลวหรือยกเลิก
bash $ openssl pkcs12 -in foo.p12 -out foo.pem
ป้อนรหัสผ่านนำเข้า:
MAC ยืนยันตกลง
ป้อนรหัสผ่าน PEM:
การตรวจสอบ - ป้อนรหัสผ่าน PEM:
bash $ openssl x509 -text -in foo.pem
ใบรับรอง:
    ข้อมูล:
        เวอร์ชัน: 3 (0x2)
        หมายเลขผลิตภัณฑ์: 1237334757 (0x49c03ae5)
        อัลกอริทึมลายเซ็น: dsaWithSHA1
        ผู้ออก: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
        ความถูกต้อง
            ไม่ก่อน: 18 มี.ค. 00:05:57 น. 2009 GMT
            หลัง: 16 มิ.ย. 00:05:57 น. 2009 GMT
        เรื่อง: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
        ข้อมูลคีย์สาธารณะของหัวเรื่อง:
            อัลกอริทึมคีย์สาธารณะ: dsaEncryption
            คีย์สาธารณะ DSA:
                ผับ: 
                    00: e2: 66: 5c: e0: 2e: da: e0: 6b: a6: aa: 97: 64: 59: 14:
                    7e: a6: 2e: 5a: 45: f9: 2f: b5: 2d: f4: 34: 27: e6: 53: c7:
 
bash $ openssl dsa -text -in foo.pem
อ่านคีย์ DSA
ป้อนรหัสผ่าน PEM:
คีย์ส่วนตัว: (1024 บิต)
ส่วนตัว:
    00: 8f: b1: af: 55: 63: 92: 7c: d2: 0f: e6: f3: a2: f5: ff:
    1a: 7a: fe: 8c: 39: dd
ผับ: 
    00: e2: 66: 5c: e0: 2e: da: e0: 6b: a6: aa: 97: 64: 59: 14:
    7e: a6: 2e: 5a: 45: f9: 2f: b5: 2d: f4: 34: 27: e6: 53: c7:
คุณจบลงด้วย:
- foo.jks - ที่เก็บคีย์ในรูปแบบ java
 
- foo.p12 - ที่เก็บคีย์ในรูปแบบ PKCS # 12
 
- foo.pem - คีย์และใบรับรองทั้งหมดจากที่เก็บคีย์ในรูปแบบ PEM
 
(ไฟล์สุดท้ายนี้สามารถแบ่งออกเป็นคีย์และใบรับรองได้หากต้องการ)
สรุปคำสั่ง - เพื่อสร้างที่เก็บคีย์ JKS:
keytool -keystore foo.jks -genkeypair -alias foo \
    -dname 'CN=foo.example.com,L=Melbourne,ST=Victoria,C=AU'
สรุปคำสั่ง - เพื่อแปลงที่เก็บคีย์ JKS เป็นที่เก็บคีย์ PKCS # 12 จากนั้นเป็นไฟล์ PEM:
keytool -importkeystore -srckeystore foo.jks \
   -destkeystore foo.p12 \
   -srcstoretype jks \
   -deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
หากคุณมีใบรับรองมากกว่าหนึ่งรายการในที่เก็บคีย์ JKS ของคุณและคุณต้องการส่งออกเฉพาะใบรับรองและคีย์ที่เชื่อมโยงกับนามแฝงอย่างใดอย่างหนึ่งคุณสามารถใช้รูปแบบต่อไปนี้:
keytool -importkeystore -srckeystore foo.jks \
   -destkeystore foo.p12 \
   -srcalias foo \
   -srcstoretype jks \
   -deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
สรุปคำสั่ง - เพื่อเปรียบเทียบที่เก็บคีย์ JKS กับไฟล์ PEM:
keytool -keystore foo.jks -exportcert -alias foo | \
   openssl x509 -inform der -text
openssl x509 -text -in foo.pem
openssl dsa -text -in foo.pem