Назад | Перейти на главную страницу

Не удается настроить домен и субдомен локально с помощью SSL

У меня есть следующая конфигурация моего локального сервера Apache:

<VirtualHost mysite.local:443>
    ServerName mysite.local
    SSLEngine on
    SSLCertificateFile "/Users/graziano/Projects/mysite/ssl/mysite.local.pem"
    SSLCertificateKeyFile "/Users/graziano/Projects/mysite/ssl/mysite.local-key.pem"
    SSLProxyEngine On   
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
</VirtualHost>

<VirtualHost access.mysite.local:443>
    ServerName access.mysite.local
    DocumentRoot "/Users/graziano/Projects/mysite/mysite-backend"
    SSLEngine on
    SSLCertificateFile "/Users/graziano/Projects/mysite/ssl/access.mysite.local.pem"
    SSLCertificateKeyFile "/Users/graziano/Projects/mysite/ssl/access.mysite.local-key.pem"         
</VirtualHost>

Вот мои хозяева:

127.0.0.1 localhost
127.0.0.1 mysite.local
127.0.0.1 access.mysite.local

Я создал файлы сертификатов, используя этот фантастический инструмент.

Когда я приезжаю https://mysite.local, Я правильно перенаправлен на localhost:3000 (который обслуживает приложение Next.js), но если я нажму https://access.mysite.local (это установка Wordpress) Google Chrome жалуется, что соединение небезопасно:

NET::ERR_CERT_COMMON_NAME_INVALID

Если я переверну два VirtualHost директивы, т.е. переместить нижнюю на верхнюю и наоборот, затем https://access.mysite.local работает, но потом https://mysite.local нет и дает ту же ошибку выше.

Мне нужно выполнить эту работу, чтобы проверить файлы cookie аутентификации, используемые приложением Next.js и установкой Wordpress.

Если вам нужно простое перенаправление, лучше сделать это следующим образом и пропустить запрос mod_proxy:
Перенаправление 301 / https: // локальный: 3000 /

В противном случае эта строка не требуется:
ProxyPassReverse / http: // локальный: 3000 /

На вашем удаленном сервере (localhost: 3000) вы, вероятно, захотите добавить следующую строку в свою конфигурацию vhost:
SetEnvIf X-Forwarded-Proto https HTTPS = on

На своем прокси вы можете добавить следующие строки:
ProxyPreserveHost On
RequestHeader устанавливает X-Forwarded-Proto "https"

Я также предлагаю прочитать этот пост:
Как я могу проверить, является ли мой сервер Apache открытым прокси?

Что касается конфигурации вашего виртуального хоста:
Я бы заменил mysite.local и access.mysite.local на * или IP-адрес (например, 127.0.0.1) в первой строке, сделав iit:

<VirtualHost *:443>


Затем перезагрузите Apache ...