Tôi đang cố định cấu hình hỗ trợ HTTP/2 nhưng đã xảy ra sự cố
Máy chủ của tôi là vm công cụ điện toán google chạy phiên bản máy chủ Debian 9.13 (kéo dài) Apache/2.4.25 với các chứng chỉ SSL được định cấu hình bằng OpenSSL. Khi tôi chạy phiên bản opensl
nó báo version 1.1.1g. Khi chạy phpinfo();
nó báo cáo OpenSSL/1.0.2u
. Phiên bản PHP 7.4.11 và phpinfo();
cũng báo cáo...
SSL_VERSION_INTERFACE -> mod_ssl/2.4.25
SSL_VERSION_LIBRARY -> OpenSSL/1.0.2u
SSL_PROTOCOL -> TLSv1.2
tôi đã làm theo hướng dẫn đây để "Bật mô-đun HTTP/2 trong Apache" và "Bật HTTP/2 trong máy chủ ảo Apache của bạn" và cả đây. Sau khi làm như vậy, khi tôi chạy lệnh apache2ctl -M | grep http2
nó trở lại http2_module (được chia sẻ)
báo hiệu Hỗ trợ HTTP/2 được bật. Nhưng nó không được sản xuất.
Đây là dòng được sử dụng trong tệp cấu hình máy chủ ảo apache2 của tôi /etc/apache2/sites-available/default-ssl.conf
<Máy chủ ảo _default_:443>
Giao thức h2 h2c http/1.1
...
Dưới đây là thông tin kết nối dài dòng khi sử dụng cuộn tròn -vso http2_debug.log --http2 https://pharealty.com/
lệnh tải xuống trang thành công.
* Đang thử 35.236.101.224...
* Bộ TCP_NODELAY
* Đã kết nối với pharealty.com (35.236.101.224) cổng 443 (#0)
* ALPN, cung cấp h2
* ALPN, cung cấp http/1.1
* Lựa chọn mật mã: TẤT CẢ:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* đặt thành công vị trí xác minh chứng chỉ:
* Tệp CA: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (OUT), tiêu đề TLS, Trạng thái chứng chỉ (22):
} [dữ liệu 5 byte]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [Dữ liệu 512 byte]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [dữ liệu 109 byte]
* TLSv1.2 (IN), bắt tay TLS, Chứng chỉ (11):
{ [dữ liệu 4036 byte]
* TLSv1.2 (IN), bắt tay TLS, trao đổi khóa máy chủ (12):
{ [dữ liệu 333 byte]
* TLSv1.2 (IN), bắt tay TLS, Máy chủ hoàn tất (14):
{ [dữ liệu 4 byte]
* TLSv1.2 (OUT), bắt tay TLS, Trao đổi khóa máy khách (16):
} [dữ liệu 70 byte]
* TLSv1.2 (OUT), mật mã thay đổi TLS, Client hello (1):
} [dữ liệu 1 byte]
* TLSv1.2 (OUT), bắt tay TLS, Đã hoàn thành (20):
} [dữ liệu 16 byte]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [dữ liệu 1 byte]
* TLSv1.2 (IN), bắt tay TLS, Đã hoàn thành (20):
{ [dữ liệu 16 byte]
* Kết nối SSL sử dụng TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, máy chủ được chấp nhận sử dụng http/1.1
* Chứng chỉ máy chủ:
* chủ đề: CN=pharealty.com
* ngày bắt đầu: 10 tháng 7 01:53:04 2021 GMT
* ngày hết hạn: 8 tháng 10 01:53:03 2021 GMT
* chủ đềAltName: máy chủ "pharealty.com" khớp với "pharealty.com" của chứng chỉ
* tổ chức phát hành: C=US; O=Hãy mã hóa; CN=R3
* Chứng chỉ SSL xác minh ok.
} [dữ liệu 5 byte]
> NHẬN / HTTP/1.1
> Chủ nhà: pharealty.com
> Tác nhân người dùng: curl/7.52.1
> Chấp nhận: */*
>
{ [dữ liệu 5 byte]
< HTTP/1.1 200 OK
< Ngày: Thứ tư, ngày 08 tháng 9 năm 2021 17:20:21 GMT
< Máy chủ: Apache
< Nâng cấp: h2,h2c
< Kết nối: Nâng cấp
< Đặt cookie: PHPSESSID=1mv9jqka4n7c7fb6qmtavfsgue; đường dẫn =/
< Hết hạn: Thứ năm, ngày 19 tháng 11 năm 1981 08:52:00 GMT
< Kiểm soát bộ đệm: không lưu trữ, không có bộ đệm, phải xác thực lại
< Pragma: không có bộ đệm
<X-Pingback: https://pharealty.com/xmlrpc.php
< Liên kết: <https://pharealty.com/wp-json/>; rel="https://api.w.org/"
< Liên kết: <https://pharealty.com/wp-json/wp/v2/pages/48>; rel="thay thế"; gõ = "ứng dụng/json"
< Liên kết: <https://pharealty.com/>; rel=liên kết rút gọn
< Set-Cookie: phaLandingPage=%2F; hết hạn=Tue, 08-Mar-2022 17:20:21 GMT; Tuổi tối đa=15638400; đường dẫn =/
< Thay đổi: Chấp nhận-Mã hóa
< Chuyển mã hóa: chunked
< Loại nội dung: văn bản/html; bộ ký tự = UTF-8
<
{ [dữ liệu 7 byte]
* Curl_http_done: gọi là quá sớm == 0
* Kết nối #0 đến host pharealty.com còn nguyên
Lúc đầu có vẻ như nó hoạt động hoàn hảo, sau đó trở lại HTTP/1.1
Theo như tôi có thể nói, tôi đã có một phiên bản OpenSSL đủ mới. Và mặc dù trang này mà tôi đã đề cập trước đây rất khuyên dùng phiên bản apache cao hơn 2.4.25, tôi không thể cập nhật apache lên bất kỳ thứ gì khác ngoài 2.4.25.
Tôi có cần thiết lập chứng chỉ SSL mới sau khi thực hiện chuyển đổi không? Phiên bản của apache có gây ra sự cố không?
Tôi đã thử nghiệm trang này trên một số trang web thử nghiệm http/2 và lần nào nó cũng bị lỗi.