Score:0

การต่ออายุใบรับรอง LetsEncrypt จะหยุดเว็บไซต์ที่ใช้ Apache ไม่ให้ทำงาน

ธง us

ฉันเพิ่งได้รับอีเมลจาก LetsEncrypt แจ้งว่าใบรับรองเว็บไซต์ของฉันกำลังจะหมดอายุ ฉันกำหนดค่าเว็บไซต์ให้ใช้ HTTPS เท่านั้น ใบรับรองต่ออายุอัตโนมัติโดยไม่มีปัญหาใดๆ จนถึงปัจจุบัน ฉันอัปเกรดไลบรารี OpenSSL บน Ubuntu 18.04 เพื่อใช้ TLS เวอร์ชันล่าสุด 1.3 ทุกอย่างดูเหมือนจะทำงานได้ดี แต่การเข้าถึงเว็บไซต์ของฉันโดยใช้เว็บเบราว์เซอร์ Firefox ที่ทำงานบน Windows 7 แสดงข้อความต่อไปนี้:-

SSL_ERROR_RX_RECORD_TOO_LONG

และไฟล์ "access.log" ของ Apache บนเซิร์ฟเวอร์มีสิ่งต่อไปนี้เมื่อเข้าถึงไซต์:-

"\x16\x03\x01\x02" 400 499 "-" "-"

ซึ่งดูเหมือนการจับมือ TLS และ 400 อาจเป็นคำขอที่ไม่ดี

มีบางอย่างที่ไม่ได้กำหนดค่าอย่างถูกต้อง ฉันจะทราบได้อย่างไรว่าปัญหาคืออะไร

แก้ไข

หลังจากค้นหาวิธีแก้ปัญหา ฉันพบว่าถ้าฉันพิมพ์:-

dfsoftware.ddns.net

ในแถบที่อยู่เบราว์เซอร์ของฉัน ฉันได้รับข้อผิดพลาด (บน Firefox, SSL_ERROR...) แต่ถ้าฉันพิมพ์:-

http://dfsoftware.ddns.net:443

โหลดหน้าได้อย่างถูกต้อง ดูเหมือนว่า apache จะมีปัญหากับการจัดการการเชื่อมต่อที่ปลอดภัยบนพอร์ต 443 และยอมรับเฉพาะคำขอวานิลลาบนพอร์ตนั้น ไฟล์การกำหนดค่าดูดี (ฉันสามารถอัปโหลดได้หากคุณต้องการดู) แล้วเกิดอะไรขึ้น

แก้ไข 2

นี่คือไฟล์คอนฟิกูเรชัน apache ที่ฉันคิดว่าเกี่ยวข้อง หากจำเป็น โปรดถาม

apache2.conf:-

ชื่อเซิร์ฟเวอร์ dfsoftware.ddns.net
DefaultRuntimeDir ${APACHE_RUN_DIR}
ไฟล์พิด ${APACHE_PID_FILE}
หมดเวลา 300
เปิด KeepAlive
MaxKeepAliveRequests 100
KeepAliveTimeout 5
ผู้ใช้ ${APACHE_RUN_USER}
กลุ่ม ${APACHE_RUN_GROUP}
ชื่อโฮสต์ปิดการค้นหา
บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log
LogLevel เตือน
รวมตัวเลือก mods-enabled/*.load
รวมตัวเลือก mods-enabled/*.conf
รวม ports.conf

<ไดเร็กทอรี />
    ตัวเลือก FollowSymLinks
    AllowOverride ไม่มี
    ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>

<ไดเร็กทอรี /usr/share>
    AllowOverride ไม่มี
    ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>

<ไดเร็กทอรี /var/www/>
    ดัชนีตัวเลือก FollowSymLinks
    AllowOverride ไม่มี
    ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>

AccessFileName .htaccess

<FilesMatch "^\.ht">
    ต้องการปฏิเสธทั้งหมด
</FilesMatch>

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" รวมกัน
LogFormat "%h %l %u %t \"%r\" %>s %O" ทั่วไป
LogFormat "%{Referer}i -> %U" ผู้อ้างอิง
ตัวแทน LogFormat "%{User-agent}i"

รวมทางเลือก conf-enabled/*.conf
รวมตัวเลือกไซต์ที่เปิดใช้งาน/*.conf

<FilesMatch \.php$>
    โปรแกรม SetHandler/x-httpd-php.ini
</FilesMatch>

port.conf:-

    ฟัง 80

<IfModule ssl_module>
    ฟัง 443
</หากโมดูล>

<IfModule mod_gnutls.c>
    ฟัง 443
</หากโมดูล>

มีไซต์/dfsoftare.ddns.net.conf:-

    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName dfsoftware.ddns.net
    ServerAlias www.dfsoftware.ddns.net
    DocumentRoot /WebSites/Websites
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /WebSites/Websites/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =dfsoftware.ddns.net [OR]
    RewriteCond %{SERVER_NAME} =www.dfsoftware.ddns.net
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

มีไซต์/dfsoftare.ddns.net-le-ssl.conf:-

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName dfsoftware.ddns.net
    ServerAlias www.dfsoftware.ddns.net
    DocumentRoot /WebSites/Websites
    SSLEngine on
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /WebSites/Websites/>
    Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>
    SSLEngine on
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/dfsoftware.ddns.net-    0001/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/dfsoftware.ddns.net-0001/privkey.pem
</VirtualHost>
</IfModule>
dave_thompson_085 avatar
jp flag
ไม่มี TLS 3.1 ฉันคิดว่าคุณหมายถึง 1.3'อัปเกรด' คุณหมายถึง _packages_ `libssl` _and_ `apache2-bin` ซึ่งอ้างอิง (ผ่าน `mod_ssl`) จากที่เก็บมาตรฐาน หรืออย่างอื่น เช่น PPA หรือการสร้างจากแหล่งที่มาหรือไม่ คุณใช้ certbot หรือวิธีอื่นหรือไม่ ฉันสามารถทำซ้ำสิ่งนี้ได้โดยการตั้งค่า `SSLEngine off` (อย่างชัดเจน) ในการกำหนดค่า OOTB ที่ sites-available/default-ssl.conf ดังนั้นคุณอาจมองหาสิ่งที่คล้ายกัน แม้ว่ามันจะดูแปลกสำหรับ certbot หรือไคลเอนต์ ACME ที่มีเหตุผลก็ตาม ทำสิ่งนั้น
us flag
อ๊ะ ใช่ ปัดหมายเลขเวอร์ชันผิด! ผสม endian น้อยและใหญ่ lol! (คำถามปรับปรุง).
us flag
@dave_thompson_085: ฉันมีบรรทัด "SSLEngine on" ในไฟล์นั้นและไฟล์ที่ "SSLCertificateXXX" อ้างถึงมีอยู่จริง และฉันก็ใช้ certbot
us flag
หลังจากดูไปรอบ ๆ ฉันเห็นโพสต์เกี่ยวกับ SSL ที่ไม่ทำงานบนพอร์ต 443 ฉันจึงลอง "http://:443" และดูเถิด มันใช้งานได้ ดังนั้นดูเหมือนว่า apache ไม่ได้ใช้ SSL บนพอร์ตนั้น มีความคิดเห็นเกี่ยวกับวิธีเปิดใช้งานหรือไม่
in flag
โปรดยืนยันการกำหนดค่า Apache ของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา