Re: mod_h2 protocols not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks! Yeah, h2check.org is not working properly, it has not been updated for some time.

I'll add a line about 302 h2c upgrades not working in the howto...

> Am 16.10.2015 um 13:02 schrieb Chris <chrcoluk@xxxxxxxxx>:
> 
> Well I am left scratching my head, the first vhost now works ok on
> https using curl as a tester, nghttp seems ok as well, although my
> output isnt the same as your document.
> 
> I think you was right that the 302 redirect was breaking it on the
> http vhost as that still doesnt work but both http and https work on a
> vhost with no 302.
> 
> This 3rd party checker still fails tho.
> 
> https://www.h2check.org/
> 
> However I think that checker is duff because it is listed in
> chrome://net-internals/#http2:)
> 
> Thanks for your time stefan.  Also thanks for your work on getting
> this into apache.
> 
> On 16 October 2015 at 11:34, Chris <chrcoluk@xxxxxxxxx> wrote:
>> Ok stefan I have some good news, it is working on another vhost on
>> both http and https, this is odd as the server config is the same and
>> vhost templates match, will post more if I find out why the first
>> vhost fails.
>> 
>> Thanks
>> 
>> On 16 October 2015 at 11:23, Chris <chrcoluk@xxxxxxxxx> wrote:
>>> some more configure info
>>> 
>>> # httpd -V
>>> Server version: Apache/2.4.17 (Unix)
>>> Server built:   Oct 16 2015 08:46:36
>>> Server's Module Magic Number: 20120211:51
>>> Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
>>> Compiled using: APR 1.5.2, APR-UTIL 1.5.4
>>> Architecture:   64-bit
>>> Server MPM:     event
>>>  threaded:     yes (fixed thread count)
>>>    forked:     yes (variable process count)
>>> Server compiled with....
>>> -D APR_HAS_SENDFILE
>>> -D APR_HAS_MMAP
>>> -D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)
>>> -D APR_USE_FLOCK_SERIALIZE
>>> -D APR_USE_PTHREAD_SERIALIZE
>>> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
>>> -D APR_HAS_OTHER_CHILD
>>> -D AP_HAVE_RELIABLE_PIPED_LOGS
>>> -D DYNAMIC_MODULE_LIMIT=256
>>> -D HTTPD_ROOT="/etc/httpd"
>>> -D SUEXEC_BIN="/usr/sbin/suexec"
>>> -D DEFAULT_PIDLOG="/var/logs/httpd.pid"
>>> -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
>>> -D DEFAULT_ERRORLOG="logs/error_log"
>>> -D AP_TYPES_CONFIG_FILE="conf/mime.types"
>>> -D SERVER_CONFIG_FILE="conf/httpd.conf"
>>> 
>>> # httpd -M
>>> Loaded Modules:
>>> core_module (static)
>>> authn_file_module (static)
>>> authn_dbm_module (static)
>>> authn_anon_module (static)
>>> authn_dbd_module (static)
>>> authn_socache_module (static)
>>> authn_core_module (static)
>>> authz_host_module (static)
>>> authz_groupfile_module (static)
>>> authz_user_module (static)
>>> authz_dbm_module (static)
>>> authz_owner_module (static)
>>> authz_dbd_module (static)
>>> authz_core_module (static)
>>> access_compat_module (static)
>>> auth_basic_module (static)
>>> auth_form_module (static)
>>> auth_digest_module (static)
>>> allowmethods_module (static)
>>> file_cache_module (static)
>>> cache_module (static)
>>> cache_disk_module (static)
>>> cache_socache_module (static)
>>> socache_shmcb_module (static)
>>> socache_dbm_module (static)
>>> socache_memcache_module (static)
>>> so_module (static)
>>> macro_module (static)
>>> dbd_module (static)
>>> dumpio_module (static)
>>> buffer_module (static)
>>> ratelimit_module (static)
>>> reqtimeout_module (static)
>>> ext_filter_module (static)
>>> request_module (static)
>>> include_module (static)
>>> filter_module (static)
>>> substitute_module (static)
>>> sed_module (static)
>>> deflate_module (static)
>>> http_module (static)
>>> mime_module (static)
>>> http2_module (static)
>>> log_config_module (static)
>>> log_debug_module (static)
>>> logio_module (static)
>>> env_module (static)
>>> expires_module (static)
>>> headers_module (static)
>>> unique_id_module (static)
>>> setenvif_module (static)
>>> version_module (static)
>>> remoteip_module (static)
>>> proxy_module (static)
>>> proxy_connect_module (static)
>>> proxy_ftp_module (static)
>>> proxy_http_module (static)
>>> proxy_fcgi_module (static)
>>> proxy_scgi_module (static)
>>> proxy_wstunnel_module (static)
>>> proxy_ajp_module (static)
>>> proxy_balancer_module (static)
>>> proxy_express_module (static)
>>> session_module (static)
>>> session_cookie_module (static)
>>> session_dbd_module (static)
>>> slotmem_shm_module (static)
>>> ssl_module (static)
>>> lbmethod_byrequests_module (static)
>>> lbmethod_bytraffic_module (static)
>>> lbmethod_bybusyness_module (static)
>>> lbmethod_heartbeat_module (static)
>>> unixd_module (static)
>>> dav_module (static)
>>> status_module (static)
>>> autoindex_module (static)
>>> info_module (static)
>>> suexec_module (static)
>>> cgi_module (static)
>>> dav_fs_module (static)
>>> dav_lock_module (static)
>>> vhost_alias_module (static)
>>> negotiation_module (static)
>>> dir_module (static)
>>> actions_module (static)
>>> speling_module (static)
>>> userdir_module (static)
>>> alias_module (static)
>>> rewrite_module (static)
>>> htscanner_module (shared)
>>> mpm_event_module (shared)
>>> 
>>> 
>>> 
>>> On 16 October 2015 at 11:07, Chris <chrcoluk@xxxxxxxxx> wrote:
>>>> Sorry I meant I tried using Protocols h2 not g2 that was a typo.
>>>> 
>>>> On 16 October 2015 at 10:48, Stefan Eissing
>>>> <stefan.eissing@xxxxxxxxxxxxx> wrote:
>>>>> 
>>>>> Chris,
>>>>> 
>>>>> http://freebsd-admin.com does a 302 redirect to https://freebsd-admin.com
>>>>> 
>>>>> There is no connection upgrade happening on that. Can be argued that it should.
>>>>> 
>>>>> On the https side, I see:
>>>>> * Connected to freebsd-admin.com (78.46.185.201) port 443 (#0)
>>>>> * ALPN, offering h2
>>>>> * ALPN, offering http/1.1
>>>>> * Cipher selection: =
>>>>> ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
>>>>> * TLSv1.2 (OUT), TLS header, Certificate Status (22):
>>>>> * TLSv1.2 (OUT), TLS handshake, Client hello (1):
>>>>> * TLSv1.2 (IN), TLS handshake, Server hello (2):
>>>>> * TLSv1.2 (IN), TLS handshake, Certificate (11):
>>>>> * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
>>>>> * TLSv1.2 (IN), TLS handshake, Server finished (14):
>>>>> * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
>>>>> * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
>>>>> * TLSv1.2 (OUT), TLS handshake, Finished (20):
>>>>> * TLSv1.2 (IN), TLS change cipher, Client hello (1):
>>>>> * TLSv1.2 (IN), TLS handshake, Finished (20):
>>>>> * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
>>>>> * ALPN, server accepted to use http/1.1
>>>>> 
>>>>> So ALPN is happening, but h2 is not selected. How did you configure this?
>>>>> 
>>>>>> Anfang der weitergeleiteten Nachricht:
>>>>>> =20
>>>>>> Von: Chris <chrcoluk@xxxxxxxxx>
>>>>>> Datum: 16. Oktober 2015 um 11:22:57 MESZ
>>>>>> An: dev@xxxxxxxxxxxxxxxx
>>>>>> Betreff: Aw: mod_http2 protocols directive broken
>>>>>> =20
>>>>>> Hi Stefan, here is the output of both checks. Note I will confirm also
>>>>>> curl is compiled with http2 support and will also show curl -V output.
>>>>>> =20
>>>>>> Curl -V
>>>>>> "curl 7.45.0 (amd64-portbld-freebsd9.3) libcurl/7.45.0 OpenSSL/1.0.2d
>>>>>> zlib/1.2.8 libidn/1.31 nghttp2/1.3.4
>>>>>> Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s
>>>>>> rtsp smb smbs smtp smtps telnet tftp
>>>>>> Features: AsynchDNS IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
>>>>>> HTTP2 UnixSockets "
>>>>>> =20
>>>>>> Curl http2 test
>>>>>> "# curl -v --http2 -v http://freebsd-admin.com/
>>>>>> *   Trying 2a01:4f8:201:5465::4...
>>>>>> * Connected to freebsd-admin.com (2a01:4f8:201:5465::4) port 80 (#0)
>>>>>>> GET / HTTP/1.1
>>>>>>> Host: freebsd-admin.com
>>>>>>> User-Agent: curl/7.45.0
>>>>>>> Accept: */*
>>>>>>> Connection: Upgrade, HTTP2-Settings
>>>>>>> Upgrade: h2c
>>>>>>> HTTP2-Settings: AAMAAABkAAQAAP__
>>>>>>> =20
>>>>>> < HTTP/1.1 302 Found
>>>>>> < Date: Fri, 16 Oct 2015 09:19:56 GMT
>>>>>> < Server: Apache
>>>>>> < X-Frame-Options: SAMEORIGIN
>>>>>> < X-Xss-Protection: 1; mode=3Dblock
>>>>>> < X-Content-Type-Options: nosniff
>>>>>> < Content-Security-Policy: default-src 'self'; script-src 'self'
>>>>>> 'unsafe-eval' 'unsafe-inline' https://*.freebsd-admin.com; connect-src
>>>>>> 'self' https://*.freebsd-admin.com; img-src 'self'
>>>>>> https://*.freebsd-admin.com; style-src 'unsafe-inline' 'self'
>>>>>> https://*.freebsd-admin.com; block-all-mixed-content;
>>>>>> < X-Content-Security-Policy: default-src 'self'; script-src 'self'
>>>>>> 'unsafe-eval' 'unsafe-inline' https://*.freebsd-admin.com; connect-src
>>>>>> 'self' https://*.freebsd-admin.com; img-src 'self'
>>>>>> https://*.freebsd-admin.com; style-src 'self' 'unsafe-inline'
>>>>>> https://*.freebsd-admin.com; block-all-mixed-content;
>>>>>> < Location: https://freebsd-admin.com/
>>>>>> < Content-Length: 210
>>>>>> < Content-Type: text/html; charset=3Diso-8859-1
>>>>>> <
>>>>>> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
>>>>>> <html><head>
>>>>>> <title>302 Found</title>
>>>>>> </head><body>
>>>>>> <h1>Found</h1>
>>>>>> <p>The document has moved <a =
>>>>> href=3D"https://freebsd-admin.com/";>here</a>.</p>
>>>>>> </body></html>
>>>>>> * Connection #0 to host freebsd-admin.com left intact"
>>>>>> =20
>>>>>> nghttp2 test
>>>>>> "# nghttp -uv http://freebsd-admin.com/
>>>>>> [  0.000] Connected
>>>>>> [  0.000] HTTP Upgrade request
>>>>>> GET / HTTP/1.1
>>>>>> Host: freebsd-admin.com
>>>>>> Connection: Upgrade, HTTP2-Settings
>>>>>> Upgrade: h2c
>>>>>> HTTP2-Settings: AAMAAABkAAQAAP__
>>>>>> Accept: */*
>>>>>> User-Agent: nghttp2/1.3.4
>>>>>> =20
>>>>>> =20
>>>>>> [  0.001] HTTP Upgrade response
>>>>>> HTTP/1.1 302 Found
>>>>>> Date: Fri, 16 Oct 2015 09:21:42 GMT
>>>>>> Server: Apache
>>>>>> X-Frame-Options: SAMEORIGIN
>>>>>> X-Xss-Protection: 1; mode=3Dblock
>>>>>> X-Content-Type-Options: nosniff
>>>>>> Content-Security-Policy: default-src 'self'; script-src 'self'
>>>>>> 'unsafe-eval' 'unsafe-inline' https://*.freebsd-admin.com; connect-src
>>>>>> 'self' https://*.freebsd-admin.com; img-src 'self'
>>>>>> https://*.freebsd-admin.com; style-src 'unsafe-inline' 'self'
>>>>>> https://*.freebsd-admin.com; block-all-mixed-content;
>>>>>> X-Content-Security-Policy: default-src 'self'; script-src 'self'
>>>>>> 'unsafe-eval' 'unsafe-inline' https://*.freebsd-admin.com; connect-src
>>>>>> 'self' https://*.freebsd-admin.com; img-src 'self'
>>>>>> https://*.freebsd-admin.com; style-src 'self' 'unsafe-inline'
>>>>>> https://*.freebsd-admin.com; block-all-mixed-content;
>>>>>> Location: https://freebsd-admin.com/
>>>>>> Content-Length: 210
>>>>>> Content-Type: text/html; charset=3Diso-8859-1
>>>>>> =20
>>>>>> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
>>>>>> <html><head>
>>>>>> <title>302 Found</title>
>>>>>> </head><body>
>>>>>> <h1>Found</h1>
>>>>>> <p>The document has moved <a =
>>>>> href=3D"https://freebsd-admin.com/";>here</a>.</p>
>>>>>> </body></html>
>>>>>> =20
>>>>>> [ERROR] HTTP Upgrade failed
>>>>>> Some requests were not processed. total=3D1, processed=3D0"
>>>>>> =20
>>>>>> Finally I also set logging to http2:debug but I dont see anything that
>>>>>> indicates an error.
>>>>>> =20
>>>>>> "[Fri Oct 16 10:06:01.060039 2015] [http2:info] [pid 19537:tid
>>>>>> 34410099712] mod_http2 (v1.0.0, nghttp2 1.3.4), initializing...
>>>>>> [Fri Oct 16 10:06:01.060051 2015] [http2:debug] [pid 19537:tid
>>>>>> 34410099712] h2_h2.c(72): h2_h2, child_init
>>>>>> [Fri Oct 16 10:06:01.060059 2015] [http2:debug] [pid 19537:tid
>>>>>> 34410099712] h2_switch.c(54): h2_switch init
>>>>>> [Fri Oct 16 10:06:01.060287 2015] [lbmethod_heartbeat:notice] [pid
>>>>>> 19537:tid 34410099712] AH02282: No slotmem from mod_heartmonitor
>>>>>> [Fri Oct 16 10:06:02.001571 2015] [mpm_event:notice] [pid 19537:tid
>>>>>> 34410099712] AH00489: Apache/2.4.17 (Unix) OpenSSL/1.0.2d configured
>>>>>> -- resuming normal operations
>>>>>> [Fri Oct 16 10:06:02.001600 2015] [core:notice] [pid 19537:tid
>>>>>> 34410099712] AH00094: Command line: '/usr/sbin/httpd -D SSL'
>>>>>> [Fri Oct 16 10:06:02.001697 2015] [http2:debug] [pid 19678:tid
>>>>>> 34410099712] h2_conn.c(123): h2_workers: min=3D32 max=3D64, =
>>>>> mthrpchild=3D32,
>>>>>> thr_limit=3D64
>>>>>> [Fri Oct 16 10:06:02.001755 2015] [http2:debug] [pid 19678:tid
>>>>>> 34410099712] h2_workers.c(227): h2_workers: starting
>>>>>> [Fri Oct 16 10:06:02.002007 2015] [http2:debug] [pid 19727:tid
>>>>>> 34410099712] h2_conn.c(123): h2_workers: min=3D32 max=3D64, =
>>>>> mthrpchild=3D32,
>>>>>> thr_limit=3D64
>>>>>> [Fri Oct 16 10:06:02.002062 2015] [http2:debug] [pid 19727:tid
>>>>>> 34410099712] h2_workers.c(227): h2_workers: starting"
>>>>>> =20
>>>>>> Hope this helps.
>>>>>> =20
>>>>>> On 16 October 2015 at 10:14, Stefan Eissing
>>>>>> <stefan.eissing@xxxxxxxxxxxxx> wrote:
>>>>>>> Chris,
>>>>>>> =20
>>>>>>> I wrote some advice at https://icing.github.io/mod_h2/howto.html =
>>>>> already.
>>>>>>> =20
>>>>>>> There are several checks described. Which one fails for you and how? =
>>>>> I need
>>>>>>> the output of the step that differs from the advice. Just a verbal =
>>>>> description
>>>>>>> is not enough. Thx.
>>>>>>> =20
>>>>>>> //Stefan
>>>>>>> =20
>>>>>>>> Am 16.10.2015 um 11:00 schrieb Chris <chrcoluk@xxxxxxxxx>:
>>>>>>>> =20
>>>>>>>> Hi guys.
>>>>>>>> =20
>>>>>>>> Was excited to see the module got added to 2.4.17 but I cannot get =
>>>>> it
>>>>>>>> to work in my testing following information from this url.
>>>>>>>> https://icing.github.io/mod_h2/howto.html#http
>>>>>>>> =20
>>>>>>>> So what is confirmed working?
>>>>>>>> =20
>>>>>>>> I compiled apache with the appropriate configure flag.
>>>>>>>> =20
>>>>>>>> I can confirm in the error log the module loads.
>>>>>>>> =20
>>>>>>>> However the protocols directive seems to be ignored, testing with =
>>>>> both
>>>>>>>> curl and nghttp2, confirm only http 1.1. is used.  I have tried =
>>>>> using
>>>>>>>> invalid syntax on the protocols directive to cause an error but the
>>>>>>>> server starts anyway without error as if it ignores the value, I =
>>>>> have
>>>>>>>> tried the value in both the server config and vhost which has no
>>>>>>>> affect.
>>>>>>>> =20
>>>>>>>> Any ideas?
>>>>>>>> =20
>>>>>>>> I have been testing on both http and https and both stuck on http =
>>>>> 1.1.
>>>>>>>> =20
>>>>>>>> Chris
>>>>>>> =20
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
>>>>> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
>>>>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx





[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux