Ist es möglich, ein SSL-Zertifikat für die IP-Adresse und nicht für den Domainnamen zu haben?

281

Ich möchte, dass meine Website URLs wie http://192.0.2.2/...und https://192.0.2.2/...für statische Inhalte verwendet, um unnötige Cookies bei Anfragen zu vermeiden UND zusätzliche DNS-Anfragen zu vermeiden.

Gibt es eine Möglichkeit, zu diesem Zweck ein SSL-Zertifikat zu erhalten?

Evgenyt
quelle
3
Diese Frage kann von Interesse sein: Sie können, aber die IP-Adresse sollte sich in einem SAN-Eintrag vom Typ IP-Adresse befinden, nicht in der CN des Betreff-DN.
Bruno
14
LetsEncrypt tut dies nicht. "" "" xxxx ist eine IP-Adresse. Die Let's Encrypt-Zertifizierungsstelle stellt keine Zertifikate für eine bloße IP-Adresse aus. "" "
kommradHomer
1
Das C / A-Browserforum bietet eine Reihe von Richtlinien für die Ausgabe. Offensichtlich folgen Browser. CA / B erlaubt keine IP-Adressen mehr. Ein weiterer Satz von Ausgaberichtlinien wird von der IETF verwaltet. Die PKI der IETF heißt PKIX. PKIX erlaubt IP-Adressen. Auf PKIX folgen die meisten [kostenlosen?] Programme wie cURL und Wget. Ich kann das Zertifikat für 1.1.1.1 nicht ganz herausfinden . Es sollte gemäß den CA / B-Richtlinien verboten sein. Vielleicht hat CA / B ihre Richtlinien geändert.
JWW

Antworten:

168

Nach dieser Antwort ist es möglich, wird aber selten verwendet.

Wie man es bekommt: Ich würde in der Regel einfach versuchen, eine bei dem Anbieter Ihrer Wahl zu bestellen und während des Bestellvorgangs die IP-Adresse anstelle einer Domain einzugeben.

Das Ausführen einer Site unter einer IP-Adresse, um die DNS-Suche zu vermeiden, klingt für mich jedoch schrecklich nach unnötiger Mikrooptimierung. Sie sparen bestenfalls ein paar Millisekunden, und das pro Besuch , da DNS-Ergebnisse auf mehreren Ebenen zwischengespeichert werden.

Ich denke nicht, dass Ihre Idee unter dem Gesichtspunkt der Optimierung sinnvoll ist.

