Я создал приложение 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