Используете ли вы HTTPS в разработке?
Используете ли вы HTTPS в веб-разработке?
Вы определенно должны! И я надеюсь, что эта статья убедит вас, что это хорошая идея. Ниже вы найдете все, что вам нужно для начала.
Последовательность
Как показывает опыт, всегда рекомендуется разрабатывать в той же среде, что и для развертывания. В мире веб-разработки это означает две основные вещи: браузер и протокол. В настоящее время HTTPS используется повсеместно, и современные браузеры предоставляют некоторые функции только для HTTPS; рано или поздно HTTP перестанет использоваться. Скорее всего, разрабатываемое вами веб-приложение будет обслуживаться через HTTPS при развертывании.
Имея это в виду, рекомендуется использовать HTTPS в разработке.
Но как?
Если вы используете веб-бандер, включить HTTPS довольно просто.
Если нет, решение состоит в том, чтобы использовать несколько действительных цифровых сертификатов и настроить веб-сервер для их использования.
Давайте посмотрим, как мы можем это сделать.
Сертификаты
Одно решение
Сначала вам нужно сгенерировать несколько сертификатов (которые будут работать только на вашем компьютере). я недавно нашел этот удивительный инструмент. После установитьвам нужно будет запустить 2 команды:
$ mkcert -install
$ mkcert example.com "*.example.org" myapp.dev localhost 127.0.0.1 ::1
Первая строка создает локальный ЦС (центр сертификации). Когда вы развернете конечный продукт, вам придется купить сертификат у доверенного стороннего ЦС.
Вторая линия создает сертификат для вставленных имен хостов, используя ранее созданный ЦС.
Другие решения
- одно решение, о котором я знаю, использует OpenSSL, но я не исследовал его подробно; не стесняйтесь проводить собственные исследования и эксперименты
Настройка веб-сервера
Настройка довольно проста на Apache и NGINX. Короче говоря, вам нужно включить SSL и указать Apache/NGINX, где найти сертификаты, которые вы создали с помощью второй команды mkcert. Вот и все.
Я подробно опишу настройку для Apache. NGINX должен быть таким же и простым в использовании.
- Раскомментируйте эти строки в
httpd/https.conf
LoadModule socache_shmcb_module lib/httpd/modules/mod_socache_shmcb.so
...
LoadModule ssl_module lib/httpd/modules/mod_ssl.so
...
Include /usr/local/etc/httpd/extra/httpd-ssl.conf
- Убедитесь, что Apache прослушивает 443 для HTTPS-запросов. Проверять
httpd/extra/httpd-ssl.conf
.
Listen 443
...
<VirtualHost _default_:443>
- В том же файле прокомментируйте эти 2 строки внутри
<VirtualHost>
ярлык
# DocumentRoot "/Library/WebServer/Documents"¬
# 125 ServerName www.example.com:443¬
- Настройте свой виртуальный хост в этом файле
httpd/extra/httpd-vhosts.conf
<VirtualHost *:443>
DocumentRoot "_website/location_"
ServerName localhost
SSLEngine on
SSLCertificateFile "_mkcert/generated/certificate_"
SSLCertificateKeyFile "_mkcert/generated/key_"
</VirtualHost>
- Проверьте свою конфигурацию и перезапустите apache с помощью этих команд.
$ sudo apachectl configtest
$ sudo apachectl -k restart
Это все
Надеюсь, вам понравилась эта тема.
Код включен!