web-dev-qa-db-fra.com

Comment créer un fichier CSR pour Azure Web App

J'ai besoin de créer un fichier csr pour le donner à quelqu'un.

Le fichier csr est destiné à un certificat SSL pour une application web Azure.

Lorsque je google, je trouve des informations incohérentes sur pour générer le fichier csr.

Certaines sources disent: je dois créer le fichier csr sur le serveur sur lequel l'application Web s'exécute.

Dans mon cas, le serveur sur Azure est inconnu. Je ne peux rien y courir ...

Ou est-il correct de créer le csr sur mon PC local avec toutes les données de l'entreprise + le sujet rempli avec le domaine personnalisé?

24
HelloWorld

Vous pouvez créer un fichier cer à l'aide de l'outil Certreq.exe ou OpenSSL.

Pour plus de détails, veuillez consulter la documentation officielle comment activer HTTPS pour une application dans Azure App Service .

7
Sascha Dittmann

Digicert dispose d'un outil et d'instructions claires sur la façon de créer le certificat pour un site Azure.

https://www.digicert.com/csr-creation-ssl-installation-windows-Azure-website.htm

15
Mason240

openssl est installé dans la console, vous pouvez y générer les fichiers. Vous devrez spécifier tous les paramètres nécessaires dans la commande d'origine pour openssl car il est censé vous poser des questions mais cela ne fonctionne pas pour le moment. Donc quelque chose comme ça:

openssl req -new -newkey rsa:2048 -nodes -out yoursite_com.csr -keyout yoursite_com.key -subj "/C=US/ST=California/L=San Francisco/O=Your Site Inc./OU=Engineering/CN=yoursite.com"

une fois que vous avez votre csr, vous ne pouvez pas l'ouvrir depuis la console, vous devez en fait utiliser Kudu (cliquez sur Advanced Tools) pour ouvrir le fichier et copier le contenu.

9
Peter W

Au lieu de le faire manuellement, une option consiste à rechercher dans les services supplémentaires "App Certificate Service" qui vous fournira un assistant pour acheter un certificat SSL, puis le lier à votre application. C'est beaucoup plus simple et plus rapide que de générer un CSR à la main, et c'est aussi beaucoup moins déroutant. La documentation était détaillée et n'était pas vraiment claire quant à savoir si nous sommes censés nous connecter au serveur et y générer la CSR, etc., donc je vous suggère fortement de le faire via le service de certificat d'application.

5
HandleThatError

D'autres ont fourni des informations précieuses sur ces faits:

  • Que vous pouvez (et dans le cas d'Azure Web App, vous devez essentiellement) générer la CSR sur une machine différente de celle du serveur cible (celui qui utilisera le certificat).
  • Outils que vous pouvez utiliser pour générer la CSR (par exemple openssl, utilitaire DigiCert).
  • Une autre façon d'obtenir un certificat pour Azure Web App (Azure App Certificate Service).

Peut-être que je manque quelque chose, mais je ne vois pas de réponses sur:

  1. Pourquoi voudriez-vous (ou devriez-vous même) générer la CSR sur la machine cible?
  2. Pourquoi n'y êtes-vous pas obligé?

Mon approche pour répondre à ces deux questions, je commencerais par le fait que la génération de la RSE est en fait un processus, qui produit deux artefacts, où la partie évidente - la demande de certificat - est probablement la moins importante en la matière. Le plus important, qui doit également venir en premier, est la paire de clés RSA en cours de génération, où la partie publique de la paire est utilisée dans la demande de RSE, et la partie privée est la partie cruciale de l'objectif global de l'utilisation du certificats.

Bien que la paire de clés soit généralement générée à l'aide de données d'entropie basées sur le matériel, si spécifiques à la machine que vous utilisez, le résultat (la paire de clés) peut être utilisé n'importe où, car les valeurs de clé ne sont liées mathématiquement que les unes aux autres. Le contenu CSR est basé sur la clé publique et l'objet du certificat demandé, donc encore une fois, il n'y a rien là-dedans, qui ne peut pas être utilisé ailleurs. Cela explique pourquoi il n'y a pas de limitation technique pour générer réellement le CSR (et les clés) sur une machine/un service différent de celui qui l'utilisera, donc la question numéro 2 est adressée.

La réponse à la question numéro 1 provient de la caractéristique cruciale de la clé privée, qui est générée au cours du processus. Cette caractéristique cruciale est qu'elle doit rester privée. L'idéal étant que seul l'utilisateur de l'identité du certificat puisse l'utiliser. Cet "utilisateur" serait le service cible (le serveur Web). Lorsque vous générez la clé ailleurs, vous êtes responsable de la protéger sur cet environnement et en transit vers la cible. Il s'agit souvent d'un risque inutile. La solution suggérée consiste souvent à générer la clé dans le certificat/magasin de clés cible, avec une protection de clé privée, ce qui empêche l'extraction (exportation) de la clé privée du magasin. Même le service cible (serveur Web) ne pourra en fait pas l'extraire/le lire (mais pourra l'utiliser). Comme la paire de clés est générée dans le processus de création de CSR, cela signifie que ce processus doit être exécuté là où se trouve ce magasin et par les fonctionnalités de ce magasin. Cela devrait répondre à cette question. En guise de remarque, l'outil DigiCert ainsi que l'interface utilisateur du gestionnaire IIS utilisent les magasins de certificats Windows, qui ajoutent une couche de protection pour la clé privée, mais ils marquent la clé comme exportable , qui permet l'extraction de clés. L'outil OpenSSL (sous Windows) génère la clé en dehors des magasins de certificats Windows (sous forme de fichiers), de sorte que vous pouvez facilement y accéder, ce qui n'est pas si sûr.

J'ai trouvé cet article: https://www.namecheap.com/support/knowledgebase/article.aspx/9854//how-to-generate-a-csr-code-on-a-windowsbased- server-without-iis-manager , qui mentionne 3 méthodes/outils supplémentaires pour générer la CSR, où la première (à l'aide du composant logiciel enfichable Certificats dans Microsoft Management Console) vous permet en fait de marquer la clé privée comme non exportable .

Bien sûr, dans votre cas, la capacité à prendre (par exemple exporter) la clé privée est cruciale, car vous devez générer la CSR ailleurs, car le magasin de certificats Azure Web App n'a actuellement aucune fonctionnalité permettant de générer la CSR.

3
Hilarion