Integrasi Penandatanganan Kode Cloud dengan CircleCI

Tutorial ini menunjukkan bagaimana eSigner terintegrasi dengan CircleCI untuk penandatanganan kode otomatis.

eSigner adalah lingkungan cloud SSL.com untuk penandatanganan kode. Kunci dan sertifikat penandatanganan dihosting dengan aman di cloud oleh SSL.com dan dapat diakses untuk penandatanganan dari perangkat apa pun yang terhubung ke internet, sehingga menjadikan eSigner salah satu platform terbaik untuk penandatanganan kode perusahaan. Toolkit eSigner mencakup CodeSignTool yang merupakan utilitas baris perintah untuk Penandatanganan kode EV sertifikat dan sangat ideal untuk membuat proses penandatanganan otomatis di berbagai platform Continuous Integration/Continuous Delivery (CI/CD) termasuk CircleCI. 

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.

Siapkan komponen alur kerja (.NET Kode DLL Penandatanganan)

  1. Buat folder .circleci

Di ruang kerja penandatanganan kode Anda, buat .folder lingkaran. Di bawahnya, buat file config.yml.

  1. Setel versi CI
Versi: 2.1
 
  1.  Panggil pekerjaan melalui alur kerja. Alur kerja mengatur serangkaian pekerjaan yang akan dijalankan. Pekerjaan untuk pipa ini dikonfigurasi di bawah ini

Lihat: https://circleci.com/docs/2.0/configuration-reference/#workflows

alur kerja:
 
  1. Tulis nama alur kerja.
  titik:
 
  1. Di dalam alur kerja, Anda menentukan pekerjaan yang ingin Anda jalankan.
 pekerjaan: - membangun - menandatangani: membutuhkan: - membangun
 

