- Vue d'ensemble (Overview)
- Interface de ligne de commande UiPath
- À propos de la CLI UiPath
- Téléchargement de la CLI UiPath
- Matrice de compatibilité
- Exécution de la CLI UiPath
- Gestion des flux NuGet
- Assistance de Test Manager
- Compression de projets dans un package
- Signature des paquets du projet
- Analyser un projet
- Déploiement d'un package sur Orchestrator
- Exécuter une tâche dans Orchestrator
- Tester un package ou exécuter un ensemble de test
- Tester plusieurs packages
- Déploiement des ressources sur Orchestrator
- Suppression de ressources d'Orchestrator
- Exécution de tâches à l'aide de la configuration JSON
- Restauration des dépendances de l'automatisation
- Vue d'ensemble (Overview)
- Restauration et analyse des solutions
- Compression d’une solution
- Signature des packages de solutions
- Charger et supprimer des packages de solutions
- Téléchargement des packages et des configurations de solutions
- Déployer et activer des solutions
- Désinstallation des déploiements
- Authentification et étendues
- Résolution des problèmes d'interface en ligne de commande UiPath
- Extension Azure DevOps
- À propos de l’extension Azure DevOps
- Configuration de la connexion au service Azure DevOps
- Ajouter des tâches UiPath à un pipeline Azure DevOps
- Plate-forme d'installation UiPath
- Pack de solutions UiPath
- Charger le package de solution UiPath
- Déploiement de la solution UiPath
- Activation de la solution UiPath
- Supprimer le package de solution UiPath
- Configuration du téléchargement de la solution UiPath
- Package de téléchargement de la solution UiPath
- Déploiement de la désinstallation de la solution UiPath
- Résolution des problèmes rencontrés avec l’extension Azure DevOps
- Plugin Jenkins
- À propos du plug-in Jenkins
- Installation du plugin Jenkins
- Configuration de la connexion au service pour les applications externes
- Plate-forme d'installation UiPath
- Pack de solutions UiPath
- Charger le package de solution UiPath
- Déploiement de la solution UiPath
- Déploiement d’activation de la solution UiPath
- Supprimer le package de solution UiPath
- Configuration du téléchargement de la solution UiPath
- Package de téléchargement de la solution UiPath
- Déploiement de la désinstallation de la solution UiPath
- Résolution des problèmes du plug-in Jenkins

