Cloud Code Signing Integration με το Jenkins CI

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

Το CodeSignTool είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών που είναι κατάλληλο για υπογραφές μεγάλου όγκου και ενσωματώνεται άψογα με διάφορες πλατφόρμες CI/CD. Αποτελεί μέρος του eSigner: της υπηρεσίας μας απομακρυσμένης υπογραφής που προσφέρει μια αποτελεσματική, ασφαλή και φιλική προς το χρήστη προσέγγιση για την υπογραφή εταιρικού κώδικα.

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

ΑΓΟΡΑ ΤΟ ΠΙΣΤΟΠΟΙΗΤΙΚΟ ΥΠΟΓΡΑΦΗΣ ΚΩΔΙΚΟΥ EV SSL.COM ΣΑΣ

Δημιουργήστε ένα αρχείο Jenkins και ορίστε τη διοχέτευση στον επεξεργαστή κώδικα

pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Ρυθμίστε το εργαλείο .NET στον επεξεργαστή κώδικα διαμορφώνοντας το Jenkins

Κάντε κλικ στο Διαχείριση της Jenkins καρτέλα στον πίνακα ελέγχου Jenkins.

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

Κάντε κύλιση προς τα κάτω και κάντε κλικ Εγκαταστάσεις .NET SDK.

Αντιγράψτε την τιμή για το .NET SDK και επικολλήστε την στο πρόγραμμα επεξεργασίας κώδικα.

εργαλεία { dotnetsdk "DOTNET_CORE_3.1.24" }

Μεταβείτε στο plugins.jenkins.io και εγκαταστήστε την προσθήκη .NET SDK

Κάτω από Διαχείριση της Jenkins στον πίνακα ελέγχου σας, ελέγξτε Διαχείριση των προσθηκών για να επιβεβαιώσετε εάν έχει εγκατασταθεί η προσθήκη .NET SDK.

Αφού επιβεβαιώσετε ότι η προσθήκη έχει εγκατασταθεί, επιστρέψτε στις ΕΓΚΑΤΑΣΤΑΣΕΙΣ .NET SDK και βεβαιωθείτε ότι έχουν οριστεί οι λεπτομέρειες της σωστής έκδοσης και έκδοσης της προσθήκης .NET SDK. Προχωρήστε για να κάνετε κλικ στο Αποθήκευση κουμπί.

Ρυθμίστε τις μεταβλητές περιβάλλοντος στον επεξεργαστή κώδικα

περιβάλλον { USERNAME = διαπιστευτήρια('es-username') // όνομα χρήστη λογαριασμού SSL.com. PASSWORD = διαπιστευτήρια ('es-password') // Κωδικός πρόσβασης λογαριασμού SSL.com. CREDENTIAL_ID = διαπιστευτήρια ('es-credential-id') // Αναγνωριστικό διαπιστευτηρίου για υπογραφή πιστοποιητικού. TOTP_SECRET = διαπιστευτήρια('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Όνομα περιβάλλοντος. Για επίδειξη λογαριασμού μπορεί να είναι "TEST" διαφορετικά θα είναι "PROD" }

Θα βρείτε τις τιμές για κάθε μεταβλητή στον πίνακα ελέγχου Jenkins κάτω Ασφάλεια> Διαχειριστείτε Διαπιστευτήρια.

 

Ορίστε τα στάδια για τη δημιουργία καταλόγου τεχνουργημάτων, τη λήψη εικόνας docker, τη δημιουργία .NET και την υπογραφή κώδικα του τεχνουργήματος

 

        1) Δημιουργία καταλόγου τεχνουργημάτων για υπογεγραμμένα και ανυπόγραφα αρχεία τεχνουργημάτων στο κατάστημα.
 stage('Δημιουργία καταλόγου τεχνουργημάτων') { βήματα { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }
        2) Τραβήξτε το Codesigner Docker Image από το μητρώο Github.
stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Δημιουργήστε ένα έργο ή λύση dotnet και όλες τις εξαρτήσεις του. Αφού δημιουργηθεί το αρχείο dll ή exe, αντιγράψτε στον φάκελο «πακέτα» για υπογραφή.
stage('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/ HelloWorld.dll' } }
        4) Αυτό είναι το βήμα όπου τα δημιουργημένα αρχεία DLL (artifact) θα υπογραφούν με το CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- τόμος ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONNAME{$ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:last sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } ανάρτηση { πάντα { archiveArtifacts artifacts: "artifacts:I trueelloflld" } } } }

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

