Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Signera Apple-applikationer med Codesign Secure och vår Apple CSP

codesign Säker

Beskrivning 

De program du använder på din Macintosh (Mac) är .app-program. Program som används i Mac App Store, eller bara på en Mac i allmänhet, måste signeras för att kunna användas med operativsystemet. Det kan ta ett tag innan dessa .app-filer signeras av iOS App Store eller med dina egna verktyg eller kodsigneringsplattform. Faktum är att många kodsigneringsplattformar inte har möjlighet att signera .app-filer på en Mac-maskin. Vi på Encryption Consulting har dock gjort det möjligt för dig att enkelt signera dessa .app-filer på din Mac. Med hjälp av CodeSign Secure och vår Apple Signing CSP kan du snabbt och effektivt konfigurera din miljö för att enkelt signera .app-filer.

Signera en Apple-applikation med CodeSign Secure, kortfattat: installera ECCssProvider CSP på din Mac, autentisera den till CodeSign Secure med ett P12-klientcertifikat och kör sedan codesign -f -s <certificate hash> <path to .app, .dmg, .pkg, .ipa, or .mpkg>Den privata nyckeln lämnar aldrig CodeSign Secures HSM; CSP:n begär bara en signatur från den.

Key Takeaways

  • Till skillnad från Windows levereras inte macOS med vanliga CA-rotkedjor som är förbetrodda. Om du signerar med ett OV/EV-certifikat måste du importera hela certifikatkedjan till Keychain Access själv, annars kommer samdesignen att misslyckas med att bygga en betrodd signatur.
  • Kommandot codesign identifierar vilket certifikat som ska användas med dess SHA-1-hash, inte med namn, så bekräfta alltid hashen via security export-smartcard innan du signerar snarare än att anta att certifikatordningen inte har ändrats.

Miljömatris

KomponentKrav
ProviderECCssProvider (CodeSign Secures Apple CSP), laddad ner från avsnittet Signeringsverktyg
AutentiseringP12-klientcertifikat genererat via CodeSign Secures Användare > Generera autentiseringscertifikat, importerat till systemnyckelring
CertifikatkedjaHela OV/EV-kedjan måste importeras till Keychain Access; macOS förbehåller inte dessa rötter på samma sätt som Windows gör.
SigneringsverktygApples inbyggda koddesign (del av Xcode Command Line Tools)
Stödda filtyper.app, .dmg, .pkg, .ipa, .mpkg

Apple-signering

Apple-applikationer är en nödvändig del av alla macOS, och om du utvecklar dessa applikationer för att lägga dem på iOS App Store måste du se till att dessa filer är korrekt signerade. Att konfigurera Apple Signing själv kan vara en komplicerad process, men med CodeSign Secures Apple Signing CSP är det enkelt att konfigurera förutsättningarna på din Mac-dator och starta Apple Signing. 

Konfiguration för Apple-signering

Att konfigurera din Mac för att köra vår Apple CSP är en mycket snabb och enkel process. En av de viktigaste förutsättningarna är att du ska kunna komma åt CodeSign Secure-webbsidan. Därifrån är det bara några få steg att faktiskt förbereda din maskin för signering. Låt oss börja med nedladdningarna från CodeSign Secure.

Förutsättningar: Se till att du har ett användarnamn och åtkomst till CodeSign Secure-webbsidan.

Från CodeSign Secure-webbsidan går du till avsnittet Signeringsverktyg och laddar ner EC Provider för Mac.

samdesigna signeringsverktyg

Packa upp filen och överför den uppackade filen till mappen Program. Kör ECCssProvider-applikationen härifrån.

ECCssProvider-ingångssida

Se till att du har angett din CodeSign Secure URL, ditt användarnamn och din kod i appen och välj sedan uppdatera.

ECCsProvider-informationssida

Sidan bör nu visa de olika certifikat du har åtkomst till för signering. Nu måste vi konfigurera P12-certifikatet för åtkomst till signering på servern. Gå först till CodeSign Secure Webpage och välj inställningsavsnittet. Härifrån väljer du "Användare". Slutligen, i rullgardinsmenyn till höger, välj "Generera autentiseringscertifikat".

samdesign av användarhantering

Ange certifikatnamn, användarnamn och utgångsdatum för P12-certifikatet och välj sedan alternativet "Generera". Ett p12-certifikat bör genereras och laddas ner till din dator. Spara lösenordet för certifikatet samt själva certifikatet.

samdesigna generera autentiseringscertifikat

Dubbelklicka på ditt nyligen nedladdade P12-certifikat och öppna det med programmet "Key Chain Access". Du bör då bli ombedd att ange administratörslösenordet och certifikatlösenordet, vilket kommer att placera certifikatet i din systemnyckelring.

certifikat för nyckelringsåtkomst

När du har lagt in autentiseringscertifikatet i din nyckelåtkomstkedja öppnar du själva nyckeln. Gå till Certifikat under System, så ska den finnas i rullgardinsmenyn för autentiseringscertifikatet. Högerklicka på den och välj hämta information. Därifrån väljer du åtkomstkontroll och tillåter åtkomst till certifikatet med hjälp av programmet ECCssProvider.app. Du kommer troligtvis att behöva starta om din dator för att se att behörigheten faktiskt ändras.

