Чи можливо мати сертифікат SSL для IP-адреси, а не доменного імені?


282

Я хочу, щоб мій сайт використовував такі URL-адреси, як http://192.0.2.2/...і https://192.0.2.2/...для статичного вмісту, щоб уникнути зайвих файлів cookie у запиті І уникати додаткового запиту DNS.

Чи є спосіб отримати SSL cert для цієї мети?


3
Це питання може зацікавити: ви можете, але IP-адреса повинна бути введена в SAN типів IP-адреси, а не в CN суб'єкта DN.
— Бруно

14
LetsEncrypt не робить цього. "" "" xxxx - IP-адреса. Орган сертифікатів Let Encrypt не видаватиме сертифікати на голу IP-адресу. "" "
— kommradHomer

1
C / Browser Forum пропонує один набір політик видачі. Очевидно, за ним слідують браузери. CA / B більше не дозволяє IP-адреси. Інший набір політик видачі підтримує IETF. PKI IETF називається PKIX. PKIX дозволяє IP-адреси. PKIX супроводжується більшістю [вільного?] Програмного забезпечення, наприклад, CURL та Wget. Я не можу зовсім розібратися в серті для 1.1.1.1 . Це повинно бути заборонено відповідно до політики CA / B. Можливо, CA / B змінили свою політику.
— jww

Відповіді:


170

Відповідно до цієї відповіді , це можливо, але рідко використовується.

Щодо того, як його отримати: я б схильний просто спробувати замовити його у постачальника, який ви обрали, і ввести IP-адресу замість домену під час замовлення.

Однак запуск сайту за IP-адресою, щоб уникнути пошуку DNS, виглядає жахливо, як непотрібна мікрооптимізація для мене. Ви заощадите кілька мілісекунд у кращому випадку, і це за візит , оскільки результати DNS кешуються на кількох рівнях.

Я не думаю, що ваша ідея має сенс з точки зору оптимізації.


