472 votes

Est-il possible d'avoir un certificat SSL pour l'adresse IP et non pour le nom de domaine ?

Je veux que mon site utilise des URLs comme http://192.0.2.2/... y https://192.0.2.2/... pour le contenu statique afin d'éviter les cookies inutiles dans la demande ET d'éviter une demande DNS supplémentaire.

Existe-t-il un moyen d'obtenir un certificat SSL à cette fin ?

4 votes

Cette question peut être intéressant : vous pouvez mais l'adresse IP doit être dans une entrée SAN de type adresse IP, pas dans le CN du DN sujet.

39 votes

LetsEncrypt ne le fait pas. """" x.x.x.x est une adresse IP. L'autorité de certification de Let's Encrypt ne délivrera pas de certificats pour une adresse IP nue."""

2 votes

Le Forum des navigateurs C/A fournit un ensemble de politiques d'émission. Elle est évidemment suivie par les navigateurs. L'AC/B n'autorise plus les adresses IP. Un autre ensemble de politiques de délivrance est maintenu par l'IETF. L'ICP de l'IETF s'appelle PKIX. PKIX autorise les adresses IP. PKIX est suivi par la plupart des logiciels [libres ?], comme cURL et Wget. Je n'arrive pas à comprendre le cert de 1.1.1.1 . Il devrait être interdit selon les politiques de l'AC/B. Peut-être que l'AC/B a changé ses politiques.

265voto

Pekka 웃 Points 249607

Selon cette réponse il est possible, mais rarement utilisé.

Quant à la façon de l'obtenir : J'aurais tendance à simplement essayer d'en commander un auprès du fournisseur de votre choix, et d'entrer l'adresse IP au lieu d'un domaine pendant le processus de commande.

Cependant, faire fonctionner un site sur une adresse IP pour éviter la consultation du DNS me semble être une micro-optimisation inutile. Vous gagnerez quelques millisecondes au mieux, et c'est par visite car les résultats du DNS sont mis en cache à plusieurs niveaux.

Je ne pense pas que votre idée ait un sens du point de vue de l'optimisation.

14 votes

AFAIK, 1 fois par minute (cache DNS de Firefox) et 1 fois par 30 minutes pour IE. Cela diffère du TTL des enregistrements DNS. Cela prend également environ 20 ms pour moi, en fonction du domaine et de la vitesse des serveurs NS (qui doivent également être résolus en premier :) ). Je veux aussi éviter d'avoir des cookies trop longs (mes cookies d'authentification + Google Analytics) pour chaque requête statique. Donc, utiliser l'IP au lieu d'acheter un domaine séparé est une bonne chose. BTW, stackoverflow, basecamphq utilisent un domaine séparé pour le contenu statique. L'utilisation de l'IP à la place supprimera également les demandes DNS inutiles.

19 votes

Je comprends parfaitement ton point de vue sur les cookies, tu as tout à fait raison. Mais passer à une IP SSL pour économiser les quelques ms de recherche DNS me semble plus compliqué que cela n'en vaut la peine. De plus, vous risquez d'avoir des difficultés à emporter votre IP si vous devez changer de fournisseur - ce n'est probablement pas possible. Il est beaucoup plus facile de déplacer un domaine, et il devrait être possible de déplacer un certificat avec lui assez facilement.

2 votes

L'outil Page Speed de Google suggère toujours de "Servir les ressources JavaScript suivantes à partir du même hôte que le document principal (xxxx.com), ou de différer le chargement de ces ressources si possible". Je ne considère pas l'outil Page Speed comme une bible, mais de toute façon cela signifie que l'optimisation DNS n'a pas été inventée par moi. J'essaie simplement de rendre ma liste de contrôle Page Speed verte dans la mesure du possible.

91voto

regdoug Points 983

La réponse courte est oui, tant qu'il s'agit d'une adresse IP publique.

La délivrance de certificats à des adresses IP réservées n'est pas autorisée, et tous les certificats précédemment délivrés à des adresses IP réservées ont été révoqués à compter du 1er octobre 2016.

D'après le forum CA Browser, il peut y avoir des problèmes de compatibilité avec les certificats pour les adresses IP, à moins que l'adresse IP ne figure à la fois dans le fichier commonName y subjectAltName champs. Ceci est dû aux implémentations SSL existantes qui ne sont pas alignées sur la RFC 5280, notamment les systèmes d'exploitation Windows antérieurs à Windows 10.


