У меня есть много виртуальных хостов Apache, для каждого из которых я использую специальный файл SSLCertificateFile.
Это пример конфигурации VirtualHost:
<VirtualHost *:443>
ServerName subdomain.domain.localhost
DocumentRoot "/Users/<my_user_name>/Sites/users/public"
RackEnv development
<Directory "/Users/<my_user_name>/Sites/users/publ`enter code here`ic">
Order allow,deny
Allow from all
</Directory>
# SSL Configuration
SSLEngine on
#Self Signed certificates
SSLCertificateFile /private/etc/apache2/ssl/server.crt
SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
SSLCertificateChainFile /private/etc/apache2/ssl/ca.crt
</VirtualHost>
Поскольку я поддерживаю больше приложений Ruby on Rails, используя Панель предпочтений пассажиров, это часть apache2 httpd.conf файл:
<IfModule passenger_module>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName _default_
</VirtualHost>
Include /private/etc/apache2/passenger_pane_vhosts/*.conf
</IfModule>
Могу ли я использовать один SSLCertificateFile для всех моих VirtualHosts (я слышал о подстановочных знаках) вместо создания одного из них для каждого VirtualHost? Если да, то как я могу изменить перечисленные выше файлы?
Если все виртуальные хосты вашего домена существуют в одном домене, тогда да. Например, foo.example.com, bar.example.com и www.example.com могут использовать один сертификат, созданный для * .example.com.
Если вы сделаете это любым другим способом, вы получите предупреждения о сертификате.
Единственное, что вам нужно сделать в конфиге, - это указать соответствующий файл сертификата.
Нет. Сертификаты SSL выдаются для поддомена, то есть secure.example.com, но некоторые центры подписи сертификатов предлагают сертификат с подстановочными знаками для домена * .example.com, но сертификатов с подстановочными знаками нет. Это поставит под угрозу работу доверительных отношений SSL.
Обычно подстановочный знак для домена стоит намного дороже, чем обычный сертификат.