โอเคฉันไม่เคยมีประสบการณ์กับ SSL / HTTPS มาก่อนเลยฉันเคยจัดการกับ HTTP มาตรฐานเท่านั้น เมื่อเร็ว ๆ นี้ฉันเริ่มทำงานกับไซต์ที่ต้องการ SSL แน่นอนฉันได้ออกไปและค้นคว้าวิธีและเริ่มต้น ฉันได้เข้าสู่ขั้นตอนของการติดตั้งใบรับรอง SSL สำเร็จแล้ว - รหัสล็อคสีเขียวจะปรากฏขึ้นและเซิร์ฟเวอร์ตอบสนองต่อคำขอ HTTPS ที่พอร์ต 443 ปัญหาที่ฉันมีคือไม่ว่าฉันจะทำอะไรก็ตาม SSL อย่างไรก็ตามมันปรากฏขึ้นที่พอร์ต 80 / HTTP (จนกว่าฉันจะเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS นั่นก็คือ)
พูดง่ายๆก็คือฉันสามารถเข้าถึงเว็บไซต์ HTTPS ได้อย่างดีเยี่ยม แต่หน้าของฉันไม่ได้ถูกส่ง แต่จะส่ง 404 สำหรับทุกคำขอ
/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>
ฉันไม่แน่ใจว่ามีอะไรอีกที่คุณอาจต้องการดูหรือรายละเอียดอื่น ๆ แต่ถ้ามีให้ฉันรู้
แก้ไข:
หลังจากค้นหาบางอย่างในไฟล์ปรับแต่งที่ฉันสร้างขึ้นด้วยเหตุผลใดก็ตามเมื่อเชื่อมต่อกับ HTTPS เซิร์ฟเวอร์กำลังใช้รูทเอกสารในการกำหนดค่าเริ่มต้น (/ var / www /) อย่างไรก็ตามการกำหนดค่าเริ่มต้นนี้ไม่ได้เปิดใช้งานด้วย a2ensite ฉันไม่สามารถคิดได้ว่าการกำหนดค่าที่ทำให้เกิดปัญหานี้อยู่ที่ใด
Rewrite
คำสั่งของคุณดูเหมือนว่าคุณกำลังพยายามเรียกใช้ Apache หลังพร็อกซีย้อนกลับที่กำหนดค่าไม่ดี ถ้าอาปาเช่ของคุณคือการให้บริการโดเมนโดยตรงโดยไม่ต้อง proxying ใด ๆ คุณก็ควรจะลดลงทั้งหมดของคำสั่งและแทนที่พวกเขามีเพียงหนึ่งเดียวRewrite
Redirect
และกำหนดค่า logfiles แยกกันสำหรับแต่ละVirtualHost
ที่คุณสามารถดูว่าVirtualHost
กระบวนการใดที่ร้องขอแต่ละ