Guide de l'utilisateur des intégrations CI/CD
Signature des paquets de solutions
Signature des paquets de solutions
UiPath CLI 25.10 offre la possibilité de signer numériquement les packages de solutions d'automatisation pendant l'opération de pack. La signature des packages fournit une vérification d'authenticité et garantit que les packages de solutions n'ont pas été modifiés après leur création, améliorant ainsi la sécurité dans votre pipeline CI/CD.
Lorsque vous signez un package de solution, la CLI :
- Crée le fichier du package de la solution
.zip - Applique une signature numérique à l'aide de votre certificat à tous les paquets Nuget à l'intérieur du fichier
.zip. - Horodatage éventuellement horodatage de la signature pour une validité à long terme
Types de certificat pris en charge
La CLI prend en charge le format de certificat PKCS#12 (.pfx).
Le certificat doit :
- Inclure une clé privée pour la signature
- être valide (n'a pas expiré)
- Disposer de capacités de signature de code
Paramètres
La commande solution pack prend en charge les paramètres de signature suivants :
| Paramètre | Description | Requis |
|---|---|---|
--certificatePath | Chemin d'accès au fichier de certificat (.pfx) | Oui (si la signature) |
--certificatePassword | Mot de passe du fichier de certificat | Non (No) |
--timestampServerUrl | URL du serveur d’horodatage RFC 3161 | Non (No) |
Exemples d'utilisation
Signature de base avec certificat
# Windows
uipcli solution pack "C:\Solutions\MyAutomationSolution" `
-v "1.0.0" `
-o "C:\Packages" `
--certificatePath "C:\Certificates\codesign.pfx" `
--certificatePassword "YourPassword123"
# Linux/macOS
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--certificatePath "./certificates/codesign.pfx" \
--certificatePassword "YourPassword123"
# Windows
uipcli solution pack "C:\Solutions\MyAutomationSolution" `
-v "1.0.0" `
-o "C:\Packages" `
--certificatePath "C:\Certificates\codesign.pfx" `
--certificatePassword "YourPassword123"
# Linux/macOS
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--certificatePath "./certificates/codesign.pfx" \
--certificatePassword "YourPassword123"
Signature avec le serveur d'horodatage
L'ajout d'un horodatage garantit que la signature reste valide, même après l'expiration du certificat.
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--certificatePath "./certificates/codesign.pfx" \
--certificatePassword "YourPassword123" \
--timestampServerUrl "http://timestamp.digicert.com"
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--certificatePath "./certificates/codesign.pfx" \
--certificatePassword "YourPassword123" \
--timestampServerUrl "http://timestamp.digicert.com"
Signature avec les dépendances de la bibliothèque Orchestrator
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--libraryOrchestratorUrl "https://cloud.uipath.com/" \
--libraryOrchestratorTenant "Default" \
-A "myorg" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--libraryOrchestratorApplicationScope "OR.Folders OR.Execution" \
--libraryOrchestratorFolder "Shared" \
--certificatePath "./certificates/codesign.pfx" \
--certificatePassword "YourPassword123" \
--timestampServerUrl "http://timestamp.digicert.com"
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--libraryOrchestratorUrl "https://cloud.uipath.com/" \
--libraryOrchestratorTenant "Default" \
-A "myorg" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S '********' \
--libraryOrchestratorApplicationScope "OR.Folders OR.Execution" \
--libraryOrchestratorFolder "Shared" \
--certificatePath "./certificates/codesign.pfx" \
--certificatePassword "YourPassword123" \
--timestampServerUrl "http://timestamp.digicert.com"
Signature avec un certificat sans mot de passe
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--certificatePath "./certificates/codesign.pfx"
uipcli solution pack "./MyAutomationSolution" \
-v "1.0.0" \
-o "./packages" \
--certificatePath "./certificates/codesign.pfx"
Exemple de pipeline CI/CD (Actions GitHub)
- name: Pack and sign solution package
env:
CERT_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
APP_SECRET: ${{ secrets.UIPATH_APP_SECRET }}
run: |
uipcli solution pack "./src/MyAutomationSolution" \
-v "1.0.${{ github.run_number }}" \
-o "./output" \
--libraryOrchestratorUrl "https://cloud.uipath.com/" \
--libraryOrchestratorTenant "Default" \
-A "myorg" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S "$APP_SECRET" \
--libraryOrchestratorApplicationScope "OR.Folders OR.Execution" \
--certificatePath "./certs/codesign.pfx" \
--certificatePassword "$CERT_PASSWORD" \
--timestampServerUrl "http://timestamp.digicert.com"
- name: Pack and sign solution package
env:
CERT_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
APP_SECRET: ${{ secrets.UIPATH_APP_SECRET }}
run: |
uipcli solution pack "./src/MyAutomationSolution" \
-v "1.0.${{ github.run_number }}" \
-o "./output" \
--libraryOrchestratorUrl "https://cloud.uipath.com/" \
--libraryOrchestratorTenant "Default" \
-A "myorg" \
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" \
-S "$APP_SECRET" \
--libraryOrchestratorApplicationScope "OR.Folders OR.Execution" \
--certificatePath "./certs/codesign.pfx" \
--certificatePassword "$CERT_PASSWORD" \
--timestampServerUrl "http://timestamp.digicert.com"
Exemple de pipeline Azure DevOps
- task: PowerShell@2
displayName: 'Pack and Sign Solution'
env:
CERT_PASSWORD: $(CertificatePassword)
APP_SECRET: $(UiPathAppSecret)
inputs:
targetType: 'inline'
script: |
uipcli solution pack "$(Build.SourcesDirectory)\MyAutomationSolution" `
-v "$(Build.BuildNumber)" `
-o "$(Build.ArtifactStagingDirectory)" `
--libraryOrchestratorUrl "https://cloud.uipath.com/" `
--libraryOrchestratorTenant "Default" `
-A "myorg" `
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" `
-S "$env:APP_SECRET" `
--libraryOrchestratorApplicationScope "OR.Folders OR.Execution" `
--certificatePath "$(Build.SourcesDirectory)\certs\codesign.pfx" `
--certificatePassword "$env:CERT_PASSWORD" `
--timestampServerUrl "http://timestamp.digicert.com"
- task: PowerShell@2
displayName: 'Pack and Sign Solution'
env:
CERT_PASSWORD: $(CertificatePassword)
APP_SECRET: $(UiPathAppSecret)
inputs:
targetType: 'inline'
script: |
uipcli solution pack "$(Build.SourcesDirectory)\MyAutomationSolution" `
-v "$(Build.BuildNumber)" `
-o "$(Build.ArtifactStagingDirectory)" `
--libraryOrchestratorUrl "https://cloud.uipath.com/" `
--libraryOrchestratorTenant "Default" `
-A "myorg" `
-I "becc663c-8f1e-409a-a75f-c00330d80bc8" `
-S "$env:APP_SECRET" `
--libraryOrchestratorApplicationScope "OR.Folders OR.Execution" `
--certificatePath "$(Build.SourcesDirectory)\certs\codesign.pfx" `
--certificatePassword "$env:CERT_PASSWORD" `
--timestampServerUrl "http://timestamp.digicert.com"
Serveurs d'horodatage recommandés
Il est recommandé d'utiliser un serveur d'horodatage pour s'assurer que les signatures restent valides après l'expiration du certificat :
http://timestamp.digicert.com- DigiCerthttp://timestamp.comodoca.com- Secrete (ComDo)http://timestamp.globalsign.com- GlobalSignhttp://timestamp.sectigo.com- Secrets
Meilleures pratiques
Stockage sécurisé du certificat
- Ne jamais valider les certificats vers le contrôle de version
- Utilisez des solutions de stockage sécurisées :
- Azure Key Vault
- AWS Secrets Manager
- HashiCorp Vault
- Clés secrètes GitHub/Fichiers sécurisés Azure DevOps
- Gestion des clés secrètes de la plate-forme CI/CD
Utilisation de l’horodatage
- Utilisez toujours un serveur d’horodatage dans les environnements de production
- Les horodatages garantissent la validité de la signature après l'expiration du certificat
Gestion des certificats
- Utiliser des certificats de signature de code dédiés
- Rotation des certificats avant l'expiration
- Gérez les sauvegardes de certificats en toute sécurité