我已经使用mkcert创建了具有有效 HTTPS/SSL 证书的无限 *.dev.net 子域和本地主机(Windows 10 XAMPP和 Linux Debian 10 Apache2)
我使用 mkcert v1.4.0 在 Windows 上创建证书(以管理员身份执行 CMD):
mkcert -install
mkcert localhost "*.dev.net"
这将在 Windows 10 中创建此文件(我将首先在 Windows 10 XAMPP 中安装它)
localhost+1.pem
localhost+1-key.pem
覆盖 XAMPP 默认证书:
copy "localhost+1.pem" C:\xampp\apache\conf\ssl.crt\server.crt
copy "localhost+1-key.pem" C:\xampp\apache\conf\ssl.key\server.key
现在,在 Apache2 for Debian 10 中,激活 SSL 和 vhost_alias
a2enmod vhosts_alias
a2enmod ssl
a2ensite default-ssl
systemctl restart apache2
对于 vhost_alias 添加这个 Apache2 配置:
nano /etc/apache2/sites-available/999-vhosts_alias.conf
有了这个内容:
<VirtualHost *:80>
UseCanonicalName Off
ServerAlias *.dev.net
VirtualDocumentRoot "/var/www/html/%0/"
</VirtualHost>
添加站点:
a2ensite 999-vhosts_alias
通过 SSH 将证书复制到 /root/mkcert 并覆盖 Debian 证书:
systemctl stop apache2
mv /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/ssl/certs/ssl-cert-snakeoil.pem.bak
mv /etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/private/ssl-cert-snakeoil.key.bak
cp "localhost+1.pem" /etc/ssl/certs/ssl-cert-snakeoil.pem
cp "localhost+1-key.pem" /etc/ssl/private/ssl-cert-snakeoil.key
chown root:ssl-cert /etc/ssl/private/ssl-cert-snakeoil.key
chmod 640 /etc/ssl/private/ssl-cert-snakeoil.key
systemctl start apache2
编辑 SSL 配置
nano /etc/apache2/sites-enabled/default-ssl.conf
在开始时使用以下内容编辑文件:
<IfModule mod_ssl.c>
<VirtualHost *:443>
UseCanonicalName Off
ServerAlias *.dev.net
ServerAdmin webmaster@localhost
# DocumentRoot /var/www/html/
VirtualDocumentRoot /var/www/html/%0/
...
上次重启:
systemctl restart apache2
注意:不要忘记在 /var/www/html/ 中为您的子域创建文件夹
/var/www/html/subdomain1.dev.net
/var/www/html/subdomain2.dev.net
/var/www/html/subdomain3.dev.net