Oke, jadi saya tidak punya pengalaman dengan SSL / HTTPS sebelumnya, saya hanya pernah berurusan dengan HTTP standar. Baru-baru ini saya mulai bekerja di situs yang membutuhkan SSL. Jadi tentu saja, saya sudah keluar dan meneliti bagaimana memulai dan memulai. Saya telah sampai pada tahap menginstal sertifikat SSL berhasil - gembok hijau muncul dan server menanggapi permintaan HTTPS pada port 443. Masalah yang saya miliki adalah tidak masalah apa yang saya lakukan, saya tidak dapat membuat halaman mana pun tampil menggunakan HTTPS / SSL, namun mereka muncul dengan baik pada port 80 / HTTP (sampai saya mengarahkan HTTP ke HTTPS).
Sederhananya saya dapat mengakses situs HTTPS dengan sangat baik, namun halaman saya tidak dikirim, tetapi 404 dikirim untuk setiap permintaan.
/etc/apache2/sites-available/[name[.conf
<VirtualHost *:80>
ServerName [serverName]
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
</VirtualHost>
<VirtualHost *:443>
ServerName [serverName]
ServerAdmin [email]
DocumentRoot [docRoot]
# I know the following SSL cert stuff is correct
SSLEngine On
SSLCertificateFile [...]/[domain].crt
SSLCertificateKeyFile [...]/[certificate].key
SSLCertificateChainFile [...]/[theotherone].crt
ErrorLog ${APACHE_LOG_DIR}/[custom]_error.log
CustomLog ${APACHE_LOG_DIR}/[custom]_access.log combined
<Directory "[docRoot]">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Saya tidak yakin apakah ada hal lain yang ingin Anda lihat, atau detail lainnya, tetapi jika ada, beri tahu saya.
EDIT:
Setelah beberapa pencarian di dalam file konfigurasi saya telah menetapkan bahwa untuk alasan apa pun, ketika menghubungkan ke HTTPS, server menggunakan root dokumen dalam konfigurasi default (/ var / www /) namun konfigurasi default ini tidak diaktifkan dengan a2ensite. Sepertinya saya tidak tahu di mana konfigurasi yang menyebabkan ini berada
sumber
Rewrite
Arahan Anda terlihat seperti Anda mencoba menjalankan Apache di belakang proxy terbalik yang dikonfigurasi dengan buruk. Jika Apache Anda melayani domain secara langsung tanpa proxy, Anda harus membuang semuaRewrite
arahan dan menggantinya dengan satuRedirect
. Dan konfigurasikan file log terpisah untuk masingVirtualHost
- masing sehingga Anda dapat melihatVirtualHost
proses mana yang tepat untuk setiap permintaan.Jawaban:
Apakah benar-benar perlu untuk mengarahkan ulang semua permintaan http ke https? Karena sepertinya itulah yang Anda coba lakukan di sini.
Saya sarankan Anda mulai dengan menghapus baris berikut dari conf Anda:
Saya menduga sintaksnya mungkin salah di sana. Kemudian coba sambungkan kembali pada setiap protokol http: // dan https: //.
sumber
Saya tidak ingat persis bagaimana saya mengetahuinya, tetapi saya menemukan sesuatu di suatu tempat yang menyarankan untuk meletakkan:
<VirtualHost _default_:443>
Dari pada:
<VirtualHost *:443>
Sejak mengganti itu, SSL saya telah bekerja dengan sempurna.
sumber
Coba edit file Anda untuk terlihat seperti ini:
Ini adalah konfigurasi yang sangat mendasar, jika ini berfungsi tambahkan arahan ulang Anda jika masih diperlukan.
Jika ini tidak berhasil, harap tunjukkan ssl.conf Anda
sumber