Publicerad: december 2024 | Uppdaterad: augusti 2026
Att signera XML-filer med XMLSec och PKCS#11 innebär att man använder kommandoradsverktyget xmlsectool med öppen källkod för att tillämpa en digital signatur på ett XML-dokument medan den privata nyckeln finns kvar i en hårdvarusäkerhetsmodul eller token. EC:s PKCS#11-omslag låter xmlsectool kommunicera med HSM, så att nyckeln aldrig lämnar certifierad hårdvara.
Den globala datavolymen fortsätter att öka tillräckligt snabbt för att göra manuell förtroendeverifiering opraktisk i stor skala: IDC:s Global DataSphere Forecast, 2026-2030 (publicerad juni 2026) förutspår att världens data kommer att överstiga 700 zettabyte (ZB) år 2030. För att förstå det bättre motsvarar en zettabyte en biljon gigabyte (GB). Merparten av denna data är ostrukturerad och behöver något som ger den mening. Det är här XML-filer kommer in i bilden.
eXtensible Markup Language eller XML är ett markupspråk som etablerar regler och organiserar all data. Det anger också hur data ska lagras och transporteras över internet. XML använder markupsymboler eller taggar, som moderna webbläsare och databehandlingsprogram använder för att bearbeta informationen.
XML-signering
XML-filer används i stort antal, vilket gör dem till en integrerad del av våra webbaserade applikationer och vår teknik. Men ska man lita på en XML-fil? Hur kan man utveckla förtroende för XML-filens äkthet? Du behöver ett digitalt bevis eller en signatur för att autentisera och verifiera dess källa.
XML-signering hjälper dig att bifoga dina digitala inloggningsuppgifter, vilket hjälper mottagaren att lita fullt ut på filens innehåll. För att förenkla processen tillhandahåller Encryption Consulting PKCS#11 Wrapper, ett programvarubibliotek som tillhandahåller ett Java-gränssnitt för att interagera med PKCS#11-kompatibla enheter som Hardware Security Modules (HSM) , smartkort eller andra nyckelvalv.
Tillsammans med PKCS#11 Wrapper kommer vi att använda XMLSec-verktyget, ett kommandoradsverktyg för att signera, verifiera, kryptera och dekryptera XML-dokument.
Ubuntu vs. macOS: Snabb jämförelse
Den här guiden täcker Ubuntu och macOS; en Windows-installation är för närvarande inte dokumenterad för det här verktyget. Så här skiljer sig de två konfigurationerna som stöds åt i korthet.
| Aspect | ubuntu | MacOS |
|---|---|---|
| Testad OS-version | ubuntu 24.02 | macOS 15.1 Sequoia |
| Wrapper-beroenden | liblog4cxx12, curl (benägen) | liblog4cxx, curl (Hemmabryggt) |
| Java-distribution | Amazon Corretto 17 via apt repo | Amazon Corretto 17 via .pkg installationsprogram |
| Shell-konfiguration för JAVA_HOME | ~/.bashrc | ~/.zshrc |
| XMLSec-verktygskälla | shibboleth.net (xmlsectool-3.0.0-bin.zip) | shibboleth.net (xmlsectool-3.0.0-bin.zip) |
Konfiguration av PKCS#11 Wrapper på Ubuntu
Förutsättningar
Innan vi tittar på processen för XML-signering med XMLSec Tool och vår PKCS11 Wrapper i Linux (Ubuntu) maskin, se till att följande är klart:
- Ubuntu-version: Ubuntu version 22.04 eller senare (testmiljön är Ubuntu 24.02)
- beroenden: Installera liblog4cxx12 och curl.
För att installera beroendena, kör följande kommandon
- sudo apt-get installera curl
- sudo apt-get install liblog4cxx12
Installera EC:s PKCS#11-omslag
Steg 1: Gå till avsnittet Signeringsverktyg i EC CodeSign Secures v3.02 och ladda ner PKCS#11 Wrapper för Ubuntu.

Steg 2: Generera sedan ett P12-autentiseringscertifikat från rullgardinsmenyn Systeminställningar > Användare > Generera autentiseringscertifikat.

