443 Stimmen

Ist es möglich, ein SSL-Zertifikat für eine IP-Adresse und nicht für einen Domänennamen zu erhalten?

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

Gibt es eine Möglichkeit, ein SSL-Zertifikat für diesen Zweck zu erhalten?

249voto

Pekka Punkte 429407

Nach Angaben von diese Antwort ist möglich, wird aber selten genutzt.

Und wie man es bekommt: Ich würde dazu tendieren, einfach zu versuchen, einen bei einem Anbieter Ihrer Wahl zu bestellen, und während des Bestellvorgangs die IP-Adresse anstelle einer Domäne anzugeben.

Eine Website auf einer IP-Adresse laufen zu lassen, um die DNS-Suche zu vermeiden, klingt für mich jedoch sehr nach unnötiger Mikro-Optimierung. Sie werden bestenfalls ein paar Millisekunden sparen, und das ist pro Besuch da DNS-Ergebnisse auf mehreren Ebenen zwischengespeichert werden.

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

87voto

regdoug Punkte 1103

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

Die Ausstellung von Zertifikaten für reservierte IP-Adressen ist nicht zulässig, und alle zuvor für reservierte IP-Adressen ausgestellten Zertifikate wurden zum 1. Oktober 2016 widerrufen.

Laut CA-Browser-Forum kann es Kompatibilitätsprobleme mit Zertifikaten für IP-Adressen geben, es sei denn, die IP-Adresse ist sowohl in der commonName y subjectAltName Felder. Dies ist auf veraltete SSL-Implementierungen zurückzuführen, die nicht mit RFC 5280 übereinstimmen, insbesondere Windows OS vor Windows 10.


Quellen:

  1. Leitfaden zu IP-Adressen in Zertifikaten CA-Browser-Forum
  2. Grundlegende Anforderungen 1.4.1 CA-Browser-Forum
  3. Der (bald) nicht mehr ganz so geläufige Name unmitigatedrisk.com
  4. RFC 5280 IETF

Hinweis: In einer früheren Version dieser Antwort hieß es, dass alle IP-Adressenzertifikate am 1. Oktober 2016 widerrufen werden würden. Vielen Dank an Navin für den Hinweis auf den Fehler.

48voto

mehulmpt Punkte 14691

Jepp. Cloudflare verwendet es für seine DNS-Anweisungen Homepage: https://1.1.1.1

41voto

Klaus Byskov Pedersen Punkte 111081

Die Antwort lautet wohl: Ja. Siehe dieser Link zum Beispiel.

Ausstellen eines SSL-Zertifikats für eine öffentliche IP-Adresse

Ein SSL-Zertifikat wird in der Regel für einen vollständig qualifizierten Domänennamen (FQDN) ausgestellt, wie z. B. " https://www.domain.com ". Einige Organisationen benötigen jedoch ein SSL-Zertifikat, das auf eine öffentliche IP-Adresse ausgestellt ist. Mit dieser Option können Sie eine öffentliche IP-Adresse als Common Name in Ihrer Certificate Signing Request (CSR) angeben. Das ausgestellte Zertifikat kann dann verwendet werden, um Verbindungen direkt mit der öffentlichen IP-Adresse zu sichern (z. B., https://123.456.78.99 .).

29voto

Josiah DeWitt Punkte 1359

Die Antwort ist ja. Kurz gesagt, es handelt sich um ein SAN-Zertifikat (Subject Alternative Name), das IPs enthält, unter denen Sie normalerweise DNS-Einträge sehen würden. Der Zertifikatstyp ist nicht auf öffentliche IPs beschränkt - diese Einschränkung wird nur von einer Unterzeichnungsstelle und nicht von der Technologie auferlegt. Ich wollte diesen Punkt nur klarstellen. Ich vermute, dass Sie einfach nur die lästige unsichere Eingabeaufforderung auf Ihren internen Websites und Geräten loswerden wollen, ohne die Kosten und den Aufwand, ihnen DNS-Namen zu geben und dann für eine Zertifizierungsstelle zu bezahlen, die alle ein oder zwei Jahre ein Zertifikat ausstellt. Sie sollten NICHT versuchen, die Welt davon zu überzeugen, dass es sich bei Ihrer IP-Adresse um eine seriöse Website handelt, und die Leute sollten sich bei der Angabe ihrer Zahlungsinformationen wohl fühlen. Nachdem wir nun festgestellt haben, warum kein seriöses Unternehmen diese Art von Zertifikat ausstellen will, können wir es selbst mit einem selbst signierten SAN-Zertifikat tun. Intern verfüge ich über ein vertrauenswürdiges Zertifikat, das auf allen unseren Hosts eingesetzt wird, dann signiere ich diese Art von Zertifikat damit und alle Geräte werden vertrauenswürdig. Dies hier zu tun, würde den Rahmen der Frage sprengen, aber ich denke, es ist für die Diskussion relevant, da Frage und Lösung Hand in Hand gehen. Um es kurz zu machen, hier ist, wie man ein individuelles selbstsigniertes SAN-Zertifikat mit IP-Adressen generiert. Erweitern Sie die IP-Liste auf Ihr gesamtes Subnetz und verwenden Sie ein Zertifikat für alles.

#!/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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X