Integrasi Penandatanganan Kode Cloud dengan GitLab CI

Ini adalah tutorial tentang cara melakukan penandatanganan kode otomatis di GitLab CI menggunakan eSigner CodeSignTool. 

CodeSignTool adalah utilitas baris perintah aman yang merupakan bagian dari eSigner: lingkungan penandatanganan kode cloud kami yang menguntungkan penerbit dan pengembang perangkat lunak dengan kapasitasnya untuk secara aman dan efisien melakukan penandatanganan kode perusahaan dengan cara yang tidak rumit.  Contoh alur kerja di bawah ini menunjukkan kode .NET DLL yang ditandatangani di GitLab CI dengan eSigner.

SSL.com EV Penandatanganan Kode sertifikat membantu melindungi kode Anda dari gangguan dan kompromi yang tidak sah dengan tingkat validasi tertinggi, dan tersedia hanya untuk $ 249 per tahun. Anda juga bisa gunakan sertifikat Penandatanganan Kode EV Anda dalam skala besar di cloud menggunakan eSigner.

PESAN SEKARANG

Variabel Lingkungan

  • USERNAME: Nama pengguna akun SSL.com. (Yg dibutuhkan)
  • PASSWORD: Kata sandi akun SSL.com (Diperlukan)
  • CREDENTIAL_ID: ID Kredensial untuk menandatangani sertifikat. Jika credential_id dihilangkan dan pengguna hanya memiliki satu sertifikat penandatanganan kode eSigner, CodeSignTool akan menjadi default untuk itu. Jika pengguna memiliki lebih dari satu sertifikat penandatanganan kode, parameter ini wajib. (Yg dibutuhkan)
  • TOTP_RAHASIA: Rahasia TOTP OAuth. Anda dapat mengakses informasi rinci di https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Wajib Isi)
  • LINGKUNGAN_NAME : Lingkungan 'TEST' atau 'PROD'. (Yg dibutuhkan)

Masukan

  • input_file_path: Jalur objek kode yang akan ditandatangani. (Yg dibutuhkan)
  • keluaran_dir_path: Direktori tempat objek kode bertanda akan ditulis. Jika output_path dihilangkan, file yang ditentukan dalam -file_path akan ditimpa dengan file yang ditandatangani.

Alur Kerja Contoh Penandatanganan Kode DLL .NET

Buat file yml

Kelompokkan pekerjaan ke dalam tahapan. Semua pekerjaan dalam satu tahap harus diselesaikan sebelum tahap berikutnya dijalankan.

tahapan: - membangun - menandatangani
 

Tentukan variabel lingkungan secara global. Properti tingkat pekerjaan menggantikan variabel global.

  • Variabel lingkungan digunakan untuk membuat sampel lebih mudah dibaca. Pada tangkapan layar di atas contoh alur kerja, PROJECT_NAME, PROJECT_VERSION, dan DOTNET_VERSION secara opsional dihilangkan. Penandatanganan masih dapat dilanjutkan dengan kelalaian ini.  
  • Di bawah ENVIRONMENT_NAME, tempatkan “TEST” untuk penandatanganan uji, dan “PROD” untuk penandatanganan langsung.
variabel: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Tentukan Membangun Tahap

Di bawah ini adalah definisi pekerjaan Anda untuk membangun artefak dll

bangun-dotnet:

 

  1. Tentukan pada tahap apa pekerjaan akan dijalankan.
  tahap: membangun

 

  1. Tempatkan nama lengkap dari gambar yang harus digunakan. Itu harus berisi bagian Registry jika diperlukan.
 gambar: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Tentukan skrip yang harus dijalankan *sebelum* pekerjaan. Dapat diatur secara global atau per pekerjaan.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artefak - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. Tentukan skrip Shell yang dieksekusi oleh Runner. Bangun artefak DLL
skrip: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Rilis - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll

 

  1. Tentukan daftar file dan direktori yang harus dilampirkan ke pekerjaan jika berhasil.
  • 'Thekedaluwarsa_in' properti memungkinkan file untuk dihapus setelah jangka waktu tertentu. Penggunaannya adalah opsional. Inilah sebabnya mengapa tangkapan layar contoh alur kerja di atas tidak menampilkan properti ini.
artefak: jalur: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expired_in: 5 menit
 

Tentukan Tahap Tanda

Di bawah ini adalah definisi pekerjaan Anda untuk menandatangani artefak dll

tanda-dotnet-artefak:

 

  1. Tentukan pada tahap apa pekerjaan akan dijalankan.
  tahap: tanda

 

  1. Tempatkan nama lengkap dari gambar yang harus digunakan. Itu harus berisi bagian Registry jika diperlukan.
 gambar: buruh pelabuhan: 19.03.0

 

  1. Tentukan layanan. Ini mirip dengan properti `image`, tetapi akan menautkan layanan yang ditentukan ke wadah `image`.
layanan: - buruh pelabuhan: 19.03.0-dind

 

  1. Tentukan variabel lingkungan untuk pekerjaan tertentu.
  • Pada tangkapan layar di atas, perintah tanda didefinisikan langsung dalam skrip tanda dan bukan di bawah variabel lingkungan. Bmetode lain dapat masuk dengan benar dengan TravisCI.
  variabel: COMMAND: "tanda"

 

  1. Tentukan skrip yang harus dijalankan *sebelum* pekerjaan. Dapat diatur secara global atau per pekerjaan.
  before_script: - mkdir -p ${CI_PROJECT_DIR}/artefak - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. Tempatkan skrip Shell yang dieksekusi oleh Runner. Masuk artefak .NET dll dengan CodeSignTool Docker Image
skrip: - docker pull ghcr.io/sslcom/codesigner: terbaru - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/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: terbaru ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. Tulis skrip yang dapat digunakan untuk menentukan daftar file dan direktori yang harus dilampirkan ke pekerjaan jika berhasil.
artefak: jalur: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expired_in: 1 hari

 

  1. Tentukan daftar nama pekerjaan dari tahap sebelumnya dari mana artefak harus dimuat.
dependensi: - build-dotnet

SSL.com EV Penandatanganan Kode sertifikat membantu melindungi kode Anda dari gangguan dan kompromi yang tidak sah dengan tingkat validasi tertinggi, dan tersedia hanya untuk $ 249 per tahun. Anda juga bisa gunakan sertifikat Penandatanganan Kode EV Anda dalam skala besar di cloud menggunakan eSigner.

PESAN SEKARANG

Mulai Tahap Bangun

Buat repositori

Lihat instruksi baris perintah di Gitlab seperti yang terlihat pada tangkapan layar di bawah ini

Dorong folder Anda

Lakukan ini dengan mengklik terminal pada menu, diikuti oleh Terminal Baru.

Ketik skrip push di Terminal Anda untuk mendorong proyek 

Klik tombol Bangun

Setelah memicu pipa, lanjutkan untuk membangun

Periksa apakah build berhasil  

Memulai Tahap Tanda

Lanjutkan untuk menandatangani artefak

Konfirmasikan jika penandatanganan kode berhasil

Anda sekarang dapat mengunduh file yang ditandatangani

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 Pipeline Gitlab CI

Lihat contoh pipeline Gitlab CI yang telah kami buat github.com/SSLcom/codesigner-gitlabci-sample

Panduan Integrasi Penandatanganan Jarak Jauh CI/CD 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.