Cloud Code Signing Integration με το Travis CI

Αυτό το άρθρο δείχνει πώς μπορείτε να εκτελέσετε αυτοματοποιημένη υπογραφή κώδικα στο Travis CI ενσωματώνοντας το eSigner CodeSignTool στη διοχέτευσή σας. 

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

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

Μεταβλητές περιβάλλοντος

  • USERNAME: Όνομα χρήστη λογαριασμού 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 (Απαιτείται)
  • ENVIRONMENT_NAME : Περιβάλλον 'TEST' ή 'PROD'. (Απαιτείται)

Είσοδοι

  • διαδρομή_αρχείου_εισόδου: Διαδρομή του αντικειμένου κωδικού προς υπογραφή. (Απαιτείται)
  • output_dir_path: Κατάλογος όπου θα εγγραφούν υπογεγραμμένα αντικείμενα κώδικα. Εάν παραλειφθεί η διαδρομή output_path, το αρχείο που καθορίζεται στο -file_path θα αντικατασταθεί με το υπογεγραμμένο αρχείο.

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

Δημιουργήστε ένα έργο

Στο πλαίσιο του έργου, δημιουργήστε ένα αρχείο για τον Travis

Καθορίστε τα στοιχεία της ροής εργασίας

  1. Τοποθετήστε το CPU Architecture για να εκτελέσετε την εργασία

αψίδα: amd64

  1. Προεπιλεγμένη γλώσσα για την εκτέλεση δοκιμών

γλώσσα: java

  1. Καθορίστε το λειτουργικό σύστημα στο οποίο θα εκτελεστεί η εργασία

os: linux

  1. Γράψτε τη διανομή Ubuntu που θα χρησιμοποιηθεί

απόσταση: βιονικός

  1. Καθορισμός μεταβλητών περιβάλλοντος παγκοσμίως. Η ιδιότητα επιπέδου εργασίας παρακάμπτει τις καθολικές μεταβλητές.
  • Λάβετε υπόψη ότι το TERM=dumb απαιτείται μόνο για περιπτώσεις έργων Gradle.
  • Στην περιοχή ENVIRONMENT_NAME, τοποθετήστε "TEST" για δοκιμαστική υπογραφή και "PROD" για ζωντανή υπογραφή.

env:

  παγκόσμια:

    – PROJECT_NAME="HelloWorld"

    – PROJECT_VERSION=”0.0.1″

    – TERM=χαζός

    – ENVIRONMENT_NAME=”TEST”

  1. Καθορίστε τη σειρά των σταδίων. Όλες οι εργασίες σε ένα στάδιο πρέπει να ολοκληρωθούν πριν από την εκτέλεση του επόμενου σταδίου.

στάδια:

  - χτίζω

  - σημάδι

Περιγράψτε το στάδιο κατασκευής  

θέσεις εργασίας:

  συμπεριλαμβάνω:

        – στάδιο: κατασκευή

  1. Το όνομα της εργασίας

      όνομα: build-maven

  1. Η διανομή Ubuntu προς χρήση

      απόσταση: βιονικός

  1. Χρησιμοποιήστε την εντολή docker για την υπογραφή  

      Υπηρεσίες:

        – λιμενεργάτης

  1. Χρησιμοποιήστε το dotnet-cli για να δημιουργήσετε το έργο

      γλώσσα: java

  1. Έκδοση Java για την κατασκευή του έργου

      JDK:

      – oraclejdk17

  1. Αποθηκεύστε προσωρινά τον κατάλογο m2 για να επιταχύνετε

      κρύπτη:

        καταλόγους:

        – $HOME/.m2

  1. Γράψτε το σενάριο Πριν να εκτελεστεί πριν από τη δημιουργία του έργου

      before_script:

        # Δημιουργήστε καταλόγους για αντικείμενα

        – mkdir -p ${TRAVIS_BUILD_DIR}/artifacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/πακέτα

        # Ορίστε επιλογές κατασκευής Maven

        – εξαγωγή MAVEN_CLI_OPTS=”–batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Γράψτε το σενάριο για την κατασκευή του έργου.
  • Σε αυτό το παράδειγμα ροής εργασίας υπογραφής, δημιουργήθηκαν πολλοί τύποι έργων. Αυτός είναι ο λόγος για τον οποίο διατηρήθηκαν αρχεία διαφορετικών τύπων έργου δημιουργώντας υποφακέλους. Ένας υποφάκελος με το όνομα 'java' δημιουργήθηκε για έργα Java. Στο στιγμιότυπο οθόνης επίδειξης παραπάνω, δεν υπήρχε ανάγκη να δημιουργηθεί ένας υποφάκελος με το όνομα 'java', επομένως δεν συμπεριλήφθηκε στο σενάριο.

      γραφή:

        # Δημιουργία έργου Maven με τις Επιλογές Maven

        – mvn $MAVEN_CLI_OPTS καθαρή εγκατάσταση -f java/pom.xml

         # Αντιγράψτε τα κατασκευασμένα αντικείμενα στον κατάλογο τεχνουργημάτων

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Περιγράψτε πώς μπορείτε να καθορίσετε μια λίστα αρχείων και καταλόγων που θα πρέπει να επισυνάπτονται στην εργασία εάν είναι επιτυχής.

      χώροι εργασίας:

        δημιουργώ:

          όνομα: maven-jar-artifacts

          διαδρομές:

            # Αποθηκεύστε το τεχνούργημα για να χρησιμοποιήσετε την εργασία υπογραφής

            – ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.βάζο

