UserLock Documentation
UserLock Documentation
Vous êtes ici: Cas d'utilisation > Authentification unique (SSO) > Avancé > Automatisation du renouvellement des certificats SSL

Automatisation du renouvellement des certificats SSL

Le certificat SSL est un composant central de la solution puisqu'il permet d'assurer que la communication entre les applications SaaS et UserLock SSO sont sécures. Les certificats SSL peuvent maintenant être générés gratuitement grâce à l'initiative de l'Internet Security Research Group (ISRG) et leur service Let's Encrypt.

Bien que gratuit, les certificats SSL générés par Let's Encrypt ont une durée de vie limitée (3 mois) et nécessitent d'être mis à jour fréquemment pour permettre à UserLock SSO de continuer à fonctionner. Cependant, plusieurs outils existent pour automatiser cette opération et nous allons voir ci-dessous comment utiliser l'outil de Certify The Web puisqu'il propose tout ce dont nous avons besoin pour mener à bien la mise à jour automatique du certificat SSL.

  • Télécharger et installer l'outil Certify Certificate Manager depuis https://certifytheweb.com/
  • Demandez un certificat en utilisant la documentation (https://docs.certifytheweb.com/docs/certificate-process).
  • A l'étape Deployment sélectionnez "Certificate Store Only". Ainsi, le certificat sera enregistré au bon endroit après sa création.
  • A l'étape Tasks ajoutez une nouvelle tâche et déroulez vers le bas pour sélectionner Run Powershell Script
  • Nommez la tâche UserLock SSO Binding - ou tout autre nom significatif - et sélectionnez Run On Success pour le Trigger
  • Créez un fichier nommé UserLockSSOBinding.ps1 dans un répertoire accessible à tout compte (C:\ProgramData\ISDecisions\UserLock\SSO\CertifyTheWeb par exemple)
  • Collez le contenu suivant dans le fichier et modifiez les variables $hostname et $port
    Param($result)

    # Use your UserLock SSO hostname and port as defined in the UserLock Console
    $hostname = "sso.mydomain.com"
    $port = 444

    # Always useful to log
    $logFile = "UserLockSSOBindingScript.log"

    Start-Transcript $logFile
    Write-Host "$(Get-Date) - Starting Post Certificate Generation Deployment Task"

    # Check whether the generation was OK
    Write-Host "$(Get-Date) - Certificate Generated: $($result.IsSuccess)"
    if (!$result.IsSuccess)
    {
    Write-Host "$(Get-Date) - Certification generation failed => Exiting"
    exit
    }

    # Get the certificate thumbprint
    $cert = $($result.ManagedItem.CertificateThumbprintHash)
    Write-Host "$(Get-Date) - Certificate Thumbrint: $($cert)"

    # Create a random Guid that will be used with netsh command
    $guid = [guid]::NewGuid().ToString("B")

    # Remove previous binding
    Write-Host "$(Get-Date) - Removing binding for $($hostname):$port"
    netsh http delete sslcert hostnameport=$($hostname):$port

    # Create new binding
    Write-Host "$(Get-Date) - Binding certificate $($cert) to $($hostname) with appId $($guid)"
    netsh http add sslcert hostnameport="$($hostname):$($port)" certhash=$cert certstorename=MY appid="$($guid)"

    # Stop the logging
    Stop-Transcript
  • Dans l'onglet Task Parameters tab, collez le chemin complet du fichier dans le champ Program/Script et cliquez OK
  • Sauvez (Save) la configuration, testez la et générez le premier certificat. En cas de problème lors de la génération, consultez l'aide de l'outil. En cas de problème au niveau du script, consultez le fichier de log.

Vous pouvez vérifier que le nouveau certificat est correctement installé en navigant vers votre instance UserLock SSO depuis un browser. Vous pourrez vérifier le certificat utilisé.