Ενσωμάτωση υπογραφής κώδικα cloud με ενέργειες GitHub

Αυτό το άρθρο-οδηγός δείχνει πώς το eSigner ενσωματώνεται με το GitHub Actions για αυτοματοποιημένη υπογραφή κώδικα σε μια εγκατάσταση Συνεχούς Ενοποίησης/Συνεχούς Παράδοσης (CI/CD).

Το eSigner είναι η πλατφόρμα υπογραφής που βασίζεται σε σύννεφο, την οποία εμπιστεύονται οι προγραμματιστές λογισμικού σε όλο τον κόσμο για τη διεξαγωγή της υπογραφής εταιρικού κώδικα χωρίς την ανάγκη για μάρκες USB ή άλλο εξειδικευμένο υλικό.  Ένα από τα στοιχεία του eSigner είναι το CodeSignTool: ένα βοηθητικό πρόγραμμα γραμμής εντολών που βασίζεται στο απόρρητο και είναι εξαιρετικά αποτελεσματικό για προγραμματιστές που θέλουν να αυτοματοποιήσουν την υπογραφή κώδικα.  Οι ακόλουθες ενότητες δείχνουν πώς μπορείτε να υπογράψετε έναν κώδικα Java (Maven) στο GitHub Actions χρησιμοποιώντας το eSigner CodeSignTool.

SSL.com's EV Υπογραφή κώδικα τα πιστοποιητικά βοηθούν στην προστασία του κώδικά σας από μη εξουσιοδοτημένη παραβίαση και συμβιβασμό με το υψηλότερο επίπεδο επικύρωσης και είναι διαθέσιμα για μόλις 249 $ ανά έτος. Μπορείτε επίσης να χρησιμοποιήστε το πιστοποιητικό υπογραφής κωδικού EV σε κλίμακα στο σύννεφο χρησιμοποιώντας το eSigner.

ΠΑΡΑΓΓΕΙΛΕ ΤΩΡΑ

Χρήση

- όνομα: Υπογραφή Artifact με CodeSignTool

  χρήσεις: sslcom/actions-codesigner@develop

  με:

  •      Εντολές CodeSignTool:

     - get_credential_ids: Εξαγωγή της λίστας των αναγνωριστικών διαπιστευτηρίων eSigner που σχετίζονται με έναν χρήστη.

     - credential_info: Κλειδί εξόδου και πληροφορίες πιστοποιητικού που σχετίζονται με αναγνωριστικό διαπιστευτηρίου.

     - sign: Αντικείμενο κώδικα σήμανσης και χρονικής σήμανσης.

     - batch_sign: Υπογραφή και χρονική σήμανση πολλαπλών αντικειμένων κώδικα με ένα OTP.

     - hash: Υπολογίστε εκ των προτέρων τους κατακερματισμούς για μελλοντική χρήση με την εντολή batch_hash_sign.

     - batch_sign_hash: Κατακερματισμός υπογραφής προυπολογισμένος με εντολή κατακερματισμού.

        εντολή: υπογράψουν

 

  • Όνομα χρήστη λογαριασμού SSL.com.

         username: ${{secrets.ES_USERNAME}}

  •  Κωδικός πρόσβασης λογαριασμού SSL.com.

         password: ${{secrets.ES_PASSWORD}}

  • Ταυτότητα διαπιστευτηρίου για υπογραφή πιστοποιητικού.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Διαδρομή του αντικειμένου κωδικού προς υπογραφή.

          file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar

  • Κατάλογος όπου θα εγγραφούν υπογεγραμμένα αντικείμενα κώδικα.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Είσοδοι

  • όνομα χρήστη: Όνομα χρήστη λογαριασμού SSL.com. (Απαιτείται)
  • κωδικό πρόσβασης: Κωδικός πρόσβασης λογαριασμού SSL.com (Απαιτείται)
  • credential_id: Διαπιστευτήριο για την υπογραφή πιστοποιητικού. Εάν παραληφθεί το credential_id και ο χρήστης έχει μόνο ένα πιστοποιητικό υπογραφής κωδικού eSigner, το CodeSignTool θα το έχει προεπιλογή. Εάν ο χρήστης διαθέτει περισσότερα από ένα πιστοποιητικά υπογραφής κωδικού, αυτή η παράμετρος είναι υποχρεωτική. (Απαιτείται)
  • totp_secret: OAuth TOTP Secret. Μπορείτε να έχετε πρόσβαση σε λεπτομερείς πληροφορίες για https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Απαιτείται)
  • διαδρομή αρχείου: Διαδρομή του αντικειμένου κωδικού προς υπογραφή. (Απαιτείται)
  • έξοδος_ διαδρομή: Κατάλογος όπου θα εγγραφούν υπογεγραμμένα αντικείμενα κώδικα. Εάν παραλειφθεί η διαδρομή output_path, το αρχείο που καθορίζεται στο -file_path θα αντικατασταθεί με το υπογεγραμμένο αρχείο.

