GitLab CI ile Bulut Kod İmzalama Entegrasyonu

Bu, eSigner CodeSignTool kullanarak GitLab CI'de otomatik kod imzalamanın nasıl yapılacağına ilişkin bir eğitimdir. 

CodeSignTool, eSigner'ın bir parçasını oluşturan güvenli bir komut satırı yardımcı programıdır: kurumsal kod imzalamayı karmaşık olmayan bir şekilde güvenli ve verimli bir şekilde yürütme kapasitesiyle yazılım yayıncılarına ve geliştiricilerine fayda sağlayan bulut kod imzalama ortamımız.  Aşağıdaki örnek iş akışı, eSigner ile GitLab CI'de imzalanan bir .NET DLL kodunu gösterir.

SSL.com EV Kod İmzalama sertifikalar, kodunuzu yetkisiz kurcalamaya karşı korumaya yardımcı olur ve en yüksek düzeyde doğrulama ile taviz verir ve en az düzeyde kullanılabilir. Yılda $ 249. Ayrıca şunları da yapabilirsiniz EV Kod İmzalama sertifikanızı geniş ölçekte kullanın eSigner kullanarak bulutta.

ŞİMDİ SİPARİŞ VER

Ortam Değişkenleri

  • KULLANICI ADI: SSL.com hesabı kullanıcı adı. (Gerekli)
  • ŞİFRE: SSL.com hesap şifresi (Gerekli)
  • KİMLİK_KİMLİĞİ: İmza sertifikası için kimlik bilgisi. credential_id atlanırsa ve kullanıcının yalnızca bir eSigner kod imzalama sertifikası varsa, CodeSignTool varsayılan olarak bunu ayarlar. Kullanıcının birden fazla kod imzalama sertifikası varsa bu parametre zorunludur. (Gerekli)
  • TOTP_SECRET: OAuth TOTP Gizli. adresinden detaylı bilgilere ulaşabilirsiniz. https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Gereklidir)
  • ENVIRONMENT_NAME : 'TEST' veya 'PROD' Ortamı. (Gerekli)

Girdiler

  • girdi_dosya_yolu: İmzalanacak kod nesnesinin yolu. (Gerekli)
  • çıktı_dir_yolu: İmzalı kod nesnesinin/nesnelerinin yazılacağı dizin. output_path atlanırsa, -file_path içinde belirtilen dosyanın üzerine imzalı dosya yazılır.

.NET Kodu DLL İmzalama Örnek İş Akışı

Bir yml dosyası oluşturun

İşleri aşamalar halinde gruplandırın. Bir aşamadaki tüm işler, bir sonraki aşama yürütülmeden önce tamamlanmalıdır.

aşamalar: - inşa - imzala
 

Ortam değişkenlerini global olarak tanımlayın. İş düzeyi özelliği, genel değişkenleri geçersiz kılar.

  • Örnekleri daha okunaklı hale getirmek için ortam değişkenleri kullanılır. Örnek iş akışının yukarıdaki ekran görüntüsünde PROJECT_NAME, PROJECT_VERSION ve DOTNET_VERSION isteğe bağlı olarak çıkarılmıştır. İmzalama bu eksikliklerle devam edebilir.  
  • ENVIRONMENT_NAME altında, test imzalama için "TEST" ve canlı imzalama için "PROD" yerleştirin.
değişkenler: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Tanımlamak Yapı Aşaması

Aşağıda, dll eseri oluşturmak için işinizin tanımı verilmiştir.

yapı-dotnet:

 

  1. İşin hangi aşamada çalışacağını tanımlayın.
  aşama: inşa

 

  1. Kullanılması gereken resmin tam adını yerleştirin. Gerekirse Kayıt bölümünü içermelidir.
 resim: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. İşten *önce* çalışması gereken komut dosyalarını tanımlayın. Global olarak veya iş başına ayarlanabilir.
Before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. Runner tarafından yürütülen Shell komut dosyalarını tanımlayın. DLL yapıtını oluştur
komut dosyası: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Sürümü - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll

 

  1. Başarılı olursa işe eklenmesi gereken dosya ve dizinlerin bir listesini belirtin.
  • 'sona erme_in' özelliği, dosyanın belirli bir süre sonra silinmesine izin verir. Kullanımı isteğe bağlıdır. Bu nedenle, yukarıdaki örnek iş akışının ekran görüntüsü bu özelliği göstermiyor.
yapıtlar: yollar: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll'nin son kullanma tarihi: 5 dakika
 