Pekka
quelle
9
AFAIK, 1 Mal pro Minute (Firefox DNS-Cache) und 1 Mal pro 30 Minuten für IE. Dies unterscheidet sich von der TTL von DNS-Einträgen. Außerdem dauert es ungefähr 20 ms für mich, abhängig von der Domain und der Geschwindigkeit der NS-Server (die ebenfalls zuerst aufgelöst werden müssen :)). Ich möchte auch meine langwierigen Cookies (meine Auth + Google Analytics-Cookies) für jede statische Anfrage vermeiden. Die Verwendung von IP anstelle des Kaufs einer separaten Domain ist also gut. Übrigens, Stackoverflow, basecamphq verwenden separate Domänen für statische Inhalte. Wenn Sie stattdessen IP verwenden, werden auch unnötige DNS-Anforderungen entfernt.
Evgenyt
12
Ich verstehe Ihren Standpunkt mit den Cookies absolut, Sie haben vollkommen recht. Aber zu einer SSL-IP zu wechseln, um die wenigen ms DNS-Suche zu sparen, klingt für mich mühsamer als es wert ist. Außerdem haben Sie möglicherweise Probleme, Ihre IP mitzunehmen, wenn Sie jemals Ihren Anbieter wechseln müssen - dies ist wahrscheinlich nicht möglich. Das Verschieben einer Domain ist viel einfacher und es sollte möglich sein, ein Zertifikat halbwegs einfach damit zu verschieben.
Pekka
2
Das Page Speed-Tool von Google empfiehlt immer, "die folgenden JavaScript-Ressourcen vom selben Host wie das Hauptdokument (xxxx.com) aus bereitzustellen oder das Laden dieser Ressourcen nach Möglichkeit zu verschieben". Ich bewerte das Page Speed-Tool nicht als Bibel, aber das bedeutet, dass die DNS-Optimierung nicht von mir erfunden wurde. Ich versuche nur, meine Checkliste für die Seitengeschwindigkeit nach Möglichkeit grün zu machen.
Evgenyt
11
@ Evgenyt: Ich glaube nicht, dass dies an der DNS-Suche liegt, die, wie angegeben, auf so vielen Ebenen zwischengespeichert wird, dass es sich nicht um ein Leistungsproblem handeln kann. Es ist wahrscheinlicher, dass Browser ihre Anforderungen weiterleiten können. Halten Sie die Verbindung zum Host offen, um das Einrichten zusätzlicher Verbindungen zu vermeiden.
vdstw
5
Ich stimme der Antwort zu. Außerdem haben wir ein Problem mit dieser Konfiguration festgestellt. Es stellte sich heraus, dass der Chrome-Browser (39.0.2171.93) unter Android (4.4.5.0; funktioniert unter 4.0,4) keine Audiodateien über HTTPS wiedergibt, wenn die IP-Adresse als Zertifikatziel verwendet wird. Wir haben diese Konfiguration für unsere Testumgebung verwendet, werden jedoch Domänennamen verwenden.
ENargit
58

Die kurze Antwort lautet Ja, solange es sich um eine öffentliche IP-Adresse handelt.

Die Ausstellung von Zertifikaten an reservierte IP-Adressen ist nicht zulässig. Alle zuvor an reservierte IP-Adressen ausgestellten Zertifikate wurden zum 1. Oktober 2016 widerrufen.

Laut dem CA Browser-Forum kann es zu Kompatibilitätsproblemen mit Zertifikaten für IP-Adressen kommen, es sei denn, die IP-Adresse befindet sich in den Feldern commonNameund subjectAltName. Dies ist auf ältere SSL-Implementierungen zurückzuführen, die nicht auf RFC 5280 ausgerichtet sind, insbesondere auf das Windows-Betriebssystem vor Windows 10.


Quellen:

  1. Anleitung zu IP-Adressen im CA Browser-Forum für Zertifikate
  2. Grundlegende Anforderungen 1.4.1 CA Browser Forum
  3. Der (bald) nicht mehr so gebräuchliche Name unmitigatedrisk.com
  4. RFC 5280 IETF

Hinweis: In einer früheren Version dieser Antwort wurde angegeben, dass alle IP-Adresszertifikate am 1. Oktober 2016 widerrufen werden. Vielen Dank an Navin für den Hinweis auf den Fehler.

regdoug
quelle
5
Nicht wahr, Globalsign stellt weiterhin Zertifikate für IPs aus. Das Certificate Authority / Browser Forum mag es nicht, private IPs in Zertifikaten zu sehen, hat aber nichts gegen öffentliche IPs.
Navin
1
Es sieht so aus, als ob meine Informationen veraltet sind. Ich werde es genauer untersuchen und es dann bearbeiten, wenn Sie richtig sind.
Regdoug
Nicht wahr, siehe 1.1.1.1. Sie erhalten 2019 ein SSL-Zertifikat für IP und sind bis 2021 von DigiCert gültig
Bronze Man
@bronzeman das ist eine öffentliche IP-Adresse, also ja, Sie können ein Zertifikat dafür bekommen. Die einzigen Adressen, für die kein Zertifikat ausgestellt werden kann, sind en.wikipedia.org/wiki/Reserved_IP_addresses
regdoug
@DustWolf, gemäß RFC 5280, "Wenn die subjectAltName-Erweiterung eine iPAddress enthält, MUSS die Adresse in der Oktettzeichenfolge in" Netzwerkbyte-Reihenfolge "gespeichert werden, wie in [RFC791] angegeben. ... Für IP-Version 4 ..., Die Oktettzeichenfolge MUSS genau vier Oktette enthalten. " Kurz gesagt, Sie können kein Subnetz im Feld subjectAltName verwenden
regdoug
31