Ροή εργασιών για παράδειγμα Java Code (Maven) JAR Signing

Προετοιμάστε τα στοιχεία της ροής εργασίας

  1. Δημιουργήστε έναν φάκελο Github στον επεξεργαστή σας. Συμπεριλάβετε ροές εργασίας με το φάκελο και δημιουργήστε ένα αρχείο yml κάτω από το φάκελο.
    1. Ονομάστε το έργο σας και τον τύπο της ροής εργασίας που εμπλέκεται
    Όνομα: Maven Build and Sign
     
    1. Ενεργοποιήστε αυτήν τη ροή εργασίας με μια ώθηση
    on: ώθηση
     
    1. Δημιουργήστε μια μεταβλητή περιβάλλοντος
    • Οι μεταβλητές περιβάλλοντος χρησιμοποιούνται για να κάνουν τα δείγματα πιο ευανάγνωστα. Στο παραπάνω στιγμιότυπο οθόνης του παραδείγματος ροής εργασίας, τα PROJECT_NAME, PROJECT_VERSION και MAVEN_VERSION παραλείφθηκαν προαιρετικά. Η υπογραφή μπορεί να συνεχιστεί ακόμα και με αυτές τις παραλείψεις.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Καθορίστε τις εργασίες στο πρόγραμμα επεξεργασίας σας
    θέσεις εργασίας: build-and-sign-jar:
     
    1. Εκτέλεση εργασίας στο Ubuntu Runner
        runs-on: ubuntu-latest
     
    1. Δημιουργήστε ένα όνομα. Όταν εκτελείται η ροή εργασίας, αυτό είναι το όνομα που καταγράφεται.
      όνομα: CodeSigner σε Java με Maven
     

Περιγράψτε τα βήματα για τον έλεγχο του πηγαίου κώδικα, τη ρύθμιση του περιβάλλοντος Java και Maven και τη δημιουργία Καταλόγου Artifact.

  1) Ελέγξτε τον πηγαίο κώδικα, ώστε η ροή εργασίας να έχει πρόσβαση σε αυτόν.

   βήματα: - χρήσεις: actions/checkout@v2
 

  2) Ρυθμίστε το περιβάλλον Java και Maven για χρήση της ροής εργασίας.

    - όνομα: Εγκατάσταση Maven και Java χρησιμοποιεί: s4u/setup-maven-action@v1.3.1 με: java-version: '${{env.JAVA_VERSION}}' maven-έκδοση: '${{env.MAVEN_VERSION}}'

 

      3) Δημιουργήστε κατάλογο τεχνουργημάτων για να αποθηκεύσετε υπογεγραμμένα και ανυπόγραφα αρχεία τεχνουργημάτων

 - όνομα: Δημιουργία κελύφους καταλόγου: bash εκτέλεση: | mkdir ${GITHUB_WORKSPACE}/artifacts mkdir ${GITHUB_WORKSPACE}/πακέτα

 

      4) Δημιουργήστε ένα έργο ή λύση maven και όλες τις εξαρτήσεις του.

      Αφού δημιουργηθεί το αρχείο jar, αντιγράψτε στον φάκελο «πακέτα» για υπογραφή

  • Σε αυτό το παράδειγμα ροής εργασίας γραπτής υπογραφής, δημιουργήθηκαν πολλαπλοί τύποι έργων. Αυτός είναι ο λόγος για τον οποίο διατηρήθηκαν αρχεία διαφορετικών τύπων έργου δημιουργώντας υποφακέλους. Ένας υποφάκελος με το όνομα 'java' δημιουργήθηκε για έργα Java. Στο στιγμιότυπο οθόνης επίδειξης παραπάνω, δεν υπήρχε ανάγκη να δημιουργηθεί ένας υποφάκελος με το όνομα 'java', επομένως δεν συμπεριλήφθηκε στο σενάριο.
 - όνομα: Δημιουργία Java Κέλυφος έργου: bash εκτέλεση: | mvn καθαρή εγκατάσταση -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. δοχείο
 

Περιγράψτε τα βήματα για τις εργασίες Υπογραφή και Μεταφόρτωση

  1. Η εργασία Sign είναι το βήμα όπου τα δημιουργημένα αρχεία JAR (artifact) θα υπογραφούν με το CodeSignTool.
 - όνομα: Sign Artifact χρησιμοποιεί: sslcom/actions-codesigner@develop με:

           Αντικείμενο κωδικού υπογραφής και χρονικής σφραγίδας.

εντολή: υπογράψω

           Όνομα χρήστη λογαριασμού SSL.com.

όνομα χρήστη: ${{secrets.ES_USERNAME}}

           Κωδικός πρόσβασης λογαριασμού SSL.com.

κωδικός πρόσβασης: ${{secrets.ES_PASSWORD}}

           Ταυτότητα διαπιστευτηρίου για υπογραφή πιστοποιητικού.

credential_id: ${{secrets.CREDENTIAL_ID}}

           OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)

