Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avertissement
L’application de bureau Internet Explorer 11, mise hors service et dont le support a pris fin, a été désactivée définitivement via une mise à jour Microsoft Edge sur certaines versions de Windows 10. Pour plus d’informations, consultez la FAQ sur la mise hors service de l’application de bureau Internet Explorer 11.
L’objectif de cet article est d’expliquer comment l’API Crypto tente de trouver un itinéraire permettant de télécharger avec succès une URL HTTP d'un point de distribution de CRL, afin d'aider dans les scénarios de résolution des problèmes liés à la récupération réseau des listes de révocation de certificats.
Version du produit d’origine : Windows Server 2003 Service Pack 2, Windows Vista Entreprise, Windows Server 2008 Entreprise, Windows 7 Entreprise, Windows Server 2008 R2 Entreprise, Windows 10, Windows Server 2016, Windows Server 2019
Numéro de base de connaissances d’origine : 2623724
Résumé
Considérons le scénario suivant. Votre application utilise l’API WinINet, l’API WinHTTP ou la classe System.Net.HttpWebRequest du .NET Framework pour envoyer une requête HTTP via SSL/TLS. Pendant la négociation de canal sécurisé SSL/TLS, le serveur renvoie un message Server Hello au client avec son certificat de serveur pour prouver son identité au client. Dans ce cas, les informations de certificat de serveur peuvent également contenir une liste de points de distribution de liste de révocation de certificats (CRL). Cette liste de points de distribution de CRL contient une URL à partir de laquelle le client peut télécharger celle-ci et vérifier si le certificat du serveur a été révoqué par l'éditeur.
L’API Crypto utilise en interne l’API WinHTTP pour télécharger l’URL HTTP du point de distribution des listes de révocation de certificats. Avant de télécharger l’URL, WinHTTP doit connaître un chemin pour atteindre l’URL de la CRL. Dans les situations où l’environnement dispose d’un serveur proxy, WinHTTP peut détecter automatiquement ce dernier ou l’application utilisant l’API WinHTTP peut demander l’utilisation d’un proxy spécifique pour télécharger la liste de révocation de certificats.
L’API Crypto tente en interne de trouver un serveur proxy en premier à l’aide de la logique ci-dessous, et s’il trouve une adresse de serveur proxy, il demande à WinHTTP d’utiliser cette instance de proxy spécifique.
Si l’instance de proxy n’est pas accessible ou est incorrecte, WinHTTP ne peut pas télécharger la liste de révocation de certificats, la vérification de révocation de certificat échoue et votre application reçoit une erreur de l’API Crypto indiquant l’échec de révocation. Il peut signaler la même erreur à l'utilisateur, et, selon l'implémentation, l'établissement du canal sécurisé peut échouer.
Lorsque vous essayez de découvrir le proxy, l’API Crypto utilise la logique suivante :
Il vérifie s’il existe des paramètres de proxy statiques configurés sur l’ordinateur depuis laquelle la vérification de la liste de révocation de certificats est effectuée. En règle générale, cette configuration est effectuée à l’aide de l’utilitaire netsh pour définir manuellement le proxy sur Windows Vista, Windows 2008, Windows 7 ou Windows 2008 R2. Si un proxy statique est trouvé, l’API Crypto utilise le proxy découvert statiquement pour télécharger la liste de révocation des certificats via WinHttp. Pour plus d’informations sur netsh, consultez Netsh Commands for Windows Hypertext Transfer Protocol (WINHTTP) dans la section Plus d’informations ci-dessous.
Remarque
Cette vérification est effectuée uniquement sur Windows Vista, Windows 2008, Windows 7 et Windows 2008 R2. Sur Windows 2003, l’API Crypto ne vérifie pas les paramètres de proxy statiques.
Si un proxy configuré statiquement est introuvable, l’API Crypto tente de récupérer les paramètres du proxy Internet Explorer pour le contexte utilisateur sous lequel l’API Crypto s’exécute.
En fonction de l’exécution de votre processus, il peut s’agir de l’identité de l’utilisateur actuellement connecté, ou de n’importe quel utilisateur spécifique, ou il peut s’agir de l’un des comptes fournis par les systèmes fournis : SYSTÈME LOCAL, SERVICE RÉSEAU, SERVICE LOCAL. Les emplacements de registre suivants sont interrogés en fonction de l’identité de l’exécution :
- Utilisateur actuellement connecté :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
- SERVICE RÉSEAU :
HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings
- SYSTÈME LOCAL :
HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings
- SERVICE LOCAL :
HKEY_USERS\S-1-5-19\Software\Microsoft\Windows\CurrentVersion\Internet Settings
- Tout autre utilisateur :
HKEY_USERS\<<SID of that user>>\Software\Microsoft\Windows\CurrentVersion\Internet Settings
En fonction des informations du Registre, les paramètres de proxy de cet utilisateur seront retournés. Si les paramètres du proxy sont absents, aucune information n’est retournée. Si les paramètres du proxy sont retournés, il peut contenir une combinaison des options ci-dessous :
- Détectez automatiquement les paramètres.
- Utilisez le script de configuration automatique.
- Serveur proxy.
Remarque
Dans les situations où le processus s’exécute en tant qu’identité différente de celle de l’utilisateur actuellement connecté, il peut y avoir une incohérence dans les paramètres du proxy en fonction de la configuration des paramètres de proxy pour cet utilisateur. Dans ce cas, vous pourriez constater que vous pouvez accéder à l'emplacement de la liste de révocation de certificats avec Internet Explorer en tant qu'utilisateur actuel et télécharger la liste correctement. Cependant, le même processus échoue lorsqu'il est effectué via l'API Crypto qui fonctionne sous un autre utilisateur. Dans de telles situations, il est vivement recommandé de vérifier les paramètres Internet de tous les utilisateurs et de s’assurer qu’ils sont cohérents.
Les paramètres Internet ne doivent idéalement pas être présents pour les utilisateurs non interactifs tels que LE SERVICE RÉSEAU, LE SYSTÈME LOCAL ou LE SERVICE LOCAL, car il n’y aura jamais besoin d’ouvrir Internet Explorer avec ces identités. Dans ce cas, vous devez vous assurer que ces utilisateurs non interactifs n’ont pas de paramètres proxy configurés pour Internet Explorer, ou s’assurer qu’ils sont cohérents avec les paramètres proxy de l’utilisateur avec lesquels le téléchargement de la liste de révocation de certificats réussit à l’aide d’Internet Explorer.
- Utilisateur actuellement connecté :
Si les paramètres du proxy Internet Explorer ne sont pas présents pour l’utilisateur en cours d’exécution ou si les paramètres Internet Explorer de l’identité de processus indiquent. Détectez automatiquement les paramètres ou utilisez un script de configuration automatique, l’API Crypto tente de détecter automatiquement un proxy pour la liste de révocation de certificats en question. Cela renvoie des informations de proxy spécifiques ou renvoie « aucun proxy » si la découverte automatique du proxy échoue ou si l’URL ne nécessite pas de proxy.
L’API Crypto tentera d’utiliser l’API WinHTTP pour télécharger l’URL de la liste de révocation des certificats en utilisant le proxy détecté (ou aucun proxy si le proxy n’a pas pu être détecté ou si l’URL ne requiert pas de proxy).
Si le proxy est inaccessible ou si les informations du proxy sont incorrectes, l’extraction de l’URL de la liste de révocation de certificats échoue. L’API Crypto signale ensuite cette erreur à l’API appelante, et en fonction de l’implémentation, l’appelant de l’API Crypto peut alors décider s’il faut abandonner la demande ou la laisser passer.
Remarque
Dans les cas où l’application elle-même consomme l’API WinHTTP et a défini les informations de proxy dans l’appel WinHttpOpen ou l’appel WinHttpSetOption, l’API Crypto n’a pas accès aux informations du proxy que l’application a définies et essaiera toujours de découvrir les informations du proxy comme ci-dessus. L’utilisation de l’API WinHttp à partir de l’API Crypto et de votre propre application sont indépendantes et ne partagent aucune information entre elles.
Dans Windows 10, CryptoAPI 2 (CAPI2) est mis à jour afin qu’il n’ait pas ses propres paramètres proxy. La modification est implémentée dans un appel de fonction WinHttpOpen où à partir de Windows 10, CAPI2 utilise l’indicateur de WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY .
Nom du drapeau | Descriptif |
---|---|
WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY | Utilise les paramètres de proxy système et par utilisateur (y compris la configuration du proxy Internet Explorer) pour déterminer le proxy/proxy à utiliser. Tente automatiquement de gérer le basculement entre plusieurs proxys, différentes configurations de proxy par interface et l’authentification. Pris en charge dans Windows 8.1 et versions ultérieures. |
Remarque
Les versions précédentes de Windows ont utilisé l’indicateur WINHTTP_ACCESS_TYPE_DEFAULT_PROXY.
L’indicateur WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY signifie que WinHttp gère la logique de détection du proxy et que l’appelant ne doit pas écrire de code pour gérer la configuration du proxy. Si l’indicateur WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY est défini, WinHttp vérifie la configuration du proxy par défaut à l’aide de l’utilitaire netsh, puis les paramètres du proxy Internet Explorer.
Remarque
Les paramètres du proxy Internet Explorer sont définis par utilisateur, ce qui signifie que l’appelant doit se faire passer pour l’utilisateur connecté.
Si vous ne souhaitez pas définir de proxy pour chaque utilisateur connecté, vous pouvez configurer un proxy à l’échelle de l’ordinateur en définissant la clé ProxySettingsPerUser sur 0.
Clé de Registre | HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\InternetSettings\ProxySettingsPerUser |
---|---|
Catégorie | REG DWORD |
Valeur | 0 : proxy par machine 1 ou aucune valeur : par utilisateur |
Après avoir défini la clé de Registre, vous pouvez configurer le proxy avec les propriétés Internet (Inetcpl.cpl). Les paramètres de proxy à l’échelle de l’ordinateur peuvent être modifiés par les administrateurs ou à l’aide de la stratégie de groupe.
Plus d’informations
Pour plus d’informations, consultez l’article suivant :