ΑΓΟΡΑ ΤΟ ΠΙΣΤΟΠΟΙΗΤΙΚΟ ΥΠΟΓΡΑΦΗΣ ΚΩΔΙΚΟΥ EV SSL.COM ΣΑΣ

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

Αντιγράψτε καθένα από τα στοιχεία της εντολής push στο Github.

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

Αφού πιέσετε τον κώδικα, μεταβείτε στον λογαριασμό σας Github και αντιγράψτε τη σύνδεση URL του έργου σας.

Προχωρήστε στον λογαριασμό σας Jenkins και κάντε κλικ στο Δημιουργήστε μια δουλειά σύνδεσμο.

Επιλέξτε Πολυκλαδικός Αγωγός, ορίστε το όνομα για το έργο σας και κάντε κλικ στο OK κουμπί.

Κάτω από Πηγές κλάδου, Επιλέξτε Git και επικολλήστε τον σύνδεσμο URL του έργου Github.

Μετακινηθείτε προς τα κάτω στο Σάρωση σκανδαλών πολλαπλών διακλαδώσεων αγωγών. Επιλέξτε το πλαίσιο για Περιοδικά, εάν όχι διαφορετικά, εκτελείται. Μπορείτε να επιλέξετε 2 λεπτά.

Κάντε κλικ στο Αποθήκευση κουμπί.

Επιστρέψτε στον λογαριασμό σας στο Jenkins, κάντε κλικ στο έργο σας και επιβεβαιώστε εάν η διοχέτευση έχει ξεκινήσει

Κάντε κλικ στο έργο Jenkins και επιλέξτε Σάρωση σωλήνων πολλαπλών διακλαδώσεων τώρα στον πίνακα ελέγχου.

Πατήστε Έξοδος κονσόλας

Κάντε κύλιση προς τα κάτω και ελέγξτε εάν η υπογραφή κωδικού είναι επιτυχής

Ολόκληρο το σενάριο

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

Καθορίστε τον αγωγό

pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Εγκαταστήστε το Build Tools

εργαλεία { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }

Δημιουργήστε μια μεταβλητή περιβάλλοντος

περιβάλλον { USERNAME = διαπιστευτήρια('es-username') // όνομα χρήστη λογαριασμού SSL.com. PASSWORD = διαπιστευτήρια ('es-password') // Κωδικός πρόσβασης λογαριασμού SSL.com. CREDENTIAL_ID = διαπιστευτήρια ('es-credential-id') // Αναγνωριστικό διαπιστευτηρίου για υπογραφή πιστοποιητικού. TOTP_SECRET = διαπιστευτήρια('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Όνομα περιβάλλοντος. Για επίδειξη λογαριασμού μπορεί να είναι "TEST" διαφορετικά θα είναι "PROD" }

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

stages { // 1) Δημιουργία καταλόγου τεχνουργημάτων για υπογεγραμμένα και ανυπόγραφα αρχεία τεχνουργημάτων καταστήματος στάδιο ('Δημιουργία καταλόγου τεχνουργημάτων') { βήματα { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Pull Codesigner Docker Image From Github Registry stage ('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Δημιουργία έργου ή λύσης dotnet και όλα τα τις εξαρτήσεις του. // Αφού δημιουργηθεί το αρχείο dll ή exe, αντιγράψτε στο φάκελο "πακέτα" για υπογραφή ("Build Dotnet") { βήματα { sh "dotnet build dotnet/HelloWorld.csproj -c Release" sh "cp dotnet/bin/ Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 4) Αυτό είναι το βήμα όπου τα δημιουργημένα αρχεία DLL (artifact) θα υπογραφούν με το CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- τόμος ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONNAME{$ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:last sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } ανάρτηση { πάντα { archiveArtifacts artifacts: "artifacts:I trueelloflld" } } } }
Μπορείτε να ανατρέξετε στο SSL.com Το αποθετήριο Github που περιέχει τους πηγαίους κώδικες της εικόνας του docker και περιγράφει τον τρόπο χρήσης του: https://github.com/SSLcom/ci-images 

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

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

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

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

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

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

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

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

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