nyckelringsåtkomstnycklar
importerad privat nyckel

Se sedan till att du har den fullständiga certifieringssökvägen för det certifikat du ska signera i din nyckelringsåtkomst. Mac-enheter brukar inte börja med de kända certifieringskedjorna som Windows-maskiner gör, så om du använder ett OV/EV-certifikat för signering måste du ladda upp hela certifieringskedjan.

certifikat för nyckelringsåtkomst

Nu behöver vi köra följande kommando: /Applications/ECCssProvider.app/Contents/macOS/ECCssProvider -–batch -–tlsclient <Auth Cert Name> . Det här kommandot ställer in det autentiseringscertifikat som vi laddade upp som TLS-autentiseringscertifikat när vi anslöt till CodeSign Secure-servern.

kommandofönster

Vårt nästa kommando är security export-smartcard -i com.encryptionconsulting.ECCssProvider.CssToken:ECCSS . Det här kommandot hämtar alla certifikat som listas i ECCssProviders grafiska gränssnitt och information om dessa certifikat. Den viktiga informationen vi behöver är SHA1-hashen för certifikatet. Vi kommer att använda den hashen för att avgöra vilket certifikat vi signerar med. Certifikaten är i samma nummerordning som de visas i det grafiska gränssnittet.

kommandofönster

Slutligen kör vi vårt codesign-kommando: codesign -f -s <Hash för certifikatet för signering> <Program eller fil som ska signeras> . Flaggan -f är för att skriva över gamla signaturer på filer, och flaggan -s är för att ange vad vi signerar. Sedan anger vi hashen för certifikatet vi använder och sökvägen till filen som ska signeras.

Verifiering

Efter signering, kontrollera att signaturen tillämpades korrekt innan du distribuerar filen. Kör:

samdesign --verifiera --utförlig

En lyckad signatur rapporterar "giltig på disk" och "uppfyller sina angivna krav". För att även bekräfta att filen kommer att klara Gatekeepers bedömning på en annan maskin, kör:

spctl --assess --verbose

Detta rapporterar om Gatekeeper kommer att acceptera filen baserat på dess signatur och, för notariebekräftade appar, dess notariebiljett.

Vanliga fel

FelTroligtvis orsakFast
codesign rapporterar att identiteten inte är betroddHela OV/EV-certifikatkedjan importerades inte till nyckelringsåtkomstImportera alla mellanliggande certifikat och rotcertifikat för signeringscertifikatet, inte bara lövcertifikatet
ECCssProvider listas inte som en tillåten applikation för nyckelnÅtkomstkontrollen för det importerade P12-certifikatet uppdaterades inte för att tillåta ECCssProvider.appMarkera Visa info > Åtkomstkontroll på certifikatet i Nyckelringsåtkomst och starta sedan om datorn.
Fel certifikat används för signeringCertifikatordningen i det grafiska gränssnittet matchar inte den antagna SHA-1-hashenKör säkerhetsexport-smartcard igen omedelbart före signering för att bekräfta den aktuella hashen.

Användning och rengöring av CI/CD

För upprepad signering på en byggdator, skripta signera-sedan-verifiera-sekvensen tillsammans så att en byggprocess misslyckas omedelbart om verifieringen inte godkänns, snarare än att skicka en overifierad artefakt. Eftersom den privata nyckeln finns kvar i CodeSign Secures HSM finns det ingen signeringsnyckel att ta bort från byggagenten efteråt; den enda autentiseringsuppgiften som finns lokalt är P12-autentiseringscertifikatet som används för att ansluta till servern, vilket bör tas bort från Keychain Access om byggagenten delas eller avaktiveras.

Vanliga frågor om partihandel med mat och dryck

Varför kräver macOS att hela certifikatkedjan importeras när Windows inte gör det?

Windows levereras med många vanliga publika CA-rot- och mellanliggande certifikat som är förbetrodda i sitt certifikatarkiv. macOS Keychain förbetroddar inte samma uppsättning för kodsigneringsändamål, så en OV/EV-certifikatkedja som "bara fungerar" på Windows behöver sina mellanliggande importeras manuellt till Keychain Access på macOS.

Bekräftar codesign –verify att appen kommer att klara Gatekeeper?

Inte helt och hållet. codesign –verify bekräftar att signaturen i sig är giltig och omanipulerad. spctl –assess kontrollerar den bredare Gatekeeper-policyn, inklusive notariestatus, vilket är ett separat krav för appar som distribueras utanför Mac App Store.

Slutsats

Som ni kan se är installationen av denna Apple-signering mycket enkel, särskilt om ni har konfigurerat olika typer av signering med CodeSign Secure tidigare. Vår Apple CSP kan signera alla typer av Apple-filer, inklusive .app-, .dmg-, .pkg-, .ipa- och .mpkg-filer. Mer detaljerad dokumentation finns i dokumentationsavsnittet på CodeSign Secures webbsida. Om ni har några frågor, vill se en demo eller starta en POC, vänligen kontakta [email protected] eller www.encryptionconsulting.com.