totp_secret: ${{secrets.ES_TOTP_SECRET}}

           Διαδρομή του αντικειμένου κωδικού προς υπογραφή. (Αρχεία DLL, JAR, EXE, MSI vb…)

  file_path: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           Κατάλογος όπου θα εγγραφούν υπογεγραμμένα αντικείμενα κώδικα.

output_path: ${GITHUB_WORKSPACE}/τεχνουργήματα

 

  1. Η εργασία μεταφόρτωσης είναι το βήμα όπου θα μεταφορτωθούν τεχνουργήματα από τη ροή εργασίας σας, επιτρέποντάς σας να μοιράζεστε δεδομένα μεταξύ εργασιών και να αποθηκεύετε δεδομένα μόλις ολοκληρωθεί μια ροή εργασίας
 - όνομα: Μεταφόρτωση υπογεγραμμένων αρχείων χρησιμοποιεί: actions/upload-artifact@v2 με: όνομα: ${{env.PROJECT_NAME}}.jar διαδρομή: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Αποκτήστε ένα πρόγραμμα μεταφόρτωσης τεχνουργημάτων κατασκευής από το Github Marketplace

Ελέγξτε το σενάριο κωδικοποίησης σας

Συνολικά, το σενάριο κωδικοποίησης για τις εργασίες εκτύπωσης, υπογραφής και μεταφόρτωσης θα πρέπει να μοιάζει με την παρακάτω εικόνα. Φροντίστε να διορθώσετε τυχόν λάθη, όπως λανθασμένη ορθογραφία ή λανθασμένες αλλαγές γραμμής στο σενάριο, ώστε η διαδικασία υπογραφής να εκτελεστεί ομαλά.

SSL.com's EV Υπογραφή κώδικα τα πιστοποιητικά βοηθούν στην προστασία του κώδικά σας από μη εξουσιοδοτημένη παραβίαση και συμβιβασμό με το υψηλότερο επίπεδο επικύρωσης και είναι διαθέσιμα για μόλις 249 $ ανά έτος. Μπορείτε επίσης να χρησιμοποιήστε το πιστοποιητικό υπογραφής κωδικού EV σε κλίμακα στο σύννεφο χρησιμοποιώντας το eSigner.

ΠΑΡΑΓΓΕΙΛΕ ΤΩΡΑ

Καθορίστε τις Μεταβλητές Περιβάλλοντος σας

Μεταβείτε στην τοποθεσία του έργου σας στον λογαριασμό σας Github. Κάντε κλικ στο Δράσεις αυτί. Κάντε κλικ στο Νέο μυστικό αποθετηρίου κουμπί για να τοποθετήσετε τις τιμές για κάθε μεταβλητή περιβάλλοντος που απαιτείται για την υπογραφή του κώδικά σας.

Δημιουργήστε ένα νέο αποθετήριο στη γραμμή εντολών

Προχωρήστε στη θέση του έργου σας στο Github και αντιγράψτε κάθε στοιχείο της εντολής push.

Σπρώξτε το έργο

Συμπεριλάβετε κάθε γραμμή εντολών push στον επεξεργαστή κώδικα. Με την ολοκλήρωση, ο κώδικας θα προωθηθεί αυτόματα στο Github.

Περιμένετε να υπογραφεί το τεχνούργημα με το eSigner CodeSignTool

Ανεβάστε το υπογεγραμμένο αρχείο

Κάντε κλικ στο υπογεγραμμένο αρχείο για να το ανεβάσετε.

Σημείωση: Φροντίστε να διορθώσετε τυπογραφικά λάθη ή εσφαλμένες αλλαγές γραμμής στο σενάριο, ώστε η διαδικασία υπογραφής να εκτελεστεί ομαλά.

Δείγμα Github Actions Pipeline


Δείτε το δείγμα του αγωγού Github Actions που δημιουργήσαμε github.com/SSLcom/codesigner-github-sample  

Άλλοι οδηγοί ενσωμάτωσης απομακρυσμένης υπογραφής CI/CD

Χρειάζεστε προσαρμοσμένες λύσεις; 

Με τις εξειδικευμένες γνώσεις μας και το προσωπικό υποστήριξης πέντε αστέρων, είμαστε έτοιμοι και πρόθυμοι να συνεργαστούμε μαζί σας για προσαρμοσμένες λύσεις ή εκπτώσεις υπογραφών μεγάλου όγκου σε εταιρικό επίπεδο. Συμπληρώστε την παρακάτω φόρμα και θα επικοινωνήσουμε.

Μείνετε ενημερωμένοι και ασφαλείς

SSL.com είναι παγκόσμιος ηγέτης στον τομέα της κυβερνοασφάλειας, PKI και ψηφιακά πιστοποιητικά. Εγγραφείτε για να λαμβάνετε τα πιο πρόσφατα νέα του κλάδου, συμβουλές και ανακοινώσεις προϊόντων από SSL.com.

Θα θέλαμε τα σχόλιά σας

Συμμετάσχετε στην έρευνά μας και πείτε μας τις σκέψεις σας για την πρόσφατη αγορά σας.