Tentukan Tahap Bangun

  1. Tentukan pekerjaan yang akan dipanggil nanti dalam alur kerja.

 (Lihat: https://circleci.com/docs/2.0/configuration-reference/#jobs)

pekerjaan: membangun:

 

  1. Buat variabel lingkungan
  • Variabel lingkungan digunakan untuk membuat sampel lebih mudah dibaca. Pada tangkapan layar di atas contoh alur kerja penandatanganan, PROJECT_NAME, PROJECT_VERSION, dan DOTNET_VERSION secara opsional dihilangkan. Penandatanganan masih dapat dilanjutkan bahkan dengan kelalaian ini.  
  lingkungan: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 RUANG KERJA: /home/circleci/project

 

  1.  Tentukan eksekutor Docker: (https://circleci.com/docs/2.0/executor-types/)

    # Anda dapat menentukan gambar dari Dockerhub atau menggunakan salah satu Gambar Praktis kami dari Pusat Pengembang CircleCI.

 buruh pelabuhan: - gambar: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Tempatkan direktori kerja untuk pekerjaan itu
  direktori_kerja: /home/circleci/project

 

  1. Tambahkan langkah ke pekerjaan

    Lihat: https://circleci.com/docs/2.0/configuration-reference/#steps

  Langkah:

 

  1.  Periksa kode sumber sehingga alur kerja dapat mengaksesnya.
    - Periksa

 

  1. Buat Direktori Artefak untuk menyimpan file artefak yang ditandatangani dan tidak ditandatangani
    - jalankan: nama: Buat Direktori Artefak perintah: | mkdir -p ${RUANG KERJA}/artefak mkdir -p ${RUANG KERJA}/paket

 

  1.  Bangun proyek atau solusi dotnet dan semua dependensinya.
      - jalankan: nama: Bangun Proyek Dotnet Perintah: dotnet bangun dotnet/${PROJECT_NAME}.csproj -c Rilis

 

  1. Salin artefak ke direktori artefak
  • Dalam alur kerja contoh penandatanganan tertulis ini, beberapa jenis proyek dibuat. Inilah sebabnya mengapa file dari berbagai jenis proyek disimpan dengan membuat subfolder. Subfolder bernama 'dotnet' dibuat untuk proyek Dotnet. Pada demo screenshot di atas, tidak perlu membuat subfolder bernama 'dotnet' jadi ini tidak termasuk dalam skrip.
  - jalankan: nama: Salin perintah Artefak: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Pertahankan artefak ke direktori artefak untuk ditandatangani
  - persistent_to_workspace: root: . jalur: - paket/*
 

Tentukan Tahap Penandatanganan

  1. Tentukan pekerjaan penandatanganan
 tanda:

 

  1. Buat variabel lingkungan
  • 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 CircleCI.
  • Variabel lingkungan digunakan untuk membuat sampel lebih mudah dibaca. Pada tangkapan layar di atas contoh alur kerja, beberapa variabel secara opsional tidak disertakan. Penandatanganan masih dapat dilanjutkan bahkan dengan kelalaian ini.  
    lingkungan: ENVIRONMENT_NAME: PERINTAH PROD: tanda KERJA: /home/circleci/proyek

 

  1.     Tempatkan direktori kerja untuk pekerjaan di Circle-CI
 direktori_kerja: /home/circleci/project

 

  1. Nama artefak untuk ditandatangani
  • Nilai 'artifact-name' adalah opsi untuk beberapa proyek Parameter 'artefak-name' ditambahkan sehingga bagian penandatanganan yang sama dapat digunakan untuk semua jenis proyek. Karena contoh di tangkapan layar didasarkan pada satu proyek, tidak perlu menyertakannya.
    parameter: nama-artefak: tipe: string default: ''

 

  1. Tentukan pelaksana buruh pelabuhan:

 Untuk referensi tambahan, lihat: https://circleci.com/docs/2.0/executor-types/

       Anda dapat menentukan gambar dari Dockerhub atau menggunakan salah satu Gambar Praktis kami dari Pusat Pengembang CircleCI.

       Pastikan untuk memperbarui tag gambar Docker di bawah ini ke versi openjdk aplikasi Anda.

       Daftar Gambar Nyaman CircleCI Docker tersedia di sini: https://circleci.com/developer/images/image/cimg/openjdk

   buruh pelabuhan: - gambar: cimg/openjdk:17.0.3

 

  1. Tambahkan langkah ke pekerjaan

      Untuk referensi tambahan, lihat: https://circleci.com/docs/2.0/configuration-reference/#steps

    Langkah:

 

  1. Buat Direktori Artefak untuk menyimpan file artefak yang ditandatangani dan tidak ditandatangani
  - jalankan: nama: Buat Direktori Artefak perintah: | mkdir -p ${RUANG KERJA}/artefak mkdir -p ${RUANG KERJA}/paket

 

  1. Lampirkan ke Workspace untuk mengakses file artefak
   - attach_workspace: di: /home/circleci/project

 

  1. Aktifkan Docker untuk CodeSigner di Circle-CI
 - setup_remote_docker: nama: Atur versi Docker Jarak Jauh: 19.03.13 docker_layer_caching: true

 

  1. Tarik Gambar Codesigner Docker Dari Github Registry
        - jalankan: nama: perintah Docker Pull Image: | docker pull ghcr.io/sslcom/codesigner:terbaru docker pull alpine:3.4

 

  1. Tulis langkah di mana artefak akan ditandatangani dengan CodeSignTool.
 - jalankan: nama: Tandatangani File Artefak perintah: | docker create -v /codesign/packages --nama codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --nama codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameter.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- keluar -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:latest ${COMMAND} -input_file_path=/codesign/packages/<< parameter.artifact-name >> -output_dir_path=/codesign/artefak buruh pelabuhan cp codesign-out:/codesign/artifacts/<< parameter.artifact-name >> ${ WORKSPACE}/artefak/<< parameter.nama-artefak >>

 

  1. Tulis langkah agar artefak Anda diunggah dari alur kerja Anda memungkinkan Anda untuk berbagi data antara pekerjaan dan menyimpan data setelah alur kerja selesai
    - store_artifacts: name: Upload Signed Files path: /home/circleci/project/artifacts/<< parameter.artifact-name >> tujuan: << parameter.artifact-name >>
 

Buat repositori baru di baris perintah

Salin komponen perintah push dari lokasi proyek Anda di akun GitHub Anda

Sertakan semua komponen perintah push pada editor Anda

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

Siapkan proyek di CircleCI menggunakan repositori yang terintegrasi ke GitHub

Tentukan semua Variabel Lingkungan

Saat proyek sedang berjalan, Klik tombol Pengaturan Proyek diikuti oleh Variabel Lingkungan untuk menentukan variabel

Tempatkan nilai untuk setiap variabel

klik Tambahkan Variabel Lingkungan tombol untuk menambahkan nama dan nilai semua variabel yang diperlukan untuk proyek.

Tunggu proyek dibangun

Klik Bertahan ke ruang kerja

Tunggu sebentar hingga arsip ruang kerja berhasil diunggah.

Klik tombol tanda

Tunggu hingga Docker Jarak Jauh diatur

Mungkin butuh lebih dari satu menit, tergantung pada ukuran file

Tunggu artefak ditandatangani

Klik Artefak tab

Jika Anda klik Artefak, Anda akan dapat melihat file yang telah berhasil Anda tandatangani kode. Anda juga akan diberi tahu oleh CircleCI tentang penandatanganan kode yang berhasil.

Anda dapat merujuk ke repositori Github SSL.com yang berisi kode sumber gambar buruh pelabuhan dan menjelaskan cara menggunakannya: https://github.com/SSLcom/ci-images

Contoh Pipa CircleCI

Lihat contoh pipeline CircleCI yang telah kami buat github.com/SSLcom/codesigner-circleci-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.