> ## Documentation Index
> Fetch the complete documentation index at: https://help.gorelo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Impossible de créer le canal sécurisé SSL/TLS

> Corrigez l'erreur PowerShell « Could not create SSL/TLS secure channel » en activant TLS 1.2 dans votre session ou à l'échelle du système pour les scripts Invoke-WebRequest.

## Problème

Lors de l'exécution d'un script PowerShell qui utilise `Invoke-WebRequest`, l'erreur suivante peut apparaître :

```powershell theme={null}
Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.
```

Cela se produit parce que le script tente de se connecter à un serveur en utilisant des protocoles sécurisés (TLS/SSL), mais que les protocoles requis (comme TLS 1.2) ne sont pas activés sur le système.

<Frame>
  <img src="https://mintcdn.com/gorelo/k9Vf68jFwh3yoHvE/images/image-168.png?fit=max&auto=format&n=k9Vf68jFwh3yoHvE&q=85&s=6777e83ac2b24818bbb93b26b91317a6" alt="Image" width="1527" height="248" data-path="images/image-168.png" />
</Frame>

## Solutions

<Tabs>
  <Tab title="Temporaire">
    Pour corriger rapidement ce problème dans la session en cours, vous pouvez activer les protocoles nécessaires en exécutant la commande suivante dans votre session PowerShell :

    ```powershell theme={null}
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls11 -bor ` [Net.SecurityProtocolType]::Tls12 -bor ` [Net.SecurityProtocolType]::Tls -bor ` [Net.SecurityProtocolType]::Ssl3
    ```

    Toutefois, ce correctif est temporaire et doit être réappliqué dans chaque nouvelle session PowerShell.
  </Tab>

  <Tab title="Permanent">
    Pour résoudre ce problème de manière permanente et faire en sorte que toutes les applications basées sur .NET, y compris PowerShell, utilisent des protocoles sécurisés par défaut, mettez à jour le registre du système.

    ### Étapes à suivre :

    1. Ouvrez une **session PowerShell en mode administrateur** (Exécuter en tant qu'administrateur).
    2. Exécutez les commandes suivantes pour mettre à jour le registre :

    ```powershell theme={null}
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord 
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
    ```

    3. Appliquez aussi les modifications à la clé de registre 64 bits du .NET Framework :

    ```text theme={null}
    Set-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord 
    Set-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
    ```

    4. Redémarrez le système pour que les modifications prennent effet.
  </Tab>
</Tabs>

## Explication des clés de registre

| Paramètre du registre        | Description                                                                                                                                    |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **SchUseStrongCrypto**       | Force le .NET Framework à utiliser des protocoles cryptographiques forts (par exemple, TLS 1.2).                                               |
| **SystemDefaultTlsVersions** | Garantit que les applications .NET utilisent la version TLS par défaut du système, leur permettant de s'adapter à des protocoles plus récents. |

## Si l'erreur persiste

Si l'erreur persiste, envisagez les actions suivantes pour assurer des connexions sécurisées à toutes les applications .NET sans intervention manuelle dans chaque session :

* Assurez-vous que votre système prend en charge TLS 1.2 et qu'il est activé dans le système d'exploitation.

* Mettez à niveau vers PowerShell Core ou PowerShell 7, qui utilisent par défaut des protocoles de sécurité modernes.
