我在本地的Ubuntu机器上创建了一个Laravel
应用程序。但我想在其所有通配符子域上使用HTTPS
。我怎么能在本地这样做?顺便说一句,我已在etc/hosts
上添加了我的网站网址,因此我无需输入localhost
,而是www.mysite.loc
。
回答这个问题How can I install SSL on localhost in Ubuntu?,我认为只适用于主域名。
答案 0 :(得分:2)
不,这个问题How can I install SSL on localhost in 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>
如果您已启用虚拟主机,则需要跳过此步骤。否则,输入
sudo a2ensite mydomain.com.conf
最后,您需要通过
重新启动Apache sudo service apache2 restart
希望它对你有所帮助!您现在可以使用https
实施例。 https://www.mydomain.com
,https://hello.mydomain.com
,https://world.mydomain.com