Настройка HTTPS для поддомена подстановочных знаков на локальном хосте

Я создал приложение Laravel на своей локальной машине Ubuntu. Но я хочу использовать HTTPS на всех своих дочерних поддоменах. Как я могу сделать это локально? Кстати, я добавил URL-адрес своего сайта на etc/hosts поэтому мне не нужно вводить localhost а вместо этого www.mysite.loc .

Ответьте на этот вопрос Как установить SSL на localhost в Ubuntu? , Я думаю, будет работать только в основном домене.

Нет, ответ на этот вопрос Как установить SSL на localhost в Ubuntu? работает нормально. Но вам нужно изменить несколько строк кода в файле conf .

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

В моем /etc/hosts я добавил несколько поддоменов для моего локального сайта, так как он не будет работать, даже если вы правильно настроили свой виртуальный хост, потому что сайт, на котором вы разрабатываете, еще не доступен в Интернете.

Скажем, www.mydomain.com , hello.mydomain.com , world.mydomain.com

Теперь нам нужно включить модуль SSL

sudo a2enmod ssl

Перезапустить Apache

sudo service apache2 restart

Создайте папку для самоподписанных SSL-сертификатов

sudo mkdir /etc/apache2/ssl

Создание ключа и других продуктов для SSL

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Ответьте на вопросы и используйте свой домен, скажем, mydomain.com как Common name

Теперь я редактировал файл conf моего виртуального хоста, который находится в /etc/apache2/sites-available/mydomain.com.conf

Это то, что внутри

 <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin admin@example.com ServerName www.mydomain.com ServerAlias mydomain.com *.mydomain.com DocumentRoot /home/me/projects/www/mysite_folder ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/home/me/projects/www/mysite_folder"> SSLOptions +StdEnvVars Order allow,deny Allow from all # New directive needed in Apache 2.4.3: Require all granted AllowOverride All </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> 

Если вы уже включили свой виртуальный хост, вам нужно пропустить этот шаг. Else, введите

sudo a2ensite mydomain.com.conf

Наконец, вам нужно снова перезапустить Apache

sudo service apache2 restart

Надеюсь, это поможет вам! Теперь вы можете получить доступ к своему сайту с помощью https

Ex. https://www.mydomain.com , https://hello.mydomain.com , https://world.mydomain.com