Sources :

  1. Conseils sur les adresses IP dans les certificats Forum des navigateurs CA
  2. Exigences de base 1.4.1 Forum des navigateurs CA
  3. Le nom (bientôt) pas si commun unmitigatedrisk.com
  4. RFC 5280 IETF

Remarque : une version antérieure de cette réponse indiquait que tous les certificats d'adresse IP seraient révoqués le 1er octobre 2016. Merci à Navin d'avoir signalé cette erreur.

55voto

user2513722 Points 111

Yep. Cloudflare l'utilise pour sa page d'accueil d'instructions DNS : https://1.1.1.1

43voto

La réponse, je suppose, est oui. Vérifiez ce lien par exemple.

Délivrer un certificat SSL à une adresse IP publique

Un certificat SSL est généralement délivré à un nom de domaine entièrement qualifié (FQDN) tel que " https://www.domain.com ". Cependant, certaines organisations ont besoin d'un certificat SSL émis vers une adresse IP publique. Cette option vous permet de spécifier une adresse IP publique comme nom commun dans votre demande de signature de certificat (CSR). Le certificat émis peut alors être utilisé pour sécuriser les connexions directement avec l'adresse IP publique (par ex, https://123.456.78.99 .).

7 votes

Cela fonctionne-t-il aussi avec une IP privée statique ? Comme pour un réseau local ?

0 votes

@Klaus Byskov Pedersen Pourriez-vous me fournir une ressource sur la façon de faire cela ?

2 votes

@ShivSingh Une source quelconque ? Je ne pense pas qu'une AC bien connue émettrait un certificat pour une adresse IP privée.

35voto

Josiah DeWitt Points 703

La réponse est oui. En bref, il s'agit d'un certificat de nom alternatif de sujet (SAN) qui contient des IP où vous verriez généralement des entrées DNS. Le type de certificat n'est pas limité aux IP publiques - cette restriction est uniquement imposée par une autorité de signature plutôt que par la technologie. Je voulais juste clarifier ce point. Je soupçonne que vous voulez simplement vous débarrasser de ce message d'invite non sécurisé sur vos sites Web et appareils internes sans avoir à payer et à vous embêter à leur donner des noms DNS et à payer une autorité de certification pour qu'elle émette un certificat tous les ans ou tous les deux ans. Vous ne devriez PAS essayer de convaincre le monde entier que votre adresse IP est un site web réputé et les gens devraient se sentir à l'aise pour fournir leurs informations de paiement. Maintenant que nous avons établi pourquoi aucune organisation réputée ne veut émettre ce type de certificat, faisons-le nous-mêmes avec un certificat SAN auto-signé. En interne, j'ai un certificat de confiance qui est déployé sur tous nos hôtes, puis je signe ce type de certificat avec lui et tous les appareils deviennent fiables. Faire cela ici dépasse le cadre de la question mais je pense que c'est pertinent pour la discussion car la question et la solution vont de pair. Pour être concis, voici comment générer un certificat SAN individuel auto-signé avec des adresses IP. Étendez la liste d'adresses IP à l'ensemble de votre sous-réseau et utilisez un seul certificat pour tout.

#!/bin/bash
#using: OpenSSL 1.1.1c FIPS  28 May 2019 / CentOS Linux release 8.2.2004

C=US ; ST=Confusion ; L=Anywhere ; O=Private\ Subnet ; EMAIL=admin@company.com
BITS=2048
CN=RFC1918
DOM=company.com
SUBJ="/C=$C/ST=$ST/L=$L/O=$O/CN=$CN.$DOM"

openssl genrsa -out ip.key $BITS

SAN='\n[SAN]\nsubjectAltName=IP:192.168.1.0,IP:192.168.1.1,IP:192.168.1.2,IP:192.168.1.3,IP:192.168.1.4,IP:192.168.1.5,IP:192.168.1.6,IP:192.168.1.7,IP:192.168.1.8,IP:192.168.1.9,IP:192.168.1.10'

cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnf
echo -e "$SAN" >> /tmp/openssl.cnf

openssl req -subj "$SUBJ" -new -x509 -days 10950 \
    -key ip.key -out ip.crt -batch \
    -set_serial 168933982 \
    -config /tmp/openssl.cnf \
    -extensions SAN

openssl x509 -in ip.crt -noout -text

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X