Integrasi Penandatanganan Kode Cloud dengan Jenkins CI

Ini adalah panduan tentang cara melakukan penandatanganan kode otomatis di Jenkins dengan menggunakan eSigner CodeSignTool.

CodeSignTool adalah utilitas baris perintah yang cocok untuk penandatanganan volume tinggi dan terintegrasi secara mulus dengan berbagai platform CI/CD. Ini merupakan bagian dari eSigner: layanan penandatanganan jarak jauh kami yang menawarkan pendekatan yang efisien, aman, dan ramah pengguna untuk penandatanganan kode perusahaan.

SSL.com EV Penandatanganan Kode sertifikat membantu melindungi kode Anda dari gangguan yang tidak sah dan kompromi dengan tingkat validasi tertinggi, dan tersedia sesedikit mungkin $ 249 per tahun.

BELI SERTIFIKAT PENANDATANGANAN KODE EV SSL.COM ANDA

Buat file Jenkins dan tentukan saluran pada editor kode Anda

pipeline { agen opsi apa pun { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Setel alat .NET pada editor kode Anda dengan mengonfigurasi Jenkins

klik Kelola Jenkins tab di dasbor Jenkins Anda.

Gulir ke bawah halaman dan klik Konfigurasi Alat Global.

Gulir ke bawah dan klik Instalasi .NET SDK.

Salin nilai untuk .NET SDK dan tempel di editor kode Anda.

alat { dotnetsdk "DOTNET_CORE_3.1.24" }

Buka plugins.jenkins.io dan instal plugin .NET SDK

Bawah Kelola Jenkins di Dasbor Anda, centang Kelola Plugin untuk mengonfirmasi apakah plugin .NET SDK telah diinstal.

Setelah mengonfirmasi bahwa plugin telah diinstal, kembali ke .NET SDK INSTALLATIONS dan pastikan versi yang benar dan detail rilis plugin .NET SDK telah disetel. Lanjutkan dengan mengklik Save .

Atur Variabel Lingkungan pada editor kode Anda

environment { NAMA PENGGUNA = kredensial('es-namapengguna') // nama pengguna akun SSL.com. PASSWORD = kredensial('es-password') // kata sandi akun SSL.com. CREDENTIAL_ID = kredensial('es-credential-id') // ID Kredensial untuk menandatangani sertifikat. TOTP_SECRET = kredensial('es-totp-secret') // Rahasia TOTP OAuth (https://www.ssl.com/how-to/automate-designer-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Nama Lingkungan. Untuk Akun Demo Bisa 'TEST' jika tidak 'PROD' }

Anda akan menemukan nilai untuk setiap variabel di dasbor Jenkins Anda di bawah Keamanan> Mengelola Kredensial.

 

Atur tahapan untuk membuat direktori artefak, menarik gambar buruh pelabuhan, membangun .NET, dan menandatangani kode artefak

 

        1) Buat Direktori Artefak untuk menyimpan file artefak yang ditandatangani dan tidak ditandatangani.
 stage('Buat direktori artefak') { langkah { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }
        2) Tarik Gambar Docker Codesigner Dari Github Registry.
stage('Docker Pull Image') { langkah { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Bangun proyek atau solusi dotnet dan semua dependensinya. Setelah file dll atau exe dibuat, salin ke folder 'paket' untuk ditandatangani.
stage('Build Dotnet') { langkah { 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) Ini adalah langkah di mana file DLL (artefak) yang dibuat akan ditandatangani dengan CodeSignTool.
stage('Masuk dan Simpan Dotnet Core DLL Artifact') { langkah { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${WORKSPACE}/artefak:/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: tanda terbaru -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } posting { selalu { archiveArtifacts artefak: "artefak/HelloWorld.dll", onlyIfSuccessful: true } } } } }

SSL.com EV Penandatanganan Kode sertifikat membantu melindungi kode Anda dari gangguan yang tidak sah dan kompromi dengan tingkat validasi tertinggi, dan tersedia sesedikit mungkin $ 249 per tahun.

BELI SERTIFIKAT PENANDATANGANAN KODE EV SSL.COM ANDA

Buat repo Github

Salin setiap komponen perintah push di Github.

Tulis perintah di terminal baru pada editor kode Anda untuk mendorong kode.

Setelah mendorong kode, buka akun Github Anda dan salin tautan URL proyek Anda.

Lanjutkan ke akun Jenkins Anda dan klik Buat pekerjaan link.

Pilih Pipa Multicabang, atur nama untuk proyek Anda, dan klik tombol OK .

Bawah Sumber Cabang, pilih pergi dan rekatkan tautan URL proyek Github Anda.

Gulir ke bawah Pindai Pemicu Pipa Multibranch. Centang kotak untuk Secara berkala jika tidak sebaliknya jalankan. Anda dapat memilih 2 menit.

klik Save .

Kembali ke akun Jenkins Anda, klik proyek Anda, dan konfirmasikan apakah pipeline telah dimulai

Klik pada proyek Jenkins Anda dan pilih Pindai Pipa Multibranch Sekarang di Dasbor.

Klik Output Konsol

Gulir ke bawah dan periksa apakah penandatanganan kode berhasil

Seluruh Skrip

Catatan: Pastikan untuk memperbaiki kesalahan ketik atau jeda baris yang salah dalam skrip agar proses penandatanganan dapat berjalan dengan lancar.

Tentukan pipa

pipeline { agen opsi apa pun { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Instal Alat Bangun

alat { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }

Buat variabel lingkungan

environment { NAMA PENGGUNA = kredensial('es-namapengguna') // nama pengguna akun SSL.com. PASSWORD = kredensial('es-password') // kata sandi akun SSL.com. CREDENTIAL_ID = kredensial('es-credential-id') // ID Kredensial untuk menandatangani sertifikat. TOTP_SECRET = kredensial('es-totp-secret') // Rahasia TOTP OAuth (https://www.ssl.com/how-to/automate-designer-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Nama Lingkungan. Untuk Akun Demo Bisa 'TEST' jika tidak 'PROD' }

Script untuk Tahapan Build dan Sign

tahapan { // 1) Buat Direktori Artefak untuk menyimpan file artefak yang ditandatangani dan tidak ditandatangani stage('Buat direktori artefak') { langkah { sh 'mkdir ${WORKSPACE}/artefak' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Tarik Codesigner Docker Image Dari Github Registry stage('Docker Pull Image') { langkah { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Bangun proyek atau solusi dotnet dan semuanya ketergantungannya. // Setelah file dll atau exe dibuat, salin ke folder 'packages' untuk tahap penandatanganan ('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) Ini adalah langkah di mana file DLL (artefak) yang dibuat akan ditandatangani dengan CodeSignTool. stage('Masuk dan Simpan Dotnet Core DLL Artifact') { langkah { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${WORKSPACE}/artefak:/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: tanda terbaru -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } posting { selalu { archiveArtifacts artefak: "artefak/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Anda bisa merujuk ke SSL.com Repositori Github yang berisi kode sumber gambar buruh pelabuhan dan menjelaskan cara menggunakannya: https://github.com/SSLcom/ci-images 

Contoh Jenkins Pipeline

Lihat contoh pipa Jenkins yang telah kami buat github.com/SSLcom/codesigner-jenkins-sample

Panduan Integrasi Penandatanganan Jarak Jauh Lainnya

Butuh Solusi Kustom? 

Dengan pengetahuan ahli kami dan staf pendukung bintang lima, kami siap dan bersedia bekerja sama dengan Anda dalam solusi khusus atau diskon penandatanganan volume tinggi tingkat perusahaan. Isi formulir di bawah ini dan kami akan menghubungi Anda.

Berlangganan Buletin SSL.com

Jangan lewatkan artikel baru dan pembaruan dari SSL.com

Tetap Terinformasi dan Aman

SSL.com adalah pemimpin global dalam keamanan siber, PKI dan sertifikat digital. Daftar untuk menerima berita industri terkini, tips, dan pengumuman produk dari SSL.com.

Kami sangat menantikan tanggapan Anda

Ikuti survei kami dan beri tahu kami pendapat Anda tentang pembelian terakhir Anda.