Υπογραφή κώδικα Java: Δημιουργία ενός CSR

Από τον Ιανουάριο του 2014, όλες οι εφαρμογές Java που εκτελούνται σε web browsers απαιτούν πιστοποιητικά υπογραφής κώδικα. Αφού αγοράσετε ένα πιστοποιητικό υπογραφής κώδικα, θα πρέπει να υπογράψετε τον κώδικά σας Java.

Απαιτούνται αρκετά εργαλεία για τη δημιουργία πακέτου και την υπογραφή κώδικα Java, συμπεριλαμβανομένων των keytool, jar και jarsigner. Αρχής γενομένης από το JDK 5.0, το jarsigner μπορεί να δημιουργεί υπογραφές που περιλαμβάνουν χρονική σήμανση, επιτρέποντας την επικύρωση ότι το αρχείο JAR υπογράφηκε ενώ ήταν ακόμα έγκυρο το πιστοποιητικό υπογραφής κώδικα.

Προσέγγιση 1 – Ζήτηση ενός νέου πιστοποιητικού υπογραφής κώδικα

  1. Αν χρειάζεται, κάντε λήψη του JDK από την παρακάτω σύνδεση:
    http://java.sun.com/javase/downloads/index.jsp
  2. Ζήτηση ενός πιστοποιητικού υπογραφής κώδικα από την GoDaddy.
    • Δημιουργήστε έναν νέο χώρο αποθήκευσης κλειδιών. Ένας χώρος αποθήκευσης κλειδιών είναι ένα σημείο όπου αποθηκεύονται ασφαλή πιστοποιητικά. Αυτό το παράδειγμα θα δημιουργήσει έναν προσαρμοσμένο χώρο αποθήκευσης κλειδιών με όνομα "codesignstore", ο οποίος θα χρησιμοποιηθεί μόνο για ένα πιστοποιητικό υπογραφής κώδικα και το σχετικό ιδιωτικό κλειδί.
      keytool -genkey -alias codesigncert -keypass -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass
    • Δημιουργήστε ένα αίτημα υπογραφής πιστοποιητικού (CSR). Θα δημιουργηθεί ένα ιδιωτικό κλειδί και θα αποθηκευτεί στον χώρο αποθήκευσης κλειδιών με όνομα "codesignstore". Ένα αρχείο CSR με όνομα "mycsr.pem" θα δημιουργηθεί στον τρέχοντα κατάλογο εργασίας.
      keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
    • Αγοράστε ένα πιστοποιητικό υπογραφής κώδικα.
    • Κάντε κλικ στην αγορασμένη πίστωση πιστοποιητικού υπογραφής κώδικα στο "Ο λογαριασμός μου". Έτσι θα μεταβείτε στην εφαρμογή web διαχείρισης λογαριασμού υπηρεσιών ασφαλών πιστοποιητικών της GoDaddy. Η μέθοδος δημιουργίας του CSR πρέπει να οριστεί σε μη αυτόματη στη φόρμα του αιτήματος, ώστε να είναι ορατό το πεδίο CSR.
    • Υποβάλετε το CSR ως μέρος του αιτήματος υπογραφής του κώδικα.
      • Αφού ανοίξετε το αρχείο "mycsr.pem" σε ένα πρόγραμμα επεξεργασίας κειμένου, κάντε αντιγραφή και επικόλληση όλου του περιεχομένου του αρχείου (συμπεριλαμβανομένων των γραμμών που περιέχουν "BEGIN NEW CERTIFICATE REQUEST" και "END NEW CERTIFICATE REQUEST") στο αντίστοιχο τμήμα της φόρμας αιτήματος υπογραφής κώδικα.
    • Οι πληροφορίες εταιρείας που υποβάλατε θα επαληθευτούν. Αν χρειαστεί, ο διαχειριστής μητρώου (RA) μπορεί να επικοινωνήσει μαζί σας για να υποβάλετε επιπλέον πληροφορίες.
    • Αφού εκδοθεί το πιστοποιητικό υπογραφής κώδικα, θα λάβετε ένα μήνυμα email με μια σύνδεση για λήψη του αρχείου του πιστοποιητικού και τυχόν σχετικών ενδιάμεσων πιστοποιητικών.
  3. Εγκαταστήστε το πιστοποιητικό υπογραφής κώδικα, στον ίδιο χώρο αποθήκευσης πιστοποιητικών που δημιουργήσατε προηγουμένως. Το παρακάτω παράδειγμα αναμένει το αρχείο πιστοποιητικού υπογραφής κώδικα να έχει όνομα "mycert.cer". Το πιστοποιητικό αναμένεται να βρίσκεται στον τρέχοντα φάκελο εργασίας και σε μορφή PKCS#7.
    keytool -import -trustcacerts -keystore codesignstore -storepass -alias codesigncert -file mycert.cer
  4. Υπογράψτε το αρχείο JAR με τη βοήθεια του jarsigner, χρησιμοποιώντας το πιστοποιητικό υπογραφής κώδικα και το ιδιωτικό κλειδί
    jarsigner -verbose -keystore codesignstore -storepass -keypass myapp.jar codesigncert
    • Το 'codesignstore' είναι μια ονομασία του χώρου αποθήκευσης κλειδιών όπου φυλάσσονται το πιστοποιητικό υπογραφής κώδικα, το ιδιωτικό κλειδί και όλα τα άλλα πιστοποιητικά στην αλυσίδα.
    • Το μη υπογεγραμμένο αρχείο εισόδου ονομάζεται "myapp.jar" και θα αντικατασταθεί από την υπογεγραμμένη έκδοση του αρχείου. Χρησιμοποιήστε την επιλογή γραμμής εντολής "-signedjar" αν θέλετε να ορίσετε ξεχωριστά ονόματα αρχείων εισόδου και εξόδου.
    • Το 'codesigncert' είναι μια ονομασία του ιδιωτικού κλειδιού στον χώρο αποθήκευσης κλειδιών.
    Στο παρακάτω παράδειγμα, προστίθενται επιλογές χρονικής σήμανσης στο ίδιο παράδειγμα με παραπάνω.
    jarsigner -verbose -keystore codesignstore -storepass -keypass -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert
  5. Επαληθεύστε το υπογεγραμμένο αρχείο JAR
    jarsigner -verify -verbose -certs myapp.jar
  6. Διανείμετε τον κώδικα