Die Antwort, denke ich, ist ja. Überprüfen Sie zum Beispiel diesen Link .

Ausstellen eines SSL-Zertifikats an eine öffentliche IP-Adresse

Ein SSL-Zertifikat wird normalerweise an einen vollqualifizierten Domänennamen (FQDN) wie " https://www.domain.com " ausgestellt. Einige Organisationen benötigen jedoch ein SSL-Zertifikat, das an eine öffentliche IP-Adresse ausgestellt wurde. Mit dieser Option können Sie eine öffentliche IP-Adresse als allgemeinen Namen in Ihrer Zertifikatsignierungsanforderung (Certificate Signing Request, CSR) angeben. Das ausgestellte Zertifikat kann dann verwendet werden, um Verbindungen direkt mit der öffentlichen IP-Adresse (z . B. https://123.456.78.99 ) zu sichern .

Klaus Byskov Pedersen
quelle
5
Funktioniert es auch mit statischer privater IP? Wie für ein LAN?
Herr Bonjour
@Klaus Byskov Pedersen Könnten Sie mir bitte eine Ressource zur Verfügung stellen, wie das geht?
Reyhane
2
@ShivSingh Irgendeine Quelle? Ich glaube nicht, dass eine bekannte Zertifizierungsstelle ein Zertifikat für eine private IP-Adresse ausstellen würde.
Franklin Yu
22

Ja. Cloudflare verwendet es für seine DNS-Anweisungshomepage: https://1.1.1.1

mehulmpt
quelle
8
Das ist nicht ganz so, wie es scheint. Wenn Sie das Zertifikat überprüfen, Common Nameist cloudflare-dns.comund 1.1.1.1wird das Feld nur unter aufgeführt Certificate Subject Alt Name.
Bitinerant
3
@bitinerant Der allgemeine Name wird ignoriert, wenn ein Betreff-Änderungsname vorhanden ist . Tatsächlich ist der allgemeine Name veraltet und nur das SAN ist wirklich relevant.
Yogu
3

Das C / A-Browser-Forum legt fest, was in einem Zertifikat gültig ist und was nicht und welche Zertifizierungsstellen ablehnen sollten.

Gemäß ihren Basisanforderungen für die Ausstellung und Verwaltung öffentlich vertrauenswürdiger Zertifikate dürfen Zertifizierungsstellen seit 2015 keine Zertifikate mehr ausstellen, bei denen der gemeinsame Name oder die Felder für allgemeine alternative Namen eine reservierte IP oder einen internen Namen enthalten, wobei reservierte IP-Adressen IPs sind Diese IANA wurde als reserviert aufgeführt - einschließlich aller NAT-IPs - und interne Namen sind alle Namen, die im öffentlichen DNS nicht aufgelöst werden.

Öffentliche IP-Adressen KÖNNEN verwendet werden (und das Dokument mit den Basisanforderungen gibt an, welche Arten von Überprüfungen eine Zertifizierungsstelle durchführen muss, um sicherzustellen, dass der Antragsteller die IP besitzt).

Chris Becke
quelle
0

Es hängt ganz von der Zertifizierungsstelle ab, die ein Zertifikat ausstellt.

Bei Let's Encrypt CA wird kein TLS-Zertifikat für die öffentliche IP-Adresse ausgestellt. https://community.letsencrypt.org/t/certificate-for-public-ip-without-domain-name/6082

Um Ihre Zertifizierungsstelle zu kennen, können Sie den folgenden Befehl ausführen und nach einem unten markierten Eintrag suchen.

curl -v -u <username>:<password> "https://IPaddress/.."

Geben Sie hier die Bildbeschreibung ein

Shahid Hussain
quelle