Cloud Code Signing Integration με το GitLab CI

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

Το CodeSignTool είναι ένα ασφαλές βοηθητικό πρόγραμμα γραμμής εντολών που αποτελεί μέρος του eSigner: το περιβάλλον υπογραφής κώδικα cloud που ωφελεί τους εκδότες και τους προγραμματιστές λογισμικού με την ικανότητά του να διεξάγει με ασφάλεια και αποτελεσματικότητα την υπογραφή εταιρικού κώδικα με μη περίπλοκο τρόπο.  Το δείγμα ροής εργασίας παρακάτω δείχνει έναν κώδικα .NET DLL που υπογράφεται στο GitLab CI με το eSigner.

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

.NET Code DLL Signing Παράδειγμα Ροή εργασιών

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

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

στάδια: - κατασκευή - σημάδι
 

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

  • Οι μεταβλητές περιβάλλοντος χρησιμοποιούνται για να κάνουν τα δείγματα πιο ευανάγνωστα. Στο παραπάνω στιγμιότυπο οθόνης του παραδείγματος ροής εργασίας, τα PROJECT_NAME, PROJECT_VERSION και DOTNET_VERSION παραλείφθηκαν προαιρετικά. Η υπογραφή μπορεί να συνεχιστεί με αυτές τις παραλείψεις.  
  • Στην περιοχή ENVIRONMENT_NAME, τοποθετήστε "TEST" για δοκιμαστική υπογραφή και "PROD" για ζωντανή υπογραφή.
μεταβλητές: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Ορίστε το Στάδιο κατασκευής

Παρακάτω είναι ο ορισμός της εργασίας σας για τη δημιουργία τεχνουργήματος dll

build-dotnet:

 

  1. Καθορίστε σε ποιο στάδιο θα εκτελεστεί η εργασία.
  στάδιο: κατασκευή

 

  1. Τοποθετήστε το πλήρες όνομα της εικόνας που πρέπει να χρησιμοποιηθεί. Θα πρέπει να περιέχει το τμήμα Μητρώου εάν χρειάζεται.
 εικόνα: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Καθορίστε σενάρια που θα πρέπει να εκτελούνται *πριν* από την εργασία. Μπορεί να ρυθμιστεί συνολικά ή ανά εργασία.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/πακέτα

 

  1. Ορίστε τα σενάρια Shell που εκτελούνται από το Runner. Δημιουργία τεχνουργήματος DLL
script: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Έκδοση - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR$}/packages PROJECT_NAME}.dll

 

  1. Καθορίστε μια λίστα με αρχεία και καταλόγους που θα πρέπει να επισυναφθούν στην εργασία, εάν είναι επιτυχής.
  • Η "expire_inΗ ιδιότητα ' επιτρέπει τη διαγραφή του αρχείου μετά από ένα ορισμένο χρονικό διάστημα. Η χρήση του είναι προαιρετική. Αυτός είναι ο λόγος για τον οποίο το στιγμιότυπο οθόνης του παραδείγματος ροής εργασίας παραπάνω δεν εμφανίζει αυτήν την ιδιότητα.
artifacts: paths: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 λεπτά
 

Καθορίστε το Στάδιο Σήμανσης

Παρακάτω είναι ο ορισμός της εργασίας σας για την υπογραφή τεχνουργήματος dll

sign-dotnet-artifacts:

 

  1. Καθορίστε σε ποιο στάδιο θα εκτελεστεί η εργασία.
  στάδιο: σημάδι

 

  1. Τοποθετήστε το πλήρες όνομα της εικόνας που πρέπει να χρησιμοποιηθεί. Θα πρέπει να περιέχει το τμήμα Μητρώου εάν χρειάζεται.
 εικόνα: docker:19.03.0

 

  1. Ορίστε τις υπηρεσίες. Αυτή είναι παρόμοια με την ιδιότητα "image", αλλά θα συνδέσει τις καθορισμένες υπηρεσίες με το κοντέινερ "image".
υπηρεσίες: - docker:19.03.0-dind

 

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

 

  1. Καθορίστε σενάρια που θα πρέπει να εκτελούνται *πριν* από την εργασία. Μπορεί να ρυθμιστεί συνολικά ή ανά εργασία.
  before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/πακέτα

 

  1. Place Shell scripts που εκτελούνται από το Runner. Υπογράψτε το τεχνούργημα .NET dll με το CodeSignTool Docker Image
σενάριο: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRETNAME${ENTROVI_EN_e ghcr.io/sslcom/codesigner:latest ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. Γράψτε τη δέσμη ενεργειών που μπορεί να χρησιμοποιηθεί για τον καθορισμό μιας λίστας αρχείων και καταλόγων που θα πρέπει να επισυναφθούν στην εργασία εάν είναι επιτυχής.
τεχνουργήματα: διαδρομές: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 ημέρες

 

  1. Καθορίστε μια λίστα με ονόματα εργασιών από προηγούμενα στάδια από τα οποία θα πρέπει να φορτωθούν τα τεχνουργήματα.
εξαρτήσεις: - build-dotnet

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

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

Ξεκινήστε το στάδιο Build

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

Ανατρέξτε στις οδηγίες της γραμμής εντολών στο Gitlab όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης

Σπρώξτε το φάκελό σας

Κάντε αυτό κάνοντας κλικ τερματικό στο μενού, ακολουθούμενο από Νέο τερματικό.

Πληκτρολογήστε το σενάριο push στο τερματικό σας για να προωθήσετε το έργο 

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

Μετά την ενεργοποίηση του αγωγού, προχωρήστε στην κατασκευή

Ελέγξτε εάν η κατασκευή είναι επιτυχής  

Ξεκινήστε το Sign Stage

Προχωρήστε στην υπογραφή του αντικειμένου

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

Τώρα μπορείτε να κάνετε λήψη του υπογεγραμμένου αρχείου

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

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

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

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

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

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

Εγγραφείτε στο ενημερωτικό δελτίο του SSL.com

Μην χάσετε νέα άρθρα και ενημερώσεις από το SSL.com

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

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

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

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