Προσέγγιση 2 – Χρήση υπάρχοντος αρχείου PKCS#12 που περιέχει τόσο το πιστοποιητικό υπογραφής κώδικα, όσο και το ιδιωτικό κλειδί

  1. Αν χρειάζεται, κάντε λήψη του JDK από την παρακάτω σύνδεση:
    http://java.sun.com/javase/downloads/index.jsp
  2. Επαληθεύστε ότι είναι δυνατή η χρήση του αρχείου PFX/P12 με το jarsigner. Εκτελέστε την παρακάτω εντολή, η ονομασία που χρειάζεται στο βήμα 5 θα εμφανιστεί στην κορυφή των εξαγόμενων δεδομένων:
    keytool -list -storetype pkcs12 -keystore mycert.pfx -v
  3. Δημιουργήστε ένα αρχείο JAR από τα αρχεία κλάσεων Java, με το εργαλείο jar:
    jar cvf myapp.jar myapp.class
  4. Υπογράψτε το αρχείο JAR με το jarsigner, χρησιμοποιώντας το πιστοποιητικό υπογραφής κώδικα και το ιδιωτικό κλειδί:
    jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "aliasname"
    • Το "mycert.pfx" είναι η πλήρης διαδρομή προς το αρχείο PFX/P12 που περιέχει το πιστοποιητικό υπογραφής κώδικα και το ιδιωτικό κλειδί. Το αρχείο πρέπει επίσης να περιλαμβάνει και όλα τα ενδιάμεσα πιστοποιητικά.
    • Το "aliasname" εμφανίζεται κοντά στην κορυφή των δεδομένων εξόδου του βήματος 2. Αν έγινε εξαγωγή του αρχείου PFX/P12 από Windows, η ονομασία θα είναι στην πράξη ένα GUID.
    • Όταν σας ζητηθεί, καταχωρήστε τον κωδικό πρόσβασης που σχετίζεται με το ιδιωτικό κλειδί στο αρχείο PFX/P12. Μπορείτε επίσης να συμπεριλάβετε την επιλογή "-storepass" για να προσδιορίσετε τον κωδικό πρόσβασης στη γραμμή εντολής.
    • Το μη υπογεγραμμένο αρχείο εισόδου ονομάζεται "myapp.jar" και θα αντικατασταθεί από την υπογεγραμμένη έκδοση του αρχείου. Χρησιμοποιήστε την επιλογή γραμμής εντολής "-signedjar" αν θέλετε να ορίσετε ξεχωριστά ονόματα αρχείων εισόδου και εξόδου.
    Στο παρακάτω παράδειγμα, προστίθενται επιλογές χρονικής σήμανσης στο ίδιο παράδειγμα με παραπάνω:
    jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "aliasname"
  5. Επαληθεύστε το υπογεγραμμένο αρχείο JAR
    jarsigner -verify -verbose -certs myapp.jar
  6. Διανείμετε τον κώδικα

Συνδέσεις


Ήταν χρήσιμο αυτό το άρθρο;
Ευχαριστούμε για τα σχόλιά σας
Χαιρόμαστε που βοηθήσαμε! Υπάρχει κάτι άλλο που μπορούμε να κάνουμε για εσάς;
Λυπούμαστε. Πώς θα μπορούσαμε να σας βοηθήσουμε περαιτέρω;