SSL Sertifikası

Azure DevOps Kod İmzalama

Azure DevOps'ta imzalama adımını nerede çalıştıracağınızı, self-hosted havuz, onaylı ortam ve örnek YAML ile adım adım görün.

Azure DevOps boru hatlarında imzalama adımı, derleme çıktısının ajan üzerinde mi yoksa ayrı bir imzalama servisinde mi imzalanacağı kararına dayanır. Microsoft-hosted ajanlar her çalıştırmada temiz bir sanal makine olduğu için donanım token'ı takılamaz; bu nedenle hardware korumalı bir kod imzalama anahtarı için genellikle self-hosted ajan veya bulut HSM tabanlı imzalama kullanılır.

Mimari seçenekleri

  1. Self-hosted Windows ajan: Token veya akıllı kart fiziksel olarak o makineye bağlıdır, ajan havuzu (agent pool) yalnızca imzalama işleri için ayrılır.
  2. Bulut HSM ile imzalama: Anahtar bulutta kalır, ajan imzalama isteğini gönderir. Bulut kod imzalama USB token ve kargo gerektirmez.
  3. Aşamalı (stage) ayrımı: Derleme ve test herkese açık havuzda, imzalama yalnızca onaylı bir ortamda çalışır.

Örnek YAML

trigger:
  tags:
    include: ['v*']
stages:
- stage: Build
  pool: { vmImage: windows-latest }
  jobs:
  - job: b
    steps:
    - script: dotnet publish -c Release -o $(Build.ArtifactStagingDirectory)
    - publish: $(Build.ArtifactStagingDirectory)
      artifact: drop
- stage: Sign
  dependsOn: Build
  pool: { name: SigningPool }
  jobs:
  - deployment: sign
    environment: code-signing
    strategy:
      runOnce:
        deploy:
          steps:
          - script: signtool sign /sha1 $(CertThumbprint) /fd SHA256 /tr http://time.certum.pl /td SHA256 $(Pipeline.Workspace)\drop\app.exe
          - script: signtool verify /pa /v $(Pipeline.Workspace)\drop\app.exe

CertThumbprint değişkenini bir variable group içinde veya Azure Key Vault bağlantılı grupta tutabilirsiniz; parmak izi gizli değildir ama yetkisiz değişikliği önlemek için grubu kilitleyin.

İpuçları

  • environment: code-signing üzerine onay ve kontrol (approvals and checks) ekleyin.
  • Sertifika yenilendiğinde parmak izi değişir; değişkeni güncellemeyi yenileme kontrol listenize yazın.
  • Her sürümde zaman damgası kullanın; sertifika süresi dolsa da imza geçerli kalır.
  • Sertifika türü seçimi için kod imzalama sayfasına göz atın.

Anahtarı ajan havuzunun içinde değil, kontrollü bir imzalama aşamasında tutmak hem güvenliği hem denetlenebilirliği artırır.

Sık karşılaşılan sorunlar

İmzalama ajanı çevrimdışı kaldığında boru hattı kuyrukta bekler; bu nedenle ajan havuzuna yedek bir ajan eklemek iyi olur. Artifact'ı derleme aşamasından imzalama aşamasına aktarırken dosyanın değişmediğinden emin olmak için SHA-256 karmasını iki aşamada da kaydedin. Hattın sonunda imzalı çıktıyı yayınlamadan önce signtool verify adımı başarısız olursa yayının durmasını sağlayın.

  • Hizmet bağlantısı ve değişken gruplarına erişimi en az yetkiyle verin.
  • Onay adımını yalnızca ana dal ve etiketlerle sınırlayın.

Bu makale faydalı oldu mu?

Bu konuyla ilgili SSL sertifikaları

Makalede geçen sertifika türlerine uygun ürünler.

Makale Ara

Kod İmzalama Sertifikaları

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç