我有多个域名,但只有一个证书。我创建了两个虚拟主机,一个带有域名的证书:domain.lt,另一个带有重定向到 domain.lt 的证书
Apache 的 SSL 配置:
<IfModule mod_ssl.c>
<VirtualHost *:443>
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerName domain.lt
ServerAlias www.domain.lt
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/domain.lt/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.lt/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
<Directory "/var/www/html/main/wp-content/uploads/">
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:443>
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerName domain.pk
ServerAlias www.domain.pk
ServerAlias domain.fi
ServerAlias www.domain.fi
ServerAlias domain.eu
ServerAlias www.domain.eu
ServerAlias domain.hk
ServerAlias www.domain.hk
ServerAlias domain.ae
ServerAlias www.domain.ae
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.(pk|fi|eu|hk|ae)$
RewriteRule ^(.*)$ https://domain.lt%{REQUEST_URI} [L,R=301]
</VirtualHost>
</IfModule>
但我仍然在浏览器中收到警告,提示连接不安全且证书仅适用于 domain.lt。在浏览器中添加例外后,我被重定向了。我该如何实现?
答案1
连接的 TLS(SSL)部分发生在请求的 HTTP 部分之前。
这意味着您必须先提供浏览器请求的域的有效证书,然后才能发送 HTTP 302/等重定向。所有 HTTP 最终都会被包裹在 TLS 加密中。
否则,最终用户浏览器将显示需要绕过的警告(不是最佳做法)。