Bu, otomatik kod imzalama gerçekleştirmek için Azure DevOps'un eSigner CodeSignTool ile nasıl tümleştirilebileceğine ilişkin bir kılavuzdur.
CodeSignTool, bulut kod imzalama işlemleri için uygun olan ve çeşitli CI/CD platformlarıyla sorunsuz bir şekilde bütünleşen bir komut satırı yardımcı programıdır. eSigner'ın bir parçasını oluşturur: kod imzalamaya verimli, güvenli ve kullanıcı dostu bir yaklaşım sunan uzaktan imzalama hizmetimiz.
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.
Visualstudio.com'da bir proje oluşturun
Kod düzenleyicinizde yeni bir .yml dosyası oluşturun
Entegrasyon tetikleyicilerini ve ortam değişkenlerini ayarlayın
Sürekli entegrasyon tetikleyicileri
tetik:
- Yok
Genel olarak ortam değişkenlerini tanımlar. İş seviyesi özelliği, genel değişkenleri geçersiz kılar
değişkenleri:
buildConfiguration: 'Yayın'
İşleri aşamalar halinde gruplandırın
Yapım aşaması için adımları yazın. Bir aşamadaki tüm işler, bir sonraki aşama yürütülmeden önce tamamlanmalıdır.
aşamaları:
– aşama: inşa
# İş akışı çalıştığında, günlüğe kaydedilen ad budur
displayName: Derleme
Meslekler:
- Görev:
havuz:
Windows VM'lerinde işi çalıştır
vmImage: 'en son pencereler'
adım:
Dotnet 6.0.x'i yükleyin
– görev: UseDotNet@2
displayName: '.NET Core SDK'yı yükleyin'
girişler:
sürüm: '6.0.x'
performMultiLevelLookup: doğru
includePreviewVersions: doğru
Dotnet projesini geri yükle
– görev: DotNetCoreCLI@2
displayName: Geri Yükle
girişler:
komut: 'geri yükle'
Sürüm yapılandırmasıyla dotnet projesi oluşturun
– görev: DotNetCoreCLI@2
displayName: Derleme
girişler:
komut: inşa
projeler: HelloWorld.csproj
argümanlar: '–configuration $(buildConfiguration)'
İmzalı yapılar için dizinler oluşturun
– powershell: Yeni Öğe -ItemType Dizini -Yol ./artifacts
displayName: 'Yapılar için oluşturulan dizinler'
İmzalı paketler için dizinler oluşturun
– powershell: New-Item -ItemType Directory -Path ./packages
displayName: 'Paketler için oluşturulan dizinler'
Yapıtı imza yolu olacak şekilde kopyalayın
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: "Yerleşik yapıları paketler dizinine kopyalayın"
İmzalama işini kullanmak için yapıyı kaydedin
– görev: PublishBuildArtifacts@1
displayName: 'İndirmek için imzalanacak yapıyı kaydedin'
girişler:
pathtoPublish: ./packages/HelloWorld.dll
yapıtAdı: HelloWorld.dll
Sign aşaması için adımları yazın
– aşama: İşaret
# İş akışı çalıştığında, günlüğe kaydedilen ad budur
görünenAdı: İmzala
Meslekler:
- Görev:
havuz:
Ubuntu VM'lerinde işi çalıştır
vmImage: “Ubuntu-en son”
adım:
İmzalı yapılar için dizinler oluşturun
– komut dosyası: mkdir -p ./artifacts && mkdir -p ./packages
displayName: "Yapılar ve paketler için oluşturulan dizinler"
İmzalanacak eseri indirin
– görev: DownloadPipelineArtifact@2
girişler:
yapı: HelloWorld.dll
indirme Yolu: ./packages
Docker 17.09.0-ce'yi yükleyin
– görev: DockerInstaller@0
displayName: Docker Yükleyici
girişler:
dockerSürüm: 17.09.0-ce
yayın Türü: kararlı
Docker Çekme CodeSigner Docker Görüntüsü
– komut dosyası: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pull CodeSigner Docker Image'
CodeSigner liman işçisi görüntüsüyle yapıyı imzalayın
– komut dosyası: docker çalıştırması -i –rm –dns 8.8.8.8 –ağ ana bilgisayarı –hacim $PWD/paketler:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e KULLANICI ADI=$(KULLANICI ADI) -e ŞİFRE=$(ŞİFRE) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:latest işareti -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/output
displayName: 'CodeSigner liman işçisi görüntüsüyle yapıyı imzala'
İndirmek için imzalı yapıyı kaydet
– görev: PublishBuildArtifacts@1
displayName: 'İndirmek için imzalı yapıyı kaydet'
girişler:
pathtoPublish: ./artifacts/HelloWorld.dll
yapıtAdı: HelloWorld.dll
Yeni bir .gitignore dosyası oluşturun
Yazın:
çöp kutusu
obj
.vs kodu
Mesaj çubuğuna Created pipe.yml yazın ve Işlemek düğmesine tıklayın
Tıklamak için devam edin Değişiklikleri Senkronize Et düğmesine tıklayın
Visualstudio.com'a gidin ve tıklayın Dinlenme gösterge panelinde
yml dosyasını görmek için sayfayı yenileyin
Tıkla Boru Hatları gösterge panelinde
Ardından, tıklayın İşlem Hattı Oluştur
Azure Repos Git'e tıklayın
YAML dosyanızı seçin
Tıkla Değişkenler düğmesinin ardından Yeni değişken
Her ortam değişkeni için değeri yerleştirin ve OK düğmesine tıklayın
Her bir değişkeni eklemeye devam etmek için + işaretini tıklayın
Tüm değişkenleri yerleştirdikten sonra işlem hattınızı oluşturmaya devam edin
İşlem hattınızı çalıştırın
Tıkla Boru Hatları gösterge tablosunda. İşlem hattınızdaki üç noktayı (daha fazla seçenek) tıklayın. Tıklamak İşlem hattını çalıştır. Sonunda, tıklayın koşmak düğmesine basın.
Oluşturma aşamasını başlatmak için Oluştur'a tıklayın
Oluşturma aşamasındaki her işin başarılı olup olmadığını kontrol edin
yanındaki açılır oku tıklayın İş her yapı işinin durumunu görmek için
Tıklayarak İmza aşamasını başlatın. İş
İmzalama sürecindeki her adımın başarılı olup olmadığını kontrol edin
Hem oluşturma hem de imzalama aşamalarının başarılı olup olmadığını iki kez kontrol edin
Örnek Azure DevOps İşlem Hattı
Üzerinde oluşturduğumuz örnek Azure DevOps ardışık düzenine göz atın github.com/SSLcom/codesigner-azuredevops-sampleDiğer Uzaktan İmzalama Entegrasyon Kılavuzları
- CircleCI ile Bulut Kod İmzalama Entegrasyonu
- GitHub Eylemleri ile Bulut Kod İmzalama Entegrasyonu
- GitLab CI ile Bulut Kod İmzalama Entegrasyonu
- Travis CI ile Bulut Kod İmzalama Entegrasyonu
- Jenkins CI ile Bulut Kod İmzalama Entegrasyonu
- BitBucket ile Bulut Kod İmzalama Entegrasyonu
- CI/CD Hizmetleri ile Bulut Kod İmzalama Otomasyonu
Ö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.