Бывают случаи, когда вам нужно использовать HTTPS локально при разработке с помощью webpack. Например, вы можете разрабатывать расширение для Chrome, используя сервер разработки webpack для горячей перезагрузки при внесении изменений. Проблема заключается в том, что ваши сценарии контента не будут загружаться на HTTPS-сайты, и вы получите сообщение об ошибке, похожее на приведенный ниже фрагмент кода.
Webpack-Dev-Server constructs improper SockJS: "An insecure SockJS connection may not be initiated from a page loaded over HTTPS"
Решение состоит в том, чтобы создать локальный центр сертификации (ЦС) в корне вашей системы. Вы можете использовать mkcert для создания ЦС, как показано ниже.
Установите mkcert на macOS с помощью Homebrew
Для других операционных систем ознакомьтесь с руководством по установке mkcert здесь.
brew install mkcert
Запустите команду mkcert, чтобы создать новый локальный ЦС.
mkcert -install
Запустите приведенную ниже команду, чтобы сгенерировать сертификат для хоста, который вы используете локально, например, localhost.
mkcert localhost 127.0.0.1
Команда выведет имя файлов, сгенерированных в терминале. Ниже приведен пример такого вывода
The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
Обновить конфиг вебпака
Затем вы должны вернуться на свой сервер разработки веб-пакетов и добавить следующую конфигурацию для использования сгенерированных файлов.
https: { key: readFileSync('path-to-/+1-key.pem')), cert: readFileSync('path-to/+1.pem>')), ca: readFileSync('path-to/rootCA.pem')), }
Вы можете найти путь к вашему rootCA.pem
файлу, выполнив команду ниже
mkcert -CAROOT
Приложение в браузере
После внесения всех изменений запустите сервер разработки webpack, перейдите в браузер и откройте свой локальный хост, и вы убедитесь, что сайт будет безопасным, как показано ниже.
Надеюсь, вам понравилось читать эту статью!