Http/1, http/2, http/3

Tags: #<Tag:0x00007f955aab7ec0>

le lien a un certificat expiré. Donc on ne risque pas d’aller le regarder.

Clic sur « faire confiance au site dangereux » … çà ne me semble pas trop risqué.

Et, surtout, Faites que de lire - et, n’ajoutez pas de données personnelles, du style coordonnées bancaires etc :rofl:

Sûrement pas c’est justement là qu’est le plus gros risque.
Et je n’ai pas pour habitude de me tirer une balle dans le pied; surtout pour aller lire une potentielle usine à gaz.

root@lb1.w1a:~ # curl -v -s --http2 -o /dev/null https://ww3.zw3b.tv/music/deep-house/UCwzwODzBxzW_Cg1LrZWauyw#ZqJg5VJoIfI | grep '^[<>] '
*   Trying 2a01:cb1d:5:af00:1ab3:126:42:10...
* TCP_NODELAY set
* Connected to ww3.zw3b.tv (2a01:cb1d:5:af00:1ab3:126:42:10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2099 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [111 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=zw3b.tv
*  start date: Dec 16 09:39:15 2024 GMT
*  expire date: Mar 16 09:39:14 2025 GMT
*  subjectAltName: host "ww3.zw3b.tv" matched cert's "ww3.zw3b.tv"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x55936636bd60)
} [5 bytes data]
> GET /music/deep-house/UCwzwODzBxzW_Cg1LrZWauyw HTTP/2
> Host: ww3.zw3b.tv
> User-Agent: curl/7.64.0
> Accept: */*
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [57 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [57 bytes data]
* old SSL session ID is stale, removing
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
} [5 bytes data]
< HTTP/2 200
< expires: Thu, 19 Nov 1981 08:52:00 GMT
< cache-control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< pragma: no-cache
< x-frame-options: deny
< set-cookie: lang=FR; expires=Fri, 14 Mar 2025 17:13:09 GMT; Max-Age=2592000; path=/; domain=.ww3.zw3b.tv
< set-cookie: PHPSESSID=dsghjqgctqqm7tqlidd8a7lh4i; path=/
< set-cookie: cv=id1544V1; expires=Thu, 13 Feb 2025 17:14:25 GMT; Max-Age=86400; path=.ww3.zw3b.tv
< x-zw-head: ZW3B.Networks D=76525670 t=1739380389170355
< x-zw-backnode: ww1.lb1.lab3w.com
< x-zw-lb-ipv4: 90.5.102.244
< x-zw-lb-ipv6: 2a01:cb1d:5:af00:1ab3:126:42:10
< x-zw-lb-name: fr.lb1.ww1
< referrer-policy: strict-origin-when-cross-origin
< x-frame-options: sameorigin
< content-type: text/html; charset=UTF-8
< date: Wed, 12 Feb 2025 17:13:09 GMT
< server: Apache
<
{ [15837 bytes data]
* Connection #0 to host ww3.zw3b.tv left intact

Ma configuration Apache2 Proxy Balancer reverse HTTP/2

Normalement celle-ci fonctionne, pour ceux et celles qui voudraient essayer :

Je vous envoie ma/mes configs « par default » Apache2 (sans modification des modules) :

Sur les backends (serveurs d’arrière plan) :

  • mpm_event
  • http2
  • proxy
  • proxy_fcgi
  • php8.2-fpm
  • expires, headers, rewrite et compagnies.

Avec sur le « frontal » la config d’un Virtual-Host ci-dessous et tout fonctionnait y’a 10 jours.

Sur le Frontal (serveur d’extrémité avant) :

  • mpm_event
  • http2
  • proxy
  • proxy_balancer
  • proxy_hcheck
  • lbmethod_bybusyness
  • lbmethod_byrequests
  • lbmethod_bytraffic
  • proxy_http2
  • proxy_connect
  • expires, headers, rewrite et compagnies.

Pas de PHP sur mon « frontal »…

cat /etc/apache2/sites-enabled/www.zw3b.tv.conf
<VirtualHost [2001:41d0:701:1100::6530]:80 135.125.133.51:80>

        ServerName www.zw3b.tv
        ServerAlias zw3b.tv
        #ServerAlias ww1.zw3b.tv ww2.zw3b.tv
        #ServerAlias ww3.zw3b.tv wwd.zw3b.tv
        ServerAlias *.zw3b.tv

        ServerAdmin hostmaster@zw3b.tv

        # LOGS -----------------------------------------
        ErrorLog /var/log/apache2/www.zw3b.tv.error.log
        Customlog /var/log/apache2/www.zw3b.tv.access.log combined

        LogLevel warn

#        Header set "X-Proxy-Server" "vps.de.ipv10.net"
#        Header unset "Content-Type"

        RewriteEngine On

#        RewriteCond %{HTTP_HOST} !^zw3b\.tv$ [NC,OR]
#        RewriteCond %{HTTP_HOST} ^zw3b\.tv$ [NC]
#        RewriteCond %{HTTPS} off
#        RewriteRule ^(.*) https://%{HTTP_HOST}/%1 [R=301,L]

        RewriteCond %{HTTP_HOST} !^(zw3b.tv)$ [NC]
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*) https://%{0}/%1 [R=301,L]

        RewriteCond %{HTTP_HOST} ^zw3b\.tv$ [NC]
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*) https://%{HTTP_HOST}/%1 [R=301,L]

        RewriteCond %{HTTP_HOST} ^www\.zw3b\.tv$ [NC]
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*) https://%{HTTP_HOST}/%1 [R=301,L]

</VirtualHost>

C’est le bordel mon rewrite HTTP → HTTPs – des tests.

<IfModule mod_ssl.c>
<VirtualHost [2001:41d0:701:1100::6530]:443 135.125.133.51:443>

        ServerName www.zw3b.tv
        ServerAlias zw3b.tv
        #ServerAlias ww1.zw3b.tv ww2.zw3b.tv
        #ServerAlias ww3.zw3b.tv wwd.zw3b.tv
        ServerAlias *.zw3b.tv

        ServerAdmin hostmaster@zw3b.tv

        # LOGS -----------------------------------------
        ErrorLog /var/log/apache2/www.zw3b.tv.error.log
        Customlog /var/log/apache2/www.zw3b.tv.access.log combined

        LogLevel warn

        # STATUS ---------------------------------------
        <IfModule mod_status.c>
        # Allow server status reports generated by mod_status,
        # with the URL of http://servername/server-status
        # Uncomment and change the "192.0.2.0/24" to allow access from other hosts.

                <Location /server-status>
                        SetHandler server-status
#                        Require local
                        #Require ip 192.0.2.0/24
                        Require all granted
#                       Require ip 2607:5300:60:9389:58:e:f:661
                        Order deny,allow
                        Deny from all
                        Allow from 109.210.56.240
                        Allow from 83.159.31.116
                        Allow from 135.125.133.51
                        Allow from dalmas.lab3w.fr
                        Allow from 2607:5300:60:9389:58:e:f:660
#                       Allow from all
                </Location>

                # Determine if mod_status displays the first 63 characters of a request or
                # the last 63, assuming the request itself is greater than 63 chars.
                # Default: Off
                #SeeRequestTail On

        </IfModule>

        # QOS ------------------------------------------
        <IfModule mod_qos.c>
                <Location /qos>
                        SetHandler qos-viewer
                        Require all granted
                        Order deny,allow
                        Deny from all
                        Allow from 109.210.56.240
                        Allow from 83.159.31.116
                        Allow from 135.125.133.51
                        Allow from dalmas.lab3w.fr
                        Allow from 2607:5300:60:9389:58:e:f:660
                </Location>
        </IfModule>

        # BALANCER -------------------------------------
        <IfModule mod_proxy.c>
                # Show Proxy LoadBalancer status in mod_status
                ProxyStatus On

                ProxyPreserveHost On
                ProxyRequests Off

                ProxyVia Block

#               Header set "X-XXXXX" %s
#               Header set "X-date" %t
#               Header set "X-time-req" %D
                Header set "X-Forwarded-Server" "vps.de.ipv10.net"
                Header set "X-Forwarded-For" %{REMOTE_ADDR}s
                Header set "X-Forwarded-Host" %{HTTP_HOST}s
#                Header set "X-Forwarded-Protocol" %{SERVER_PROTOCOL}s
#                Header set "X-Forwarded-Ssl" %{HTTPS}s
#                Header set "X-Url-Scheme" %{REQUEST_SCHEME}s

#               SetEnv force-proxy-request-1.0 1
                SetEnv proxy-nokeepalive 1

                # On fait du proxy vers un autre serveur en https
                SSLProxyEngine On

                # Disable SSLProxyCheck
                SSLProxyVerify none
                SSLProxyCheckPeerCN off
                SSLProxyCheckPeerName off
                SSLProxyCheckPeerExpire off

                <Proxy *>
                        Order deny,allow
                        Allow from all
                </Proxy>

        </IfModule>

        # Test status server équipier
        # https://httpd.apache.org/docs/trunk/mod/mod_proxy_hcheck.html
        ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
        ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}
        ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}

        # Balancer
        <Proxy balancer://zw3bCluster/>
                Require all granted

                # CA
#                BalancerMember h2://[fc00:5300:60:9389:15:1:a:10] loadfactor=1 hcmethod=HEAD hcexpr=ok234 hcinterval=5 hcpasses=2 hcfails=3 connectiontimeout=30 timeout=60 retry=10 route=ww1.lb1.ipv10.net
                BalancerMember h2://[fc00:5300:60:9389:15:1:a:10] loadfactor=1 hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3 connectiontimeout=30 timeout=60 retry=10 route=ww1.lb1.ipv10.net
                BalancerMember h2://[fc00:5300:60:9389:15:2:a:10] loadfactor=1 hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3 connectiontimeout=30 timeout=60 retry=10 route=ww2.lb2.ipv10.net

                # FR PVE
                BalancerMember h2://[fc01::10:126:42:10] loadfactor=1 hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3 status=+R connectiontimeout=30 timeout=60 retry=10 route=ww1.lb1.lab3w.com

                # FR DC
#                BalancerMember h2://[fc01::10:106:42:10] loadfactor=1 hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3 status=+H connectiontimeout=30 timeout=60 retry=10 route=w3a.dc.lab3w.fr

                # La ligne suivante configure le serveur cible de réserve - D=Desactiver - S=Stoper - I=erruerus ignorees - H=Interuption a chaud - E=Errueur
#               BalancerMember ajp://1.2.3.6:8009 status=+H
                ProxySet stickysession=ROUTEID
                # lbmethod = byrequests bytraffic bybusyness heartbeat
                ProxySet lbmethod=bybusyness
        </Proxy>
        Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/"

        <IfModule mod_proxy_balancer.c>
                <Location /balancer-manager>
                        SetHandler balancer-manager
                        Require all granted
                        #Options MultiViews FollowSymLinks -Indexes
                        Options MultiViews FollowSymLinks
#                       AllowOverride All AuthConfig
                        Order deny,allow
                        Deny from all
                        Allow from 109.210.56.240
                        Allow from 83.159.31.116
                        Allow from 135.125.133.51
                        Allow from dalmas.lab3w.fr
                        Allow from 2607:5300:60:9389:58:e:f:660
                        Allow from all
                </Location>
        </IfModule>

#       Alias /var /var/pro/web_sites/zw3b_tv/www/web/var

#        <Location /var>
#                Require all granted
#                Options MultiViews FollowSymLinks
#        </Location>

#       ProxyPass /var !
        ProxyPass /server-status !
        ProxyPass /balancer-manager !
#        ProxyPass /pub/mrtg(.*) !
#        ProxyPass /pub(.*) !

        ProxyPass / balancer://zw3bCluster/
        ProxyPassReverse / balancer://zw3bCluster/
        # Balancer

        SSLEngine On
        #   SSLProtocol -all +SSLv2
        #   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
        #   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

        SSLCertificateFile /etc/ssl/letsencrypt/zw3b.tv_ecc/fullchain.cer
        SSLCertificateKeyFile /etc/ssl/letsencrypt/zw3b.tv_ecc/zw3b.tv.key
        SSLCACertificateFile /etc/ssl/letsencrypt/zw3b.tv_ecc/ca.cer

</VirtualHost>
</IfModule>

Cà devrait marcher du tonnerre de Dieu !!!

16GIG de RAM pour chaque « backends » pour un serveur Web c’est bien.

@+

Bonne soirée.


Config « 6 » : strongSwanIPv6 ULA (only) :

J’ai posté une question : I’m trying to retrieve the correct NMAP responses through strongSwan from « site » to « site ». · strongswan/strongswan · Discussion #2669 · GitHub


N’oublions pas ; la doc de Guiguiabloc.

Capture d'écran 2025-02-14 182936 - DANE - Error why - 1 day MAJ - Firefox Nightly

Pourquoi « Firefox Nightly » voit le certificats SSL/TLS d’hier ?

Et, de ce fait, le plugin DANE/DNSSEC voit qu’il y a un problème - Il me signale que l’entité « www » est ; comme en tentative d’usurpation !!

Vu que j’ai sécurisé mes « entité applicative » par la sécurité DANE / TLSA qui s’appuie sur la sécurisation « par pair » entre "la sécurité SSL standard sur le procotole HTTPS et le nom de domaine sécurisé par DNSEC.

Que se passe t’il sur Internet ?


Extension / plugin Index of /pub/screens → extension-firefox-dnssec-dane-validator@defkev (dot) xpi

Est-ce que tu trouves la réponse ci-dessous ?

$ ./chk_certs.bash www.zw3b.tv 443
-----
server 158.69.126.137
        Validity
            Not Before: Feb 13 10:15:32 2025 GMT
            Not After : May 14 10:15:31 2025 GMT
-----
server 90.5.102.244
        Validity
            Not Before: Feb 13 10:15:32 2025 GMT
            Not After : May 14 10:15:31 2025 GMT
-----
server 57.128.171.43
        Validity
            Not Before: Feb 13 10:15:32 2025 GMT
            Not After : May 14 10:15:31 2025 GMT
-----
server 135.125.133.51
        Validity
            Not Before: Dec 16 09:39:15 2024 GMT
            Not After : Mar 16 09:39:14 2025 GMT
-----
server 2001:41d0:801:2000::44f9
        Validity
            Not Before: Feb 13 10:15:32 2025 GMT
            Not After : May 14 10:15:31 2025 GMT
-----
server 2a01:cb1d:5:af00:1ab3::1
        Validity
            Not Before: Feb 13 10:15:32 2025 GMT
            Not After : May 14 10:15:31 2025 GMT
-----
server 2607:5300:60:9389::1
        Validity
            Not Before: Feb 13 10:15:32 2025 GMT
            Not After : May 14 10:15:31 2025 GMT
-----
server 2001:41d0:701:1100::6530
        Validity
            Not Before: Dec 16 09:39:15 2024 GMT
            Not After : Mar 16 09:39:14 2025 GMT


AnonymousCoward

Oui, pourtant j’ai regardais justement le VPS Allemand « vps.de.ipv10.net »

Mais, je n’avais fait que « reload » Apache2 automatiquement (via un script qui envoie les certificats Let’s encrypt mise à jour sur les frontaux); et du coup je viens de « restart », et je me suis aperçus que j’avais mal écrit " hcmethod=HEAD hceeeeeexpr=ok234" sur une ligne du BalancerMember .

Et donc, Apache2 n’avait pas dû prendre en compte le nouveaux certificats SSL/TLs ; Et, vu que le script met à jour les champs DANE / TLS sur les DNS ; je voyais l’erreur grâce au plugin Firefox.

En fait c’était de ma faute, je m’excuse pour « Nightly » ! Kiss !

:slight_smile:

Je m’inquiète trop je crois, c’est de la paranoïa ou de la dissipation. Pas très bon tout çà !

Merci @AnonymousCoward, grand merci !

Des fois, j’en pleure (quand les sites fonctionnent mal) c’est « dur » d’être seul !

Bonne soirée.

Et, en plus, en pleine Audit de Youtube, tout ce bordel !

Capture d'écran 2025-02-16 004657 Quotas Per Days – API et services – ZW3B-App - Youtube - ZW3B.App

Depuis quelques jours, ma limite des Query/jours Youtube est atteinte avant minuit (9h du matin GMT+1 la remise à zéro).

  • 15-16/02/2025 Limite atteinte à 22h25min 02s ~ 3 004 010 (de 9h du matin le 15)
  • 14-15/02/2025 Limite atteinte à 23h23min 02s ~ 3 010 000 (de 9h du matin le 14)
  • 13-14/02/2025 Limite atteinte à 22h50min 02s ~ 3 010 000 (de 9h du matin le 13)
  • 13/02/2025 Limite atteinte à 2h42min 03s ~ 3 010 000
  • 12/02/2025 Limite atteinte à 8h21min 03s ~ 3 010 000
  • 10/02/2025 Limite atteinte à 1h08min 03s ~ 3 010 000
  • 09/02/2025 Limite atteinte à 1h42min 03s ~ 3 010 000
  • 03/02/2025 Limite atteinte à 8h12min 03s ~ 3 010 000
  • 02/02/2025 Limite atteinte à 3h07min 03s ~ 3 010 000
  • 01/02/2025 Limite atteinte à 4h44min 03s ~ 3 010 000

Ils me font fondre, j’ai demandé 5M/day, y’a plus d’1 mois, le 2025/01/12

:wink:


Note de Moi-même à 6h11

J’essaie de faire une redirection « rewrite » ; d’envoyer « www » sur mon « portfolio » mais « çà m’envoie » sur « admin »

La commande curl (sans le -L pour suivre les « rewrite ») me répond une page HTML.

root@pve:~ # curl -v -k --http2 https://www.lab3w.com/?aAABBBCCC
*   Trying [2607:5300:60:9389::1]:443...
* Connected to www.lab3w.com (2607:5300:60:9389::1) port 443 (#0)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=lab3w.fr
*  start date: Feb 11 09:56:23 2025 GMT
*  expire date: May 12 09:56:22 2025 GMT
*  issuer: C=US; O=Let's Encrypt; CN=E5
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /?aAABBBCCC]
* h2h3 [:scheme: https]
* h2h3 [:authority: www.lab3w.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x5a720076fce0)
> GET /?aAABBBCCC HTTP/2
> Host: www.lab3w.com
> user-agent: curl/7.88.1
> accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 301
< strict-transport-security: max-age=31536000; includeSubDomains;
< location: https://admin.lab3w.com/?aAABBBCCC
< cache-control: max-age=7200
< expires: Sun, 16 Feb 2025 07:11:22 GMT
< content-length: 242
< content-type: text/html; charset=iso-8859-1
< date: Sun, 16 Feb 2025 05:11:22 GMT
< server: Apache
< x-content-type-options: nosniff
< x-forwarded-server: srv.ca.lab3w.com
< x-forwarded-for: 2a01:cb1d:5:af00:1ab3::1
< x-forwarded-host: (null)
< set-cookie: ROUTEID=.ww2.lb2.ipv10.net; path=/
<
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://admin.lab3w.com/?aAABBBCCC">here</a>.</p>
</body></html>
* Connection #0 to host www.lab3w.com left intact
root@pve:~ #

Bizarre non !?

Bonjour,

Je répondrais volontiers à la question sur la redirection, mais est-ce que tu peux créer un nouveau sujet sur le forum, s’il te plaît ?

Par exemple, ce sujet est passé des différentes versions de HTTP à PHP-FPM à l’architecture d’Internet à des problèmes de virtualisation puis au sujet des certificats TLS… On s’y perd un peu.


AnonymousCoward

1 J'aime

Attends, j’suis au Café / Citoyen…

Sinon comme vous le dites @AnonymousCoward

Je regardais cela :

@+

:rofl: