Использование HTTPS с PHP в вашей локальной среде разработки: руководство для начинающих

Привет, коллега-разработчик! Итак, вы хотите обслуживать свое PHP-приложение через HTTPS в локальной среде разработки? Это блестящая идея! В этой статье мы рассмотрим несколько способов добиться этого, гарантируя, что ваша локальная установка разработки безопасна и поддерживает зашифрованные соединения. Давайте погрузимся!

Метод 1: использование самозаверяющего сертификата
Один из самых простых способов включить HTTPS на локальном PHP-сервере — создать самозаверяющий сертификат. Этот метод подходит для целей разработки, но имейте в виду, что самозаверяющие сертификаты не пользуются доверием браузеров и будут вызывать предупреждения системы безопасности. Вот как это можно сделать:

  1. Создать самоподписанный сертификат SSL:

    openssl req -x509 -newkey rsa:4096 -nodes -keyout server.key -out server.crt -days 365
  2. Настройте PHP-сервер на использование сгенерированного сертификата:

    $options = array(
       'ssl' => array(
           'local_cert' => '/path/to/server.crt',
           'local_pk' => '/path/to/server.key',
       ),
    );
    stream_context_set_option($context, $options);

Метод 2: использование такого инструмента, как mkcert
Если вы предпочитаете более упрощенный подход, вы можете использовать такой инструмент, как mkcert ( https://github.com/FiloSottile/mkcert ), для создания локально доверенных сертификатов. mkcert автоматизирует процесс создания локального центра сертификации (CA) и выдачи сертификатов. Вот как его использовать:

  1. Установите mkcert, следуя инструкциям в репозитории.

  2. Создайте локальный центр сертификации и установите его:

    mkcert -install
  3. Создайте сертификат для локального PHP-сервера:

    mkcert localhost
  4. Настройте PHP-сервер на использование сгенерированного сертификата, аналогично методу 1.

Метод 3: использование обратного прокси
Другой подход заключается в настройке обратного прокси-сервера, который обрабатывает завершение SSL и перенаправляет запросы на ваш PHP-сервер. Этот метод позволяет использовать сертификат SSL, выданный доверенным центром сертификации. Вот пример использования Nginx в качестве обратного прокси:

  1. Установите и настройте Nginx в качестве обратного прокси-сервера.

  2. Получите SSL-сертификат для вашего локального домена (например, example.local), используя центр сертификации, например Let’s Encrypt.

  3. Настройте Nginx для прокси-запросов на ваш PHP-сервер:

    server {
       listen 443 ssl;
       server_name example.local;
       ssl_certificate /path/to/fullchain.pem;
       ssl_certificate_key /path/to/privkey.pem;
       location / {
           proxy_pass http://localhost:8000;  # Forward requests to your PHP server
       }
    }

Имея в своем распоряжении эти методы, вы теперь можете обслуживать свое PHP-приложение через HTTPS в локальной среде разработки. Помните, что крайне важно убедиться, что ваш рабочий сервер имеет действительный сертификат SSL от доверенного центра сертификации.

На этом всё, ребята! Удачного программирования и будьте в безопасности!