Στο εγχειρίδιο αυτό μπορείτε να δείτε τη διαδικασία που χρειάζεται να ακολουθήσετε για να υπογράψετε με το προσωπικό σας ψηφιακό πιστοποιητικό κώδικα Java (jar file).
Απόκτηση προσωπικού ψηφιακού πιστοποιητικού ΑΠΘ για ψηφιακή υπογραφή κώδικα #
Για να υπογράψετε κώδικα Java χρειάζεστε ένα πιστοποιητικό που να περιέχει το χαρακτηριστικό Code Signing.
Για να αποκτήσετε Προσωπικό Ψηφιακό ΠΙστοποιητικό ΑΠΘ με attributes για Code Signing ακολουθείτε διαδικασία διαφορετική από την online έκδοση πιστοποιητικού στο www.pki.auth.gr
Θα πρέπει πρώτα να υποβάλετε μια υπεύθυνη δήλωση και στη συνέχεια να παρευρεθείτε στο ΚΗΔ για να παραλάβετε το πιστοποιητικό σας.
Εγκατάσταση πιστοποιητικού με παραμέτρους για υπογραφή κώδικα #
Μόλις παραλάβετε το πιστοποιητικό σας (σε μορφή pfx ή p12) μπορείτε να το κάνετε import στο Certificate Manager των Windows (certmgr.msc). Αυτό γίνεται είτε επιλέγοντας να κάνετε import μέσα από το Certificate Manager είτε απλά εκτελώντας το pfx σας σαν να ήταν εκτελέσιμο. Σε κάθε περίπτωση το πρώτο σημείο που πρέπει να προσέξετε είναι να επιλέξετε το checkbox “Mark this key as exportable” ώστε να μπορείτε στο μέλλον να κάνετε export και το private key.
Στη συνέχεια βάζετε το πιστοποιητικό στα Personal πιστοποιητικά. Μόλις ολοκληρωθεί το import το πιστοποιητικού μπορείτε να δείτε και τα πιστοποιητικά (CAs) που υπάρχουν στην ιεραρχία.
Για την Αρχή Πιστοποίησης Harica 2011 υπάρχουν τα:
- Aristotle University of Thessaloniki Central CA R4 και
- Hellenic Academic and Research Institutions RootCA 2011
Ελέγχοντας τα χαρακτηριστικά του πιστοποιητικού μπορείτε να διαπιστώσετε εάν περιέχει στα Enhanced Key Usages το attribute Code Signing.
Τέλος, μπορείτε να κάνετε export το πιστοποιητικό με ή χωρίς το private key, με ή χωρίς όλα τα πιστοποιητικά της ιεραρχίας, με ή χωρίς όλα τα extended properties και στο σημείο αυτό μπορείτε να θέσετε νέο password.
Για την περίπτωση του code signing ενδιαφέρει να θέσετε το δικό σας password, να κάνετε export όλα τα properties, όλη την ιεραρχία και φυσικά το private key.
Στο σημείο αυτό έχετε ένα αρχείο PFX που είναι έτοιμο για να μετατραπεί σε Java Keystore.
Δημιουργία Java Keystore από πιστοποιητικό .pfx #
Το επόμενο βήμα είναι να μετατρέψετε το υπάρχον πιστοποιητικό .pfx σε keystore (JKS: Java Keystore).
Ας υποθέσουμε ότι το πιστοποιητικό που έχετε στη διάθεσή σας είναι το my_cert.pfx και οτι βρίσκεστε στο path που βρίσκεται το εργαλείο keytool της Java. Τα βήματα που ακολουθείτε είναι τα παρακάτω:
1) Import Certificate into Keystore file
keytool -importkeystore -srckeystore my_cert.pfx -srcstoretype pkcs12 -destkeystore my_keystore.jks -deststoretype JKS -validity 36500
Στο σημείο αυτό έχει δημιουργηθεί το αρχείο ‘my_keystore.jks’ που είναι το keystore που χρειαζόσαστε.
2) Change Keystore alias
Σε αυτό το βήμα μπορείτε να δώσετε συγκεκριμένο alias στο keystore με την εντολή:
keytool -changealias -alias oldalias -destalias newalias -keystore my_keystore.jks
3) Check listed aliases in a Keystore
Για να ελέγξετε τα αποθηκευμένα aliases που υπάρχουν μέσα στο keystore μπορείτε να τρέξετε την εντολή:
keytool -list -keystore my_keystore.jks
Υπογραφή κώδικα Java #
Το τελευταίο βήμα είναι να χρησιμοποιήσετε το keystore που φτιάξατε (my_keystore.jks) για να υπογράψετε κώδικα Java.
Μπορείτε να φτιάξετε ενα xml κ να το τρέξετε με ant μέσω του eclipse. Ένα παράδειγμα είναι το παρακάτω xml:
Διαφορετικά μπορείτε να υπογράψετε τον κώδικα (jar) χρησιμοποιώντας απευθείας το εργαλείο jarsigner. Αυτό βρίσκεται συνήθως στο path του JDK bin.
Εδώ μπορείτε να τρέξετε την εντολή:
jarsigner -keystore my_keystore.jks -storepass <your_pasaword> CodeToSign.jar <your_keystore_alias>
Χρήσιμα urls είναι:
http://support.godaddy.com/help/article/4780/signing-java-code
https://blogs.oracle.com/java-platform-group/entry/code_signing_understa…