Apache: условный SSLCertificateFile в зависимости от домена? - PullRequest
1 голос
/ 06 декабря 2011

У меня многоязычный веб-магазин, доступный из разных доменов, которые ведут на разные языки.

Конфигурация apache довольно сложная, и я хотел бы, чтобы один файл был доступен всем магазинам. Я имел это на месте, пока я не должен был ввести SSL. Когда дело доходит до сертификатов Apache и SSL, мне нужно сделать что-то вроде:

SetEnv is_es 0<br>
SetEnvIfNoCase Host .*es is_es 1<br>
SSLCertificateFile  /etc/ssl/certs/spanish.server.crt env=is_es<br>

Это, по-видимому, невозможно, apache говорит мне:

 <i>SSLCertificateFile takes one argument, SSL Server Certificate file (`/path/to/file' - PEM or DER encoded)</i>

Мне было интересно, есть ли обходной путь. Моя цель состоит в том, чтобы не иметь разных копий одной и той же конфигурации и вручную распространять любые изменения, которые я хочу внести. Он размещен на выделенном сервере, поэтому я могу вносить любые изменения в настройку.

1 Ответ

1 голос
/ 06 декабря 2011

Когда вы подключены к https, заголовок Host находится внутри инкапсуляции SSL, поэтому вам нужно полное рукопожатие SSL перед проверкой имени хоста для вашего виртуального хоста.

Вам следует обратиться за сертификатами SSL с SAN (Subject Alternative Names) , это позволит использовать один сертификат для нескольких имен хостов. (или сертификат подстановочного знака)

Все основные браузеры уже поддерживают это:

И вы можете получить один из этих сертификатов в основных CA.

...