İşaret Aşamasını Tanımlayın

Aşağıda, dll yapıtını imzalamak için işinizin tanımı yer almaktadır.

sign-dotnet-yapıları:

 

  1. İşin hangi aşamada çalışacağını tanımlayın.
  aşama: işaret

 

  1. Kullanılması gereken resmin tam adını yerleştirin. Gerekirse Kayıt bölümünü içermelidir.
 resim: liman işçisi:19.03.0

 

  1. Hizmetleri tanımlayın. Bu, 'image' özelliğine benzer, ancak belirtilen hizmetleri 'image' kapsayıcısına bağlayacaktır.
hizmetler: - liman işçisi:19.03.0-dind

 

  1. Belirli işler için ortam değişkenlerini tanımlayın.
  • Yukarıdaki ekran görüntüsünde, işaret komutu, ortam değişkenleri altında değil, doğrudan işaret komut dosyasında tanımlanmıştır. Bdiğer yöntemler TravisCI ile doğru şekilde imzalayabilir.
  değişkenler: KOMUT: "işaret"

 

  1. İşten *önce* çalışması gereken komut dosyalarını tanımlayın. Global olarak veya iş başına ayarlanabilir.
  Before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. Runner tarafından yürütülen Shell komut dosyalarını yerleştirin. CodeSignTool Docker Image ile .NET dll yapıtını imzalayın
betik: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --ağ ana bilgisayarı --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_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. Başarılı olursa işe eklenmesi gereken dosya ve dizinlerin listesini belirtmek için kullanılabilecek komut dosyasını yazın.
eserler: yollar: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll'nin geçerlilik süresi: 1 gün

 

  1. Yapıtların yüklenmesi gereken önceki aşamalardan iş adlarının bir listesini belirtin.
bağımlılıklar: - build-dotnet

SSL.com EV Kod İmzalama sertifikalar, kodunuzu yetkisiz kurcalamaya karşı korumaya yardımcı olur ve en yüksek düzeyde doğrulama ile taviz verir ve en az düzeyde kullanılabilir. Yılda $ 249. Ayrıca şunları da yapabilirsiniz EV Kod İmzalama sertifikanızı geniş ölçekte kullanın eSigner kullanarak bulutta.

ŞİMDİ SİPARİŞ VER

Yapı Aşamasını Başlatın

Depo oluştur

Aşağıdaki ekran görüntüsünde görüldüğü gibi Gitlab'daki Komut satırı talimatlarına bakın.

klasörünüzü itin

Bunu tıklayarak yapın terminal menüde, ardından Yeni Terminal.

Projeyi göndermek için Push komut dosyasını Terminal'inize yazın 

Oluştur düğmesini tıklayın

Boru hattını tetikledikten sonra, inşa etmeye devam edin

Yapının başarılı olup olmadığını kontrol edin  

İşaret Aşamasını Başlatın

Eseri imzalamaya devam edin

Kod imzalamanın başarılı olup olmadığını onaylayın

Şimdi imzalı dosyayı indirebilirsiniz

Referans edebilirsiniz SSL.com Docker görüntüsünün kaynak kodlarını içeren ve nasıl kullanılacağını açıklayan Github deposu: https://github.com/SSLcom/ci-images 

Örnek Gitlab CI Ardışık Düzeni

Üzerinde oluşturduğumuz örnek Gitlab CI işlem hattına göz atın github.com/SSLcom/codesigner-gitlabci-sample

Diğer CI/CD Uzaktan İmzalama Entegrasyon Kılavuzları

Özel Çözümlere mi ihtiyacınız var? 

Uzman bilgi birikimimiz ve beş yıldızlı destek ekibimizle, özel çözümler veya kurumsal düzeyde yüksek hacimli imza indirimleri konusunda sizinle birlikte çalışmaya hazır ve istekliyiz. Aşağıdaki formu doldurun, sizinle iletişime geçelim.

SSL.com'un Bültenine Abone Olun

SSL.com'dan yeni makaleleri ve güncellemeleri kaçırmayın

Haberdar Olun ve Güvende Kalın

SSL.com Siber güvenlik alanında küresel bir lider olan PKI ve dijital sertifikalar. En son sektör haberlerini, ipuçlarını ve ürün duyurularını almak için kaydolun SSL.com.

Geri bildiriminizi almak isteriz

Anketimize katılın ve son satın alma işleminizle ilgili düşüncelerinizi bize bildirin.