Cloud Code Signing Integration με το CircleCI

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

Το eSigner είναι το περιβάλλον cloud του SSL.com για υπογραφή κώδικα. Τα κλειδιά και τα πιστοποιητικά υπογραφής φιλοξενούνται με ασφάλεια στο cloud από το SSL.com και είναι προσβάσιμα για υπογραφή από οποιαδήποτε συσκευή που είναι συνδεδεμένη στο διαδίκτυο, καθιστώντας έτσι το eSigner μία από τις καλύτερες πλατφόρμες για την υπογραφή εταιρικού κώδικα. Η εργαλειοθήκη eSigner περιλαμβάνει το CodeSignTool που είναι α βοηθητικό πρόγραμμα γραμμής εντολών για Υπογραφή κώδικα EV πιστοποιητικά και είναι ιδανικό για τη δημιουργία αυτοματοποιημένων διαδικασιών υπογραφής σε διάφορες πλατφόρμες Συνεχούς Ενσωμάτωσης/Συνεχούς Παράδοσης (CI/CD), συμπεριλαμβανομένου του CircleCI. 

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 θα αντικατασταθεί με το υπογεγραμμένο αρχείο.

Προετοιμάστε τα στοιχεία της ροής εργασίας (Υπογραφή κωδικού DLL .NET)

  1. Δημιουργήστε ένα φάκελο .circleci

Στον χώρο εργασίας υπογραφής κώδικα, δημιουργήστε ένα φάκελος .circleci. Κάτω από αυτό, δημιουργήστε ένα αρχείο config.yml.

  1. Ρυθμίστε την έκδοση CI
Έκδοση: 2.1
 
  1.  Επίκληση εργασιών μέσω ροών εργασίας. Οι ροές εργασίας ενορχηστρώνουν ένα σύνολο εργασιών προς εκτέλεση. Οι εργασίες για αυτόν τον αγωγό διαμορφώνονται παρακάτω

Βλέπω: https://circleci.com/docs/2.0/configuration-reference/#workflows

ροές εργασιών:
 
  1. Γράψτε το όνομα της ροής εργασίας.
  dotnet:
 
  1. Μέσα στη ροή εργασίας, ορίζετε τις εργασίες που θέλετε να εκτελέσετε.
 θέσεις εργασίας: - κατασκευή - σημάδι: απαιτεί: - κατασκευή
 

