Czy możliwe jest posiadanie certyfikatu SSL dla adresu IP, a nie nazwy domeny?

281

Chcę, aby moja strona używała adresów URL takich jak http://192.0.2.2/...i https://192.0.2.2/...do treści statycznych, aby uniknąć niepotrzebnych plików cookie w żądaniu ORAZ uniknąć dodatkowego żądania DNS.

Czy istnieje jakiś sposób na uzyskanie certyfikatu SSL w tym celu?

Evgenyt
źródło
3
To pytanie może być interesujące: możesz, ale adres IP powinien znajdować się we wpisie SAN typu adresu IP, a nie w CN podmiotowej nazwy wyróżniającej.
Bruno,
14
LetsEncrypt tego nie robi. „” „” xxxx to adres IP. Urząd certyfikacji Let's Encrypt nie wyda certyfikatów dla nagiego adresu IP. ”„ ””
kommradHomer
1
C / A Browser Forum zapewnia jeden zestaw zasad wydawania. Oczywiście następuje przeglądarka. CA / B nie zezwala już na adresy IP. Innym zestawem zasad wydawania jest IETF. PKI IETF nazywa się PKIX. PKIX zezwala na adresy IP. Po PKIX następuje większość [darmowych?] Programów, takich jak cURL i Wget. Nie mogę do końca ustalić, czy certyfikat dotyczy wersji 1.1.1.1 . Powinno być zabronione zgodnie z zasadami CA / B. Może CA / B zmieniły swoje zasady.
jww

Odpowiedzi:

169

Zgodnie z tą odpowiedzią jest to możliwe, ale rzadko używane.

Jeśli chodzi o to, jak go zdobyć: chciałbym po prostu spróbować zamówić go u wybranego przez ciebie dostawcy i wprowadzić adres IP zamiast domeny podczas procesu zamawiania.

Jednak prowadzenie witryny pod adresem IP w celu uniknięcia wyszukiwania DNS brzmi okropnie jak niepotrzebna mikrooptymalizacja. Zaoszczędzisz co najwyżej kilka milisekund, czyli na wizytę , ponieważ wyniki DNS są buforowane na wielu poziomach.

Nie sądzę, aby twój pomysł miał sens z punktu widzenia optymalizacji.

Pekka
źródło
9
AFAIK, 1 raz na minutę (pamięć podręczna DNS DNS przeglądarki Firefox) i 1 raz na 30 minut dla IE. Różni się to od TTL rekordów DNS. Ponadto zajmuje mi to około 20 ms, w zależności od domeny i szybkości serwerów NS (które należy rozwiązać najpierw :)) Chcę również uniknąć moich długich plików cookie (moje uwierzytelnianie + pliki cookie Google Analytics) dla każdego statycznego żądania. Dlatego warto korzystać z adresu IP zamiast kupować osobną domenę. BTW, stackoverflow, basecamphq używają oddzielnej domeny dla zawartości statycznej. Użycie IP zamiast tego spowoduje również usunięcie niepotrzebnych żądań DNS.
Evgenyt,
12
Absolutnie rozumiem twoje zdanie na temat ciasteczek, masz całkowitą rację. Ale przejście na SSL IP w celu zaoszczędzenia kilku ms wyszukiwania DNS wydaje mi się bardziej kłopotliwe niż warte. Ponadto możesz mieć problemy z zabraniem ze sobą adresu IP, jeśli kiedykolwiek będziesz musiał zmienić dostawcę - prawdopodobnie nie jest to możliwe. Przeniesienie domeny jest o wiele łatwiejsze i powinno być możliwe przeniesienie certyfikatu za jej pomocą w połowie drogi.
Pekka
2
Narzędzie Google Page Speed ​​zawsze sugeruje: „Podaj następujące zasoby JavaScript z tego samego hosta, co główny dokument (xxxx.com), lub jeśli to możliwe, odrocz ładowanie tych zasobów”. Nie oceniam narzędzia Page Speed ​​jako biblii, ale w każdym razie oznacza to, że nie wymyśliłem optymalizacji DNS. Po prostu staram się, aby moja lista kontrolna prędkości strony była zielona tam, gdzie to możliwe.
Evgenyt,
11
@Evgenyt: Nie sądzę, że dzieje się tak z powodu wyszukiwania DNS, które, jak wspomniano, jest buforowane na tak wielu poziomach, że nie może to stanowić problemu z wydajnością. Bardziej prawdopodobne jest umożliwienie przeglądarkom przesyłania potoków. Utrzymywanie połączenia z hostem otwartym, unikając w ten sposób konfiguracji dodatkowych połączeń.
vdstw
5
Zgadzam się z odpowiedzią. Znaleźliśmy również problem z taką konfiguracją. Okazało się, że przeglądarka Chrome (39.0.2171.93) w systemie Android (4.4,5.0; działa w wersji 4.0.4) nie odtwarza plików audio przez HTTPS, jeśli adres IP jest używany jako cel certyfikatu. Użyliśmy takiej konfiguracji w naszym środowisku testowym, ale zaczniemy używać nazw domen.
ENargit
58

Krótka odpowiedź brzmi „tak”, o ile jest to publiczny adres IP.

Wydawanie certyfikatów na zastrzeżone adresy IP jest niedozwolone, a wszystkie certyfikaty wcześniej wydane na zastrzeżone adresy IP zostały unieważnione z dniem 1 października 2016 r.

