ฉันกำลังพยายามกำหนดค่าการสนับสนุน HTTP/2 แต่มีบางอย่างผิดพลาด
เซิร์ฟเวอร์ของฉันคือเครื่องมือคำนวณ Google vm ที่ใช้เซิร์ฟเวอร์ Debian 9.13 (stretch) เวอร์ชัน Apache/2.4.25 พร้อมใบรับรอง SSL ที่กำหนดค่าโดยใช้ OpenSSL เมื่อฉันวิ่ง รุ่น opensl
มันรายงานเวอร์ชัน 1.1.1g เมื่อวิ่ง phpinfo();
มันรายงาน OpenSSL/1.0.2u
. PHP เวอร์ชัน 7.4.11 และ phpinfo();
ยังรายงาน...
SSL_VERSION_INTERFACE -> mod_ssl/2.4.25
SSL_VERSION_LIBRARY -> OpenSSL/1.0.2u
SSL_PROTOCOL -> TLSv1.2
ฉันทำตามคำแนะนำ ที่นี่ เพื่อ "เปิดใช้งานโมดูล HTTP/2 ใน Apache" และ "เปิดใช้งาน HTTP/2 ในโฮสต์เสมือน Apache ของคุณ" และ ที่นี่. หลังจากทำเช่นนั้นเมื่อฉันเรียกใช้คำสั่ง apache2ctl -M | เกรป http2
มันกลับมา http2_module (แชร์)
ซึ่งส่งสัญญาณว่ามีการเปิดใช้งานการสนับสนุน HTTP/2 แต่มันไม่ได้อยู่ในระหว่างการผลิต
นี่คือบรรทัดที่ใช้ในไฟล์คอนฟิกูเรชันโฮสต์เสมือน apache2 ของฉัน /etc/apache2/sites-available/default-ssl.conf
<โฮสต์เสมือน _default_:443>
โปรโตคอล h2 h2c http/1.1
...
นี่คือข้อมูลการเชื่อมต่อโดยละเอียดเมื่อใช้งาน curl -vso http2_debug.log --http2 https://pharealty.com/
คำสั่งที่ดาวน์โหลดหน้าสำเร็จ
* ลอง 35.236.101.224...
* ตั้งค่า TCP_NODELAY
* เชื่อมต่อกับ pharealty.com (35.236.101.224) พอร์ต 443 (#0)
* ALPN ให้บริการ h2
* ALPN ให้บริการ http/1.1
* การเลือกรหัส: ทั้งหมด:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* ตั้งค่าตำแหน่งการตรวจสอบใบรับรองสำเร็จแล้ว:
* ไฟล์ CA: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (ออก), ส่วนหัว TLS, สถานะใบรับรอง (22):
} [ข้อมูล 5 ไบต์]
* TLSv1.2 (ออก), การจับมือ TLS, สวัสดีลูกค้า (1):
} [ข้อมูล 512 ไบต์]
* TLSv1.2 (IN), การจับมือ TLS, สวัสดีเซิร์ฟเวอร์ (2):
{ [ข้อมูล 109 ไบต์]
* TLSv1.2 (IN), การจับมือ TLS, ใบรับรอง (11):
{ [ข้อมูล 4036 ไบต์]
* TLSv1.2 (IN), การจับมือ TLS, การแลกเปลี่ยนคีย์เซิร์ฟเวอร์ (12):
{ [ข้อมูล 333 ไบต์]
* TLSv1.2 (IN), การจับมือ TLS, เซิร์ฟเวอร์เสร็จสิ้น (14):
{ [ข้อมูล 4 ไบต์]
* TLSv1.2 (ออก), การจับมือ TLS, การแลกเปลี่ยนคีย์ไคลเอนต์ (16):
} [ข้อมูล 70 ไบต์]
* TLSv1.2 (ออก), เปลี่ยนรหัส TLS, สวัสดีลูกค้า (1):
} [ข้อมูล 1 ไบต์]
* TLSv1.2 (ออก), การจับมือ TLS, เสร็จสิ้น (20):
} [ข้อมูล 16 ไบต์]
* TLSv1.2 (IN), รหัสเปลี่ยน TLS, สวัสดีลูกค้า (1):
{ [ข้อมูล 1 ไบต์]
* TLSv1.2 (IN), การจับมือ TLS, เสร็จสิ้น (20):
{ [ข้อมูล 16 ไบต์]
* การเชื่อมต่อ SSL โดยใช้ TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN เซิร์ฟเวอร์ที่ยอมรับให้ใช้ http/1.1
* ใบรับรองเซิร์ฟเวอร์:
* เรื่อง: CN=pharealty.com
* วันที่เริ่ม: 10 ก.ค. 01:53:04 น. 2021 GMT
* วันหมดอายุ: 8 ต.ค. 01:53:03 น. 2021 GMT
* subjectAltName: โฮสต์ "pharealty.com" ตรงกับ "pharealty.com" ของใบรับรอง
* ผู้ออก: C=US; O=มาเข้ารหัสกันเถอะ; CN=R3
* ใบรับรอง SSL ตรวจสอบตกลง
} [ข้อมูล 5 ไบต์]
> เก็ท / HTTP/1.1
> โฮสต์: pharealty.com
> ตัวแทนผู้ใช้: curl/7.52.1
> ยอมรับ: */*
>
{ [ข้อมูล 5 ไบต์]
< HTTP/1.1 200 ตกลง
< วันที่: วันพุธที่ 08 กันยายน 2021 17:20:21 GMT
< เซิร์ฟเวอร์: อาปาเช่
< อัพเกรด: h2,h2c
< การเชื่อมต่อ: อัปเกรด
< ตั้งค่าคุกกี้: PHPSESSID=1mv9jqka4n7c7fb6qmtavfsgue; เส้นทาง=/
< หมดอายุ: พฤ. 19 พ.ย. 2524 08:52:00 GMT
< การควบคุมแคช: ไม่มีการจัดเก็บ ไม่มีแคช ต้องตรวจสอบใหม่
< Pragma: ไม่มีแคช
< X-Pingback: https://pharealty.com/xmlrpc.php
< ลิงก์: <https://pharealty.com/wp-json/>; rel="https://api.w.org/"
< ลิงก์: <https://pharealty.com/wp-json/wp/v2/pages/48>; rel="สลับ"; ประเภท = "แอปพลิเคชัน / json"
< ลิงก์: <https://pharealty.com/>; rel=ย่อลิงค์
< ตั้งค่าคุกกี้: phaLandingPage=%2F; หมดอายุ=อ. 08-มี.ค.-2022 17:20:21 GMT; อายุสูงสุด=15638400; เส้นทาง=/
< แตกต่างกันไป: ยอมรับการเข้ารหัส
< การเข้ารหัสการถ่ายโอน: chunked
< ประเภทเนื้อหา: text/html; ชุดอักขระ = UTF-8
<
{ [ข้อมูล 7 ไบต์]
* Curl_http_done: เรียกว่าคลอดก่อนกำหนด == 0
* การเชื่อมต่อ #0 ไปยังโฮสต์ pharealty.com ยังคงอยู่
ดูเหมือนว่าจะทำงานได้อย่างสมบูรณ์ในตอนแรก จากนั้นเปลี่ยนกลับเป็น HTTP/1.1 ในภายหลัง
เท่าที่ฉันสามารถบอกได้ว่าฉันมี OpenSSL เวอร์ชันใหม่เพียงพอแล้ว และแม้ว่า หน้านี้ที่ฉันพูดถึงก่อนหน้านี้ ขอแนะนำเวอร์ชันของ apache ที่สูงกว่า 2.4.25 ฉันไม่สามารถอัปเดต apache เป็นอย่างอื่นได้นอกจาก 2.4.25
ฉันจำเป็นต้องตั้งค่าใบรับรอง SSL ใหม่หลังจากเปลี่ยนหรือไม่ เวอร์ชันของ apache เป็นสาเหตุของปัญหาหรือไม่
ฉันได้ทดสอบเว็บไซต์กับเว็บไซต์ทดสอบ http/2 หลายแห่งและล้มเหลวทุกครั้ง