Περιγράψτε το στάδιο της πινακίδας

 – στάδιο: σημάδι

  1. Γράψτε το όνομα της εργασίας

      όνομα: sign-jar-file

  1. Τοποθετήστε τη διανομή Ubuntu για χρήση

      απόσταση: βιονικός

  1. Χρησιμοποιήστε την εντολή Docker για υπογραφή  

      Υπηρεσίες:

        – λιμενεργάτης

     

  1. Ορίστε μεταβλητές περιβάλλοντος για συγκεκριμένες εργασίες.
  • Στο παραπάνω στιγμιότυπο οθόνης, η εντολή sign ορίστηκε απευθείας στη δέσμη ενεργειών υπογραφής και όχι στις μεταβλητές περιβάλλοντος. σιoth Οι μέθοδοι μπορούν να υπογράψουν σωστά με το TravisCI.

      env:

        ΕΝΤΟΛΗ = "σημάδι"

  1. Χρησιμοποιήστε το dotnet-cli για να δημιουργήσετε το έργο

      γλώσσα: java

  1. Έκδοση Java για την κατασκευή του έργου

      JDK:

      – oraclejdk17

  1. Πριν από το σενάριο για εκτέλεση πριν από την κατασκευή του έργου

      before_script:

        # Δημιουργήστε καταλόγους για αντικείμενα

        – mkdir -p ${TRAVIS_BUILD_DIR}/artifacts

        – mkdir -p ${TRAVIS_BUILD_DIR}/πακέτα

     

  1. Σενάριο για την κατασκευή του έργου

      γραφή:

        # Docker Pull CodeSigner Εικόνα Docker

        – Docker pull ghcr.io/sslcom/codesigner:latest

        # Υπογράψτε τεχνούργημα με την εικόνα CodeSigner Docker

        – docker run -i –rm –dns 8.8.8.8 –network host –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –τόμος ${TRAVIS_BUILD_DIR}/artifacts:/codesign/output

          -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET}

          -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND}

          -input_file_path=/codesign/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output

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

      χώροι εργασίας:

        χρησιμοποιήσετε:

          – maven-jar-artifacts

        δημιουργώ:

          όνομα: signed-jar-file

          διαδρομές:

            # Αποθήκευση υπογεγραμμένου αντικειμένου

            – ${TRAVIS_BUILD_DIR}/artifacts/${PROJECT_NAME}.jar

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

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

Ορίστε τις μεταβλητές περιβάλλοντος

Μεταβείτε στον Travis και κάντε κλικ στο Ρυθμίσεις κουμπί

Προσθέστε την τιμή για κάθε μεταβλητή

Κάντε κύλιση προς τα κάτω στο Μεταβλητές περιβάλλοντος ενότητα και κάντε κλικ στο κουμπί Προσθήκη για να προσθέσετε την τιμή για κάθε μεταβλητή

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

Αναζητήστε τις εντολές push στο Github

Γράψτε τις εντολές ώθησης σε ένα τερματικό στον επεξεργαστή σας

Περιμένετε να ολοκληρωθεί η εργασία κατασκευής

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

Ξεκινήστε το στάδιο υπογραφής κώδικα

Κάντε κλικ στο υπογράψουν ενότητα για CodeSignTool για να ξεκινήσει η διαδικασία υπογραφής

Περιμένετε να ολοκληρωθεί η εκκίνηση της εικονικής σας μηχανής

Επιβεβαιώστε εάν η υπογραφή κωδικού είναι επιτυχής

Μπορείτε να ανατρέξετε στο SSL.com Το αποθετήριο Github που περιέχει τους πηγαίους κώδικες της εικόνας του docker και περιγράφει τον τρόπο χρήσης του: https://github.com/SSLcom/ci-images

Δείγμα αγωγού Travis CI

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

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

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

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

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

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

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

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