Steg 3: Gå till ditt Ubuntu-klientsystem och redigera konfigurationsfilerna ( ec_PKCS#11client.ini och PKCS#11properties.cfg ) som laddats ner i PKCS#11 Wrapper.

Installera XMLSec-verktyget
Steg 1: Installera den senaste versionen av XMLSec Tool (xmlsectool-3.0.0-bin.zip) med hjälp av den här länken.

Steg 2: Du kan extrahera zip-filen till en valfri katalog.

Ladda ner och installera Java på din Ubuntu-maskin.
Steg 1: Ladda ner Amazon Corretto 17 Java (Du kan kontrollera andra Java-versioner som stöds med XMLSec Tool här. )
wget -O – https://apt.corretto.aws/corretto.key | sudo gpg –dearmor -o /usr/share/keyrings/corretto-keyring.gpg && \ echo “deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main” | sudo tee /etc/apt/sources.list.d/corretto.list
Steg 2: Installera Java-paketet
sudo apt-get update; sudo apt-get install -y java-17-amazon-corretto-jdk
Steg 3: Kontrollera om Java har installerats korrekt eller inte
java -version

Lägg till Java till miljövariabel
Steg 1: Ställ in Amazon Corretto 17 Java som aktiv version
uppdateringsalternativ –konfiguration java

Steg 2: Lägg till variabeln "JAVA_HOME" i filen ~/.bashrc
echo “exportera JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto” >> ~/.bashrc

Steg 3: Kontrollera ~/.bashrc-filen
svans -3 ~/.bashrc

Steg 4: Ladda om miljövariablerna
källa ~ / .bashrc

Steg 5: Kontrollera JAVA_HOME-variabelns värde
echo $JAVA_HOME

Signering
Steg 1: Ändra terminalens arbetskatalog till den mapp som innehåller din fil "ec_pkcs11client.ini".

Steg 2: Kör signeringskommandot från den här katalogen.
–signera –pkcs11Konfigurera –nyckelAlias –nyckellösenord INGET –ifil –utfil
Ett exempelkommando ges nedan:
../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias DemoCertificate –keyPassword INGA –inFile ../xmlSample.xml –outFile ../out-xmlSample.xml
Verifiering
Kör verifieringskommandot
–verifieraSignatur –pkcs11Konfiguration –nyckelAlias –nyckellösenord INGET –ifil
Ett exempelkommando ges nedan:
../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias gpg2 –keyPassword INGEN –inFile ../out-sample.xml
Konfiguration av PKCS#11 Wrapper på MacOS
Förutsättningar
Innan vi tittar på processen för XML-signering med XMLSec Tool och vår PKCS#11 Wrapper i MacOS-maskiner, se till att följande är klart:
- MacOS-version: MacOS version 13 (Ventura) eller senare (testmiljön är MacOS 15.1 Sequoia)
- beroenden: Installera liblog4cxx och curl.
För att installera beroendena, kör följande kommandon
- brygginstallationslog4cxx
- brygga installera curl
Installera EC:s PKCS#11-omslag
Steg 1: Gå till avsnittet Signeringsverktyg i EC CodeSign Secures v3.02 och ladda ner PKCS#11 Wrapper för Mac.

Steg 2: Generera sedan ett P12-autentiseringscertifikat från rullgardinsmenyn Systeminställningar > Användare > Generera autentiseringscertifikat.

Steg 3: Gå till ditt MacOS-klientsystem och redigera konfigurationsfilerna ( ec_PKCS#11client.ini och PKCS#11properties.cfg ) som laddats ner i PKCS#11 Wrapper.

Installera XMLSec-verktyget
Steg 1: Ladda ner den senaste versionen av XMLSec Tool (xmlsectool-3.0.0-bin.zip) med hjälp av den här länken.

Du behöver den här shell-filen för att utföra XML-signeringen

Ladda ner och installera Java på din MacOS-maskin.
Steg 1: Ladda ner Amazon Corretto 17 Java (Du kan kontrollera andra Java-versioner som stöds med XMLSec Tool här ).
Du kan använda den här länken för att ladda ner .pkg-filen för MacOS-miljön
Steg 2: Installera Java-paketet
Börja installationen med den nedladdade filen.

Steg 3: Kontrollera om Java har installerats korrekt eller inte
java -version

Lägg till Java till miljövariabel
Steg 1: Hämta den fullständiga installationssökvägen för Amazon Corretto 17 Java
/usr/libexec/java_home –verbose

Steg 2: Lägg till variabeln “JAVA_HOME” i filen ~/.zshrc
echo 'exportera JAVA_HOME="/Bibliotek/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Innehåll/Hem"' >> ~/.zshrc

Steg 3: Ladda om miljövariablerna
källa ~/.zshrc

Steg 4: Kontrollera JAVA_HOME-variabelns värde
echo $JAVA_HOME

Signering
Steg 1: Ändra terminalens arbetskatalog till den mapp som innehåller din fil "ec_pkcs11client.ini".

Steg 2: Kör signeringskommandot från den här katalogen.
–signera –pkcs11Konfigurera –nyckelAlias –nyckellösenord INGET –ifil –utfil
Ett exempelkommando ges nedan:
../xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias DemoCertificate –keyPassword INGA –inFile ../xmlSample.xml –outFile ../SignedSample.xml
Verifiering
Kör verifieringskommandot
–verifieraSignatur –pkcs11Konfiguration –nyckelAlias –nyckellösenord INGET –ifil
Ett exempelkommando ges nedan:
../xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias gpg2 –keyPassword INGA –inFile ../Signedsample.xml
Slutsats
Med ostrukturerad data på uppgång är XML-dokumentsignering ett måste. Den sömlösa integrationen av vår PKCS#11 Wrapper och XMLSec-verktyget erbjuder en flexibel och effektiv lösning för XML-dokumentsignering.
Med Encryption Consultings CodeSign Secure- lösning kan du bygga upp och öka ditt kundförtroende. Den erbjuder funktioner som klientsidig hashning, rollbaserad åtkomst och applikationshantering för att säkra dina data. Den låter dig integrera olika DevOps CI/CD- pipelines för handsfree, automatiserad kodsignering. Det rollbaserade, HSM-stödda skyddet är viktigare för varje år: GitGuardians rapport State of Secrets Sprawl från 2026 fann att 28.65 miljoner nya hårdkodade hemligheter exponerades på den offentliga GitHub enbart under 2025, en ökning med 34 % jämfört med föregående år, och mediantiden för ett team att åtgärda en läckt hemlighet är 94 dagar, enligt Verizons rapport om dataintrång från 2025, ett tillräckligt långt fönster för att det är värt det extra installationssteget att hålla signeringsnycklar helt borta från disken.
Vanliga frågor om partihandel med mat och dryck
Vad är XMLSec (xmlsectool), och vad gör det?
XMLSec (xmlsectool) är ett kommandoradsverktyg med öppen källkod för att signera, verifiera, kryptera och dekryptera XML-dokument. Det underhålls av Shibboleth-projektet och fungerar med EC:s PKCS#11-omslag för att delegera själva signeringsåtgärden till en hårdvarusäkerhetsmodul.
Varför signera en XML-fil med PKCS#11 istället för ett lokalt nyckellager?
Ett lokalt nyckellager lagrar den privata nyckeln på disk, där den är sårbar om filsystemet komprometteras. PKCS#11 låter xmlsectool delegera signering till en hårdvarusäkerhetsmodul eller token, så att nyckeln genereras, lagras och används helt i hårdvaran och aldrig exporteras.
Vilka plattformar stöder EC:s PKCS#11-omslag för XML-signering?
Den här guiden dokumenterar Ubuntu och macOS. En Windows-installation är för närvarande inte dokumenterad för XMLSec-signering med denna wrapper, till skillnad från EC:s OpenSSL- och Jarsigner PKCS#11-guider, som även täcker Windows.
Vilken Java-version kräver xmlsectool?
Den här guiden använder Amazon Corretto 17 på både Ubuntu och macOS. Andra Java-distributioner och -versioner stöds också; kolla Shibboleth-wikins Java-distributionssida för den aktuella kompatibilitetslistan innan du avviker från Corretto 17.
Vad är det exakta xmlsectool-kommandot för att signera en XML-fil?
Kärnkommandot är xmlsectool.sh --sign --pkcs11Config pkcs11properties.cfg --keyAlias <key alias> --keyPassword NONE --inFile <input.xml> --outFile <output.xml>, kör från mappen som innehåller din wrappers konfigurationsfil. Den är identisk på Ubuntu och macOS.
Hur verifierar jag en signerad XML-fil?
Körning xmlsectool.sh --verifySignature --pkcs11Config pkcs11properties.cfg --keyAlias <key alias> --keyPassword NONE --inFile <signed.xml>Detta kontrollerar signaturen mot filens innehåll med samma PKCS#11-konfiguration som användes för att signera den.
Finns en Windows-installation tillgänglig för XMLSec + PKCS#11-signering?
Inte i den här guiden. Om ditt arbetsflöde kräver Windows stöder EC:s PKCS#11-omslag Windows för andra verktyg, som OpenSSL och Jarsigner, men XMLSec-specifika Windows-steg dokumenteras för närvarande inte här.
Vilken CodeSign Secure-version levererar för närvarande detta PKCS#11-omslag?
CodeSign Secure v3.02, som också lade till inbyggd LMS- och ML-DSA-post-kvantsignering, GPG2-integration och Debian/RPM-paketsignering utöver sitt befintliga PKCS#11-baserade verktygsstöd.
Hur mycket data genererar världen egentligen, och varför spelar det roll för XML-signering?
IDC:s Global DataSphere Forecast, 2026-2030, publicerad i juni 2026, förutspår att världens data kommer att överstiga 700 zettabyte år 2030. I takt med att mer av denna data flyttas genom XML-baserade format och integrationer blir det opraktiskt att verifiera äkthet och integritet i stor skala utan automatiserad, hårdvarubaserad signering snarare än manuella förtroendekontroller.
- XML-signering
- Ubuntu vs. macOS: Snabb jämförelse
- Konfiguration av PKCS#11 Wrapper på Ubuntu
- Konfiguration av PKCS#11 Wrapper på MacOS
- Slutsats
- Vanliga frågor om partihandel med mat och dryck
- Vad är XMLSec (xmlsectool), och vad gör det?
- Varför signera en XML-fil med PKCS#11 istället för ett lokalt nyckellager?
- Vilka plattformar stöder EC:s PKCS#11-omslag för XML-signering?
- Vilken Java-version kräver xmlsectool?
- Vad är det exakta xmlsectool-kommandot för att signera en XML-fil?
- Hur verifierar jag en signerad XML-fil?
- Finns en Windows-installation tillgänglig för XMLSec + PKCS#11-signering?
- Vilken CodeSign Secure-version levererar för närvarande detta PKCS#11-omslag?
- Hur mycket data genererar världen egentligen, och varför spelar det roll för XML-signering?
