Ранее мы писали о том как настроить SSL сертификат вручную на Apache. Но все, кто пробовал установить сертификат ssl на несколько доменов через httpd.conf, наверняка получили ошибку.

Кстати, если у вас ещё нет сервера, то арендовать его можно на сайте.

Ну, а теперь, вернемся к нашим баранам.

Как установить сертификат ssl на несколько доменов через httpd.conf

В конфигурации Apache есть директива NameVirtualHost. Она отвечает за группировку доменов на одном IP и порту. Вот она то нам и поможет. Мы сразу сообщим Apache, что у нас будет несколько доменов на https (443 порт), а несколько на http (80 порт).

NameVirtualHost 255.255.255.255:80 (вместо 255.255.255.255 подставте IP адрес вашего сервера)
NameVirtualHost 255.255.255.255:443

Эти директивы нужно написать перед первым объявлением VirtualHost в файл httpd.conf.

<VirtualHost 255.255.255.255:443>
ServerName site1.com
DocumentRoot /var/www/site1.com
SSLEngine on
SSLCertificateFile /var/www/etc/site1.crt
SSLCertificateKeyFile /var/www/etc/site1.key
SSLCertificateChainFile /var/www/etc/site1.bundle

ServerAlias www.site1.com
ServerAdmin webmaster@site1.com
ScriptAlias /php-bin/ /var/www/site1.com
AddHandler php-cgi .php .php3 .php4 .php5 .phtml

</VirtualHost>

<VirtualHost 255.255.255.255:443>
ServerName site2.com
DocumentRoot /var/www/site2.com
SSLEngine on
SSLCertificateFile /var/www/etc/site2.crt
SSLCertificateKeyFile /var/www/etc/site2.key
SSLCertificateChainFile /var/www/etc/site2.bundle

ServerAlias www.site2.com
ServerAdmin webmaster@site2.com
ScriptAlias /php-bin/ /var/www/site2.com
AddHandler php-cgi .php .php3 .php4 .php5 .phtml

</VirtualHost>

<VirtualHost 255.255.255.255:80>
ServerName site3.com
DocumentRoot /var/www/site3.com

ServerAlias www.site3.com
ServerAdmin webmaster@site3.com
ScriptAlias /php-bin/ /var/www/site3.com
AddHandler php-cgi .php .php3 .php4 .php5 .phtml

</VirtualHost>

Вот и всё. При этом порядок VirtualHost значения не имеет.