Według forum CA Browser mogą wystąpić problemy ze zgodnością certyfikatów dla adresów IP, chyba że adres IP znajduje się zarówno w polach, jak commonNamei subjectAltName. Wynika to z wcześniejszych implementacji SSL, które nie są dostosowane do RFC 5280, w szczególności systemu operacyjnego Windows wcześniejszego niż Windows 10.


Źródła:

  1. Wskazówki dotyczące adresów IP na certyfikatach Forum przeglądarki CA
  2. Wymagania podstawowe 1.4.1 CA Browser Forum
  3. (Niedługo będzie) nazwa zwyczajowa unmitigatedrisk.com
  4. RFC 5280 IETF

Uwaga: we wcześniejszej wersji tej odpowiedzi stwierdzono, że wszystkie certyfikaty adresów IP zostaną unieważnione 1 października 2016 r. Dziękujemy Navin za wskazanie błędu.

regdoug
źródło
5
Nieprawda, globalsign nadal wydaje certyfikaty dla adresów IP. Forum urzędów certyfikacji / przeglądarki nie lubi widzieć prywatnych adresów IP w certyfikatach, ale nie ma nic przeciwko publicznym adresom IP.
Navin
1
Wygląda na to, że moje informacje mogą być nieaktualne. Przyjrzę się temu dokładniej, a następnie poprawię, jeśli masz rację.
regdoug
Nieprawda, spojrzenie na 1.1.1.1 one uzyskać cert SSL dla IP w 2019 roku i obowiązuje do 2021 z DigiCert
brązu człowieka
@bronzeman, który jest publicznym adresem IP, więc tak, możesz uzyskać dla niego certyfikat. Jedynymi adresami, które nie mogą zostać wydane, są en.wikipedia.org/wiki/Reserved_IP_addresses
regdoug
@DustWolf, zgodnie z RFC 5280, „Gdy rozszerzenie subjectAltName zawiera iPAddress, adres MUSI być zapisany w ciągu oktetów w„ kolejności bajtów sieciowych ”, jak określono w [RFC791]. ... Dla wersji IP 4 ... ciąg oktetów MUSI zawierać dokładnie cztery oktety. ” Krótko mówiąc, nie możesz użyć podsieci w polu subjectAltName
regdoug
31

Chyba odpowiedź brzmi: tak. Sprawdź na przykład ten link .

Wydawanie certyfikatu SSL na publiczny adres IP

Certyfikat SSL jest zazwyczaj wydawany w pełni kwalifikowanej nazwie domeny (FQDN), takiej jak „ https://www.domain.com ”. Jednak niektóre organizacje potrzebują certyfikatu SSL wydanego na publiczny adres IP. Ta opcja umożliwia określenie publicznego adresu IP jako nazwy pospolitej w żądaniu podpisania certyfikatu (CSR). Wydany certyfikat można następnie wykorzystać do zabezpieczenia połączeń bezpośrednio z publicznym adresem IP (np . Https://123.456.78.99 .).

Klaus Byskov Pedersen
źródło
5
Czy to działa również ze statycznym prywatnym adresem IP? Jak dla sieci LAN?
Pan Bonjour
@Klaus Byskov Pedersen Czy możesz podać mi zasoby, jak to zrobić?
reyhane
2
@ShivSingh Wszelkie źródła? Nie sądzę, aby jakikolwiek znany urząd certyfikacji wystawiłby certyfikat na prywatny adres IP.
Franklin Yu,
22

Tak. Cloudflare używa go do strony głównej instrukcji DNS: https://1.1.1.1

mehulmpt
źródło
8
To nie do końca tak wygląda. Jeśli sprawdzisz certyfikat, Common Namepole jest cloudflare-dns.comi 1.1.1.1jest wymienione tylko pod Certificate Subject Alt Name.
bitinerant
3
@bitinerant nazwa zwyczajowa zostanie zignorowana, jeśli obecna jest nazwa alternatywna podmiotu . W rzeczywistości nazwa pospolita jest przestarzała i tylko SAN jest naprawdę istotna.
Yogu,
3

Forum przeglądarki C / A ustala, co jest i nie jest ważne w certyfikacie, a co CA powinien odrzucić.

Zgodnie z dokumentem dotyczącym podstawowych wymagań w zakresie wydawania i zarządzania publicznie zaufanymi certyfikatami urzędy certyfikacji nie mogą od 2015 r. Wydawać certyfikatów, w których pola nazwa zwyczajowa lub nazwa alternatywna zawierają zastrzeżone IP lub nazwę wewnętrzną, gdzie zastrzeżone adresy IP to IP które IANA wymieniła jako zastrzeżone - w tym wszystkie adresy IP NAT - a nazwy wewnętrzne to wszelkie nazwy, które nie są rozpoznawane w publicznym DNS.

MOŻNA użyć publicznych adresów IP (a dokument wymagań podstawowych określa, jakie rodzaje kontroli musi przeprowadzić urząd certyfikacji, aby upewnić się, że wnioskodawca jest właścicielem adresu IP).

Chris Becke
źródło
0

Zależy to całkowicie od urzędu certyfikacji, który wydaje certyfikat.

Jeśli chodzi o Let's Encrypt CA, nie wydają certyfikatu TLS na publiczny adres IP. https://community.letsencrypt.org/t/certificate-for-public-ip-without-domain-name/6082

Aby poznać swój urząd certyfikacji, możesz wykonać następujące polecenie i poszukać wpisu oznaczonego poniżej.

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

wprowadź opis zdjęcia tutaj

Shahid Hussain
źródło