Καθορίστε το στάδιο κατασκευής

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

 (Δείτε: https://circleci.com/docs/2.0/configuration-reference/#jobs)

θέσεις εργασίας: κατασκευή:

 

  1. Δημιουργήστε μια μεταβλητή περιβάλλοντος
  • Οι μεταβλητές περιβάλλοντος χρησιμοποιούνται για να κάνουν τα δείγματα πιο ευανάγνωστα. Στο παραπάνω στιγμιότυπο οθόνης ενός παραδείγματος ροής εργασίας υπογραφής, τα PROJECT_NAME, PROJECT_VERSION και DOTNET_VERSION παραλήφθηκαν προαιρετικά. Η υπογραφή μπορεί να συνεχιστεί ακόμα και με αυτές τις παραλείψεις.  
  περιβάλλον: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project

 

  1.  Ορίστε έναν εκτελεστή Docker: (https://circleci.com/docs/2.0/executor-types/)

    # Μπορείτε να καθορίσετε μια εικόνα από το Dockerhub ή να χρησιμοποιήσετε μία από τις Εικόνες ευκολίας από το Κέντρο προγραμματιστών του CircleCI.

 docker: - εικόνα: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Τοποθετήστε τον κατάλογο εργασίας για την εργασία
  work_directory: /home/circleci/project

 

  1. Προσθέστε βήματα στην εργασία

    Δείτε: https://circleci.com/docs/2.0/configuration-reference/#steps

  βήματα:

 

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

 

  1. Δημιουργήστε κατάλογο τεχνουργημάτων για να αποθηκεύσετε υπογεγραμμένα και ανυπόγραφα αρχεία τεχνουργημάτων
    - run: name: Create Artifacts Directory εντολή: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/πακέτα

 

  1.  Δημιουργήστε ένα έργο ή λύση dotnet και όλες τις εξαρτήσεις του.
      - run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Έκδοση

 

  1. Αντιγράψτε το τεχνούργημα στον κατάλογο τεχνουργημάτων
  • Σε αυτό το παράδειγμα ροής εργασίας γραπτής υπογραφής, δημιουργήθηκαν πολλαπλοί τύποι έργων. Αυτός είναι ο λόγος για τον οποίο διατηρήθηκαν αρχεία διαφορετικών τύπων έργου δημιουργώντας υποφακέλους. Ένας υποφάκελος με το όνομα 'dotnet' δημιουργήθηκε για έργα Dotnet. Στο στιγμιότυπο οθόνης επίδειξης παραπάνω, δεν χρειαζόταν να δημιουργηθεί ένας υποφάκελος με το όνομα "dotnet", επομένως δεν συμπεριλήφθηκε στο σενάριο.
  - εκτέλεση: όνομα: Εντολή Copy Artifacts: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Διατηρήστε το τεχνούργημα στον κατάλογο τεχνουργημάτων για υπογραφή
  - persist_to_workspace: root: . μονοπάτια: - πακέτα/*
 

Καθορίστε το Στάδιο Υπογραφής

  1. Καθορίστε την εργασία υπογραφής
 σημάδι:

 

  1. Δημιουργήστε μια μεταβλητή περιβάλλοντος
  • Στο παραπάνω στιγμιότυπο οθόνης, η εντολή sign ορίστηκε απευθείας στη δέσμη ενεργειών υπογραφής και όχι στις μεταβλητές περιβάλλοντος. σιΆλλες μέθοδοι μπορούν να υπογράψουν σωστά με το CircleCI.
  • Οι μεταβλητές περιβάλλοντος χρησιμοποιούνται για να κάνουν τα δείγματα πιο ευανάγνωστα. Στο παραπάνω στιγμιότυπο οθόνης του παραδείγματος ροής εργασίας, ορισμένες μεταβλητές δεν συμπεριλήφθηκαν προαιρετικά. Η υπογραφή μπορεί να συνεχιστεί ακόμα και με αυτές τις παραλείψεις.  
    περιβάλλον: ENVIRONMENT_NAME: PROD COMMAND: υπογράψτε WORKSPACE: /home/circleci/project

 

  1.     Τοποθετήστε τον κατάλογο εργασίας για την εργασία στο Circle-CI
 work_directory: /home/circleci/project

 

  1. Όνομα τεχνουργήματος για υπογραφή
  • Η τιμή "artifact-name" είναι μια επιλογή για πολλά έργα Η παράμετρος "artifact-name" προστέθηκε έτσι ώστε το ίδιο τμήμα υπογραφής να μπορεί να χρησιμοποιηθεί για όλους τους τύπους έργων. Δεδομένου ότι το παράδειγμα στο στιγμιότυπο οθόνης βασίζεται σε ένα μόνο έργο, δεν ήταν απαραίτητο να συμπεριληφθεί.
    parameters: artifact-name: type: string default: ''

 

  1. Ορίστε έναν εκτελεστή docker:

 Για πρόσθετη αναφορά, βλ. https://circleci.com/docs/2.0/executor-types/

       Μπορείτε να καθορίσετε μια εικόνα από το Dockerhub ή να χρησιμοποιήσετε μία από τις Εικόνες ευκολίας από το Κέντρο προγραμματιστών του CircleCI.

       Φροντίστε να ενημερώσετε την παρακάτω ετικέτα εικόνας Docker στην έκδοση openjdk της εφαρμογής σας.

       Μια λίστα με τις διαθέσιμες εικόνες ευκολίας CircleCI Docker είναι διαθέσιμη εδώ: https://circleci.com/developer/images/image/cimg/openjdk

   docker: - εικόνα: cimg/openjdk:17.0.3

 

  1. Προσθέστε βήματα στην εργασία

      Για πρόσθετη αναφορά, βλ. https://circleci.com/docs/2.0/configuration-reference/#steps

    βήματα:

 

  1. Δημιουργήστε κατάλογο τεχνουργημάτων για να αποθηκεύσετε υπογεγραμμένα και ανυπόγραφα αρχεία τεχνουργημάτων
  - run: name: Create Artifacts Directory εντολή: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/πακέτα

 

  1. Επισύναψη στο Workspace για πρόσβαση στο αρχείο τεχνουργημάτων
   - attach_workspace: στο: /home/circleci/project

 

  1. Ενεργοποίηση Docker για CodeSigner στο Circle-CI
 - setup_remote_docker: όνομα: Setup Remote Docker έκδοση: 19.03.13 docker_layer_caching: true

 

  1. Τραβήξτε το Codesigner Docker Image από το μητρώο Github
        - εκτέλεση: όνομα: Docker Pull Εντολή εικόνας: | docker pull ghcr.io/sslcom/codesigner:last docker pull alpine:3.4

 

  1. Γράψτε το βήμα όπου θα υπογραφεί το τεχνούργημα με το CodeSignTool.
 - run: name: Sign Artifact Εντολή αρχείου: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --κεντρικός υπολογιστής δικτύου --volumes-from codesign-in --volumes-from codesign- out -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghsslcr:αργά. ${COMMAND} -input_file_path=/codesign/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ WORKSPACE}/artifacts/<< parameters.artifact-name >>

 

  1. Γράψτε το βήμα για τη μεταφόρτωση του αντικειμένου σας από τη ροή εργασίας σας, επιτρέποντάς σας να μοιράζεστε δεδομένα μεταξύ εργασιών και να αποθηκεύετε δεδομένα μόλις ολοκληρωθεί μια ροή εργασίας
    - store_artifacts: όνομα: Μεταφόρτωση υπογεγραμμένων αρχείων Διαδρομή: /home/circleci/project/artifacts/<< parameters.artifact-name >> προορισμός: << parameters.artifact-name >>
 

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

Αντιγράψτε τα στοιχεία της εντολής push από τη θέση του έργου σας στο λογαριασμό σας στο GitHub

Συμπεριλάβετε όλα τα στοιχεία εντολών push στον επεξεργαστή σας

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

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

Ρυθμίστε ένα έργο στο CircleCI χρησιμοποιώντας το αποθετήριο που είναι ενσωματωμένο στο GitHub

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

Ενώ το έργο εκτελείται, κάντε κλικ στο κουμπί Ρυθμίσεις έργου ακολουθούμενο από Μεταβλητές περιβάλλοντος για να ορίσετε τις μεταβλητές

Τοποθετήστε τις τιμές για κάθε μεταβλητή

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

Περιμένετε να κατασκευαστεί το έργο

Κάντε κλικ στην επιλογή Διατήρηση στον χώρο εργασίας

Περιμένετε για λίγο να μεταφορτωθεί με επιτυχία το αρχείο του χώρου εργασίας.

Κάντε κλικ στο κουμπί υπογραφή

Περιμένετε να ρυθμιστεί το Remote Docker

Μπορεί να διαρκέσει περισσότερο από ένα λεπτό, ανάλογα με το μέγεθος του αρχείου

Περιμένετε να υπογραφούν τα τεχνουργήματα

Πατήστε Αντικείμενα αυτί

Εάν κάνετε κλικ Αντικείμενα, θα μπορείτε να δείτε το αρχείο που έχετε κωδικοποιήσει με επιτυχία. Θα ειδοποιηθείτε επίσης από το CircleCI για την επιτυχή υπογραφή κώδικα.

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

Δείγμα αγωγού CircleCI

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

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

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

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

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

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

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

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