У меня несколько доменов, но у меня только один сертификат. Я создал два виртуальных хоста, один с сертификатом для домена: domain.lt, второй с перенаправлением на domain.lt
Конфигурация SSL Apache:
<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. После добавления исключения в браузере меня перенаправляют. Как я могу этого добиться?
Часть соединения TLS (SSL) происходит перед частью запроса HTTP.
Это означает, что вы ДОЛЖНЫ предоставить действительный сертификат для домена, запрашиваемого браузером, ПРЕЖДЕ, чем вы сможете отправить перенаправление HTTP 302 / etc. Весь HTTP завершается шифрованием TLS.
В противном случае браузеры конечных пользователей будут показывать предупреждения, которые необходимо обойти (не лучшая практика).