php - 在本地主机上的通配符子域上设置 HTTPS

标签 php apache .htaccess ssl laravel

我已经在本地 Ubuntu 机器上创建了一个 Laravel 应用程序。但我想在其所有外卡子域上使用 HTTPS。我如何在本地执行此操作?顺便说一下,我已经在 etc/hosts 上添加了我的站点 URL,所以我不需要键入 localhost 而是 www.mysite.loc.

这个问题的答案How can I install SSL on localhost in Ubuntu? ,我认为只适用于主域。

最佳答案

没有,这个问题的答案How can I install SSL on localhost in Ubuntu?工作正常。但是您需要修改 conf 文件中的几行代码。

我现在设法尝试并运行良好,但我从浏览器收到这条令人恼火的消息,提示我正在访问的网站不安全。虽然没关系,因为它只是自签名证书。

在我的 /etc/hosts 中,我为我的本地站点添加了几个子域,因为即使您正确配置了虚拟主机,它也不会工作,因为您开发的站点还不能在线访问。

例如,www.mydomain.comhello.mydomain.comworld.mydomain.com

现在,我们需要启用SSL模块

sudo a2enmod ssl

重启 Apache

sudo service apache2 restart

为自签名 SSL 证书创建一个文件夹

sudo mkdir/etc/apache2/ssl

为 SSL 生成 key 和其他内容

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

关于php - 在本地主机上的通配符子域上设置 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26929781/

相关文章:

php - WooCommerce 添加到购物车自定义重定向特定产品 ID

apache - Apache hadoop版本

php.ini 不允许我禁用_functions

php - Laravel (v5.2.45) 播种器和双引号

php - 遍历 mysql 表中的列以查找特定单词

c# - 在 .NET 中进行 URL 重写的最简单方法

php - Index.php 作为自定义错误页面

php - 我应该为动态 RSS 使用什么文件扩展名

php - MySQL 不会选择相同的 id 两次

apache2.service : Failed to run 'start' task: No such file or directory