9
AFAIK, 1 раз на хвилину (кеш-пам'ять DNS Firefox) та 1 раз на 30 хвилин для IE. Це відрізняється від TTL записів DNS. Крім того, це займає приблизно 20 мс для мене, залежно від домену та швидкості NS-серверів (які також потрібно вирішити спочатку :)) Я також хочу уникати своїх тривалих файлів cookie (мої auth + файли cookie Google Analytics) для кожного статичного запиту. Тож використання ІР замість придбання окремого домену добре. BTW, stackoverflow, basecamphq використовують окремий домен для статичного вмісту. Використання IP-адреси також видалить непотрібні запити DNS.
— Євгеніт

12
Я абсолютно бачу вашу думку з печивом, ви абсолютно праві. Але для переходу на SSL IP для збереження кількох мс пошуку DNS звучить для мене більше клопоту, ніж варто. Крім того, у вас можуть виникнути проблеми з прийняттям вашого IP-адреси, якщо вам доведеться колись змінити свого постачальника - це, мабуть, неможливо. Переміщення домену набагато простіше, і слід перемістити сертифікат за допомогою нього наполовину легко.
— Pekka

2
Інструмент "Швидкість сторінки" завжди пропонує "Показувати наступні ресурси JavaScript з того самого хоста, що і основний документ (xxxx.com), або відкладати завантаження цих ресурсів, якщо можливо". Я не оцінюю інструмент Page Speed ​​Speed ​​як біблію, але все одно це означає, що оптимізація DNS не була придумана мною. Я просто намагаюся зробити мій перелік сторінки швидкості зеленим, де це можливо.
— Євгеніт

11
@Evgenyt: Я не думаю, що це через пошук DNS, який, як зазначено, кешований на стільки рівнях, що це не може бути проблемою продуктивності. Швидше за все, це дозволяє браузерам надавати свої запити. Тримайте з'єднання з хостом відкритим, таким чином уникаючи налаштування додаткових з'єднань.
— vdstw

5
Я згоден з відповіддю. Також ми знайшли проблему з такою конфігурацією. Виявилось, браузер Chrome (39.0.2171.93) на ОС Android (4.4,5.0; працює на 4.0,4) не відтворює аудіофайли через HTTPS, якщо IP адреса використовується як ціль сертифіката. Ми використовували таку конфігурацію для тестового середовища, але почнемо використовувати доменні імена.
— ENargit

58

Коротка відповідь - так, якщо це загальнодоступна IP-адреса.

Видача сертифікатів на зарезервовані IP-адреси не дозволяється, і всі сертифікати, раніше видані на зарезервовані IP-адреси, були відкликані станом на 1 жовтня 2016 року.

За даними форуму браузера CA, можуть виникнути проблеми сумісності із сертифікатами для IP-адрес, якщо IP-адреса не в обох полях commonNameта subjectAltName. Це пов’язано зі застарілими реалізаціями SSL, які не узгоджуються з RFC 5280, зокрема, ОС Windows до Windows 10.


Джерела:

  1. Керівництво щодо IP-адрес на форумі веб-переглядачів сертифікатів
  2. Базові вимоги 1.4.1 Форум браузера CA
  3. Загальна назва unmitigatedrisk.com (не скоро)
  4. RFC 5280 IETF

Примітка: в попередній версії цієї відповіді було зазначено, що 1 серпня 2016 року всі сертифікати IP-адреси будуть відкликані. Дякую Navin за вказівку на помилку.


5
Неправда, глобальний знак все ще видає сертифікати для IP-адрес. Орган з сертифікатів / браузерний форум не любить бачити приватні IP-адреси в certs, але не має нічого проти публічних IP-адрес.
— Навін

1
Схоже, моя інформація може застаріти. Я детальніше розгляну його, а потім відредагую його, якщо ви маєте рацію.
— регдуг

Неправда, подивіться на 1.1.1.1 Вони отримують сертифікат SSL для ip у 2019 році та дійсний до 2021 року від DigiCert
— бронзової людини

@bronzeman, що є загальнодоступною IP-адресою, так, так, ви можете отримати сертифікат на нього. Єдині адреси, на які не може бути видано сертифікат, - en.wikipedia.org/wiki/Reserved_IP_addresses
— regdoug

@DustWolf, за RFC 5280, "Коли розширення subjectAltName містить iPAddress, адресу ОБОВ'ЯЗКОВО зберігати в рядку октет у" порядку байтів мережі ", як зазначено в [RFC791]. ... Для IP версії 4 ..., рядок октет ПОВИНЕН містити рівно чотири октети. " Словом, ви не можете використовувати підмережу в полі subjectAltName
— regdoug

31

Я думаю, відповідь - так. Наприклад, перевірте це посилання .

Видача SSL-сертифіката на публічну IP-адресу

Сертифікат SSL зазвичай видається повністю кваліфікованому доменному імені (FQDN), наприклад " https://www.domain.com ". Однак деяким організаціям потрібен сертифікат SSL, виданий на загальнодоступну IP-адресу. Цей параметр дозволяє вказати загальнодоступну IP-адресу як загальну назву у Вашому запиті на підпис сертифіката (CSR). Потім виданий сертифікат може використовуватися для захисту з'єднань безпосередньо із загальнодоступною IP-адресою (наприклад, https://123.456.78.99 .).


5
Чи працює це занадто зі статичним приватним IP? Як для локальної мережі?
— Містер Бонжур

@Klaus Byskov Pedersen Чи не могли б ви надати мені ресурс, як це зробити?
— reyhane

2
@ShivSingh Будь-яке джерело? Я не думаю, що жоден відомий КА видав би сертифікат на приватну IP-адресу.
— Франклін Ю

22

Так. Cloudflare використовує його для домашньої сторінки інструкцій DNS: https://1.1.1.1


8
Це не зовсім те, що здається. Якщо ви оглядаєте cert, Common Nameполе є cloudflare-dns.comі 1.1.1.1вказане лише під Certificate Subject Alt Name.
— бітірант

3
@bitinerant Загальне ім'я буде ігноровано, якщо присутнє ім'я Alterntive Subject . Насправді загальна назва застаріла, і лише SAN є дійсно актуальним.
— Йогу

3

Форум браузера C / A встановлює, що є, а що недійсно в сертифікаті, а те, що ЦО слід відхилити.

Відповідно до їх базових вимог щодо видачі та управління сертифікатами, що публічно довіряються , сертифікати з 2015 року не повинні видавати посвідчення, де загальне ім’я або загальні поля альтернативних імен містять зарезервований IP або внутрішнє ім’я, де зарезервовані IP-адреси - це IP-адреси що IANA вказала як зарезервоване - що включає всі NAT IP - і внутрішні назви - це будь-які імена, які не вирішуються на загальнодоступній DNS.

Можливо використовувати загальнодоступні IP-адреси (і док. Вимог до документа вказує, які види перевірок повинен здійснювати АС, щоб переконатися, що заявник володіє IP-адресою).


0

Це повністю залежить від Органу сертифікації, який видає сертифікат.

Що стосується Let’s Encrypt CA, вони не будуть видавати сертифікат TLS на загальнодоступну IP-адресу. https://community.letsencrypt.org/t/certificate-for-public-ip-without-domain-name/6082

Щоб знати ваш авторитетний сертифікат, ви можете виконати наступну команду та шукати запис, позначений нижче.

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

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.