Значит что мы получили. Самый частый вариант mkcert. Эта штука позволяет одной командой сгенерить самоподписные доверенные сертификаты под нужные домены. Действительно удобно, если сертификат нужен доверенный.
mkcert -install
Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊
$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
Created a new certificate valid for the following names 📜
- "example.com"
- "*.example.com"
- "example.test"
- "localhost"
- "127.0.0.1"
- "::1"
The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem"
Эта штука решает проблему сертификатов, но но решеает проблему конфигурации веб-сервера. Дальше все равно придется гуглить как это подключить к проекту и ставить перед ним например nginx.
Другой вариант это туннелирование с помощью ngrok.io, и аналогов. Хороший вариант, заодно позволяет дать доступ к проекту снаружи для взаимодействия с другими системами и тестирования. Большая часть таких утилит работает только если у вас есть интренет, хотя там подсказали https://www.localcan.com/ который умеет и локальный сетап (выглядит кстати круто). Мы кстати, конкретно для хекслета решили просто вести разработку в облаках, я даже на конфе выступал с таким докладом: https://www.youtube.com/watch?v=WVjz0HcAWOs
Дальше была куча разного рода устаревших штук (которые не обновляются) + те кто по старинке в рукопашную. Видимо когда-то научились и так продолжают.
Ну и последний вариант, которым я пользуюсь уже лет пять, это использование веб-сервера Caddy для локальной разработки. Этот вариант, кстати, возможно самый популярный судя по ответам. Тут все максимально просто, вот пример конфигурации code-basics.com, где за сертификат отвечает ровно одна строчка.
https://code-basics.test {
# Enable gzip and other compression
encode gzip zstd
reverse_proxy /vite-dev/* http://127.0.0.1:3036
reverse_proxy http://127.0.0.1:3100
# Automatic HTTPS
tls internal
}
Класс, да? Ничего не надо генерировать. Все делается само. Единственный недостаток, это то, что сетификат не доверенный. Придется в браузере жмякать “все равно зайти” (сафари по дефолту не дает так сделать).
p.s. Кстати, вы знаете почему использовать .local для локальной разработки нельзя? Правильно .test
Ссылки: Телеграм | Youtube | VK