Laradock, настройка SSL с Nginx на локальном хосте - PullRequest
0 голосов
/ 05 апреля 2020

Я уже несколько недель использую Laradock для локальной разработки, и недавно мне нужно было использовать HTTPS, чтобы Google перезвонил мне при интеграции социальных логинов.

Я занимаюсь разработкой на Windows используя WSL2 и внес изменения в мой файл hosts:

127.0.0.1 tinker-dev.com

Любые нормальные маршруты http traffi c до tinker-dev.com правильно, и я вижу свое приложение, отлично!

Я немного почитал и обнаружил, что мне нужен сертификат SSL, подписанный уполномоченным органом и поставленный на mkcert , похоже, он должен делать эту работу. После установки I cd в папку nginx/ssl, которая монтируется в каталог Laradocks nginx ssl через NGINX_SSL_PATH=./nginx/ssl/ .env var, и затем я запустил mkcert tinker-dev.com localhost 127.0.0.1 0.0.0.0 ::1, чтобы получить сертификат и ключ, которые могут быть используется для авторизации запросов от этих доменов (в результате были получены два файла: tinker-dev.com+4.pem и tinker-dev.com+4-key.pem

. Затем я изменил default.conf в sites-available, чтобы использовать следующие сертификаты:

    # For https
    listen 443 ssl;
    listen [::]:443 ssl ipv6only=on;
    ssl_certificate /etc/nginx/ssl/tinker-dev.com+4.pem;
    ssl_certificate_key /etc/nginx/ssl/tinker-dev.com+4-key.pem;

, а также измененные laradocks startup.sh для удаления блока, который автоматически генерирует сертификат SSL при загрузке (если default.crtis не найден)

#if [ ! -f /etc/nginx/ssl/default.crt ]; then
#    openssl genrsa -out "/etc/nginx/ssl/default.key" 2048
#    openssl req -new -key "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.csr" -subj "/CN=default/O=default/C=UK"
#    openssl x509 -req -days 365 -in "/etc/nginx/ssl/default.csr" -signkey "/etc/nginx/ssl/default.key" -#out "/etc/nginx/ssl/default.crt"
#fi

Затем я запустил свой контейнер и обнаружил, что в нем не было ошибок журнал, но при любом трафике c до https://tinker-dev.com трафик c не регистрировался в журнале доступа (http traffi c все еще регистрируется с использованием домена) ... Я также понял, что просто встретился с ошибкой 403 для любого https traffi c.

Я запустил nginx -T, чтобы проверить, какая конфигурация была загружена, и я вижу, что она использует мой сертификат / ключ, и если я это делаю cat /etc/nginx/ssl/tinker-dev.com+4.pem печатает сертификат, так Я уверен, что они монтируются в контейнер (тот же результат, если я ловлю ключ)

Я делаю что-то еще явно не так? Я не дьявольский человек, и все эти вещи относительно новые для меня.

...