Saya punya definisi VirtualHost yang cukup besar yang tidak ingin saya duplikat sehingga situs tersebut juga akan berjalan di atas HTTPS.
Inilah yang ingin saya lakukan:
<VirtualHost *>
ServerName example.com
<If port=443>
SSLEngine on
SSLCertificateFile ...
SSLCertificateKeyFile ...
SSLCertificateChainFile ...
</If>
(other config)
</VirtualHost>
Apakah ada cara untuk melakukan ini?
Apakah saya kehilangan beberapa metode lain untuk tidak menduplikasi konfigurasi?
sumber
SSLEngine On
dalam<If>
akan memberikanSSLEngine not allowed here
, sehingga penggunaan-kasus disarankan pada awal jawaban ini sayangnya tidak tampak mungkin. Ini tampaknya karena persyaratan bahwa "Hanya arahan yang mendukung konteks direktori dapat digunakan dalam bagian konfigurasi ini." (ref) danSSLEngine
merupakanserver config, virtual host
(ref) , tidak direktori.Tidak. Anda dapat memindahkan sebagian besar hal ke konfigurasi Global dan mewarisinya di VirtualHost.
sumber
Ini dijawab dalam pertanyaan lain. Gunakan pernyataan Sertakan. Bekerja seperti pesona bagi saya:
Sajikan http (port 80) dan https (port 443) pada VirtualHost yang sama
sumber
Untuk host virtual SSL, Anda juga harus menggunakan porta ala kedua
atau Anda harus menggunakan IP terpisah
Ada actaully penjelasan yang sangat bagus di dokumentasi Apache SSL http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html
Telusuri "Mengapa saya tidak bisa menggunakan SSL dengan host virtual berbasis nama / non-IP?"
sumber