Якщо ви хочете протестувати службовців на клієнтському пристрої, який не може запустити веб-сервер на localhost, загальний прийом такий:
- Дайте своєму серверу ім’я хосту.
- Дайте цьому імені хоста сертифікат.
- Змусьте IP-адреси довіряти CA, який видав цей сертифікат.
Але це простіше сказати, ніж зробити. У листопаді 2016 року AMA на Reddit, представник Let's Encrypt визнав, що HTTPS у приватній локальній мережі "є справді складним питанням, і я думаю, що дотепер ніхто не запропонував задовільної відповіді".
Поширені способи присвоєння вашому комп'ютеру імені хосту включають надання стабільної внутрішньої IP-адреси, а не тієї, яка змінюється щодня або кожного разу, коли ви включаєте пристрій Інтернет-шлюзу. Вам потрібно буде налаштувати DHCP-сервер у вашій мережі, як правило, у вашому шлюзі, щоб встановити "резервування", яке пов'язує певну приватну адресу (зазвичай в межах 10/8
або 192.168/16
) з MAC-адресою Ethernet-картки вашої робочої станції розробки. Для цього прочитайте посібник вашого шлюзу.
Тепер, коли ваша робоча станція розробника має стабільну IP-адресу, існує компроміс між часом і грошима. Якщо ви бажаєте вивчити вдосконалене використання DNS та OpenSSL та встановити кореневий сертифікат на всіх пристроях, з якими ви плануєте тестувати:
- Запустіть внутрішній DNS-сервер у своїй мережі. Це може бути на вашому шлюзі або на робочій станції розробника.
- Налаштуйте ваш DNS-сервер як авторитетний для деяких складених TLD та рекурсивний для інших TLD.
- Надайте стабільне ім’я приватній IP-адресі робочої станції розробки. Це дає йому внутрішню назву.
- Налаштуйте ваш DHCP-сервер, щоб надати адресу цього DNS-сервера іншим пристроям, які отримують договори оренди.
- На робочій станції розробки використовуйте OpenSSL для створення пар ключів для приватного сертифікації та веб-сервера.
- За допомогою OpenSSL видайте кореневий сертифікат для ЦС та сертифікат для внутрішнього імені веб-сервера.
- Налаштуйте HTTPS на веб-сервері на робочій станції розробника, використовуючи цей сертифікат.
- Встановіть кореневий сертифікат ЦС як надійний кореневий сертифікат на всіх пристроях.
- На всіх пристроях отримайте доступ до цього внутрішнього імені.
Якщо ви не можете додати кореневий сертифікат або керувати локальним DNS, наприклад, якщо ви плануєте тестувати на пристроях, що належать іншим (BYOD), або з більш заблокованими браузерами, які не дозволяють користувачам додавати надійні кореневі сертифікати, такі як основні відеоігрових консолей, вам знадобиться повністю кваліфіковане доменне ім’я (FQDN):
- Придбайте домен у реєстратора, який пропонує DNS із API . Це може бути безпосередньо в TLD або у одного з динамічних постачальників DNS, який потрапив до списку публічних суфіксів. (Постачальники динамічних DNS, що не належать до PSL, неприйнятні через обмеження швидкості, встановлені програмою Let's Encrypt .)
- У файлі зони цього домену наведіть курсор на
A
запис на приватну IP-адресу робочої станції розробника. Це надає вашій робочій станції розробки повне доменне ім’я.
- Використовуйте Dehydrated , клієнт ACME, який підтримує
dns-01
виклик, щоб отримати сертифікат для цього FQDN від центру сертифікації Let's Encrypt.
- Налаштуйте HTTPS на веб-сервері на робочій станції розробника, використовуючи цей сертифікат.
- На всіх пристроях отримайте доступ до цього імені.