Mam dość dużą definicję VirtualHost, której nie chcę powielać, aby strona działała również przez HTTPS.
Oto, co chcę zrobić:
<VirtualHost *>
ServerName example.com
<If port=443>
SSLEngine on
SSLCertificateFile ...
SSLCertificateKeyFile ...
SSLCertificateChainFile ...
</If>
(other config)
</VirtualHost>
Czy jest jakiś sposób, aby to zrobić?
Czy brakuje mi innej metody nie powielania konfiguracji?
źródło
SSLEngine On
w sposób<If>
daSSLEngine not allowed here
, więc zasugerował use-case na początku tej odpowiedzi niestety nie wydaje się być możliwe. Wydaje się, że dzieje się tak, ponieważ w tej sekcji konfiguracji można stosować tylko „dyrektywy obsługujące kontekst katalogu”. (ref) iSSLEngine
jestserver config, virtual host
(ref) , a nie katalogiem.Nie. Możesz przenieść większość rzeczy do globalnej konfiguracji i odziedziczyć ją w VirtualHost.
źródło
Odpowiedzi na to udzieliło inne pytanie. Użyj instrukcji Dołącz. Działa dla mnie jak urok:
Podaj http (port 80) i https (port 443) na tym samym VirtualHost
źródło
W przypadku wirtualnych hostów SSL musisz albo użyć drugiego portu ala
lub musisz użyć oddzielnych adresów IP
W dokumentacji Apache SSL znajduje się naprawdę dobre wytłumaczenie http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html
Wyszukaj „Dlaczego nie mogę używać protokołu SSL w przypadku hostów wirtualnych opartych na nazwie / bez adresu IP?”
źródło