Ssl server certificate does NOT include an ID which matches

Bonsoir, 

J'avance dans la sécurisation de mon site installé sur un Raspberry et connecté à une Freebox. Quelques infos :

  • J'ai un nom de domaine (jean-dupont.fr)
  • une adresse ip fixe
  • le serveur (raspberry) a l'adresse suivante : 192.168.1 245
  • gestion des ports (Freebox):  créé pour le port 80. J'ai supprimé momentanément celui pour le port 443 car le site n'est pas bien sécurisé. 
  • j'ai créé un certificat avec Certbot et activé le https mais j'obtiens un message d'erreur.(error.log)
[Sat Feb 21 18:59:44.934656 2026] [ssl:warn] [pid 1525:tid 1525] AH01909: jean.dupont.fr:443:0 server certificate does NOT include an ID which matches the server name


Je pense que l'erreur se trouve dans le fichier /etc/apache2/sites-available/wordpress.conf car je m'y perds quelque peu malgré tout ce que j'ai pu lire.

/etc/apache2/sites-available/wordpress.conf

bernard@rasp56400:/etc/apache2/sites-available $ cat wordpress.conf
<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	ServerName 192.168.1.245
	ServerAlias www.jean-dupont.fr
	# ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html/wordpress

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/wordpress/error.log
	CustomLog ${APACHE_LOG_DIR}/wordpress/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>



<VirtualHost *:443>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        ServerName 192.168.1.245
	ServerAlias www.jean-dupont.fr
        # ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/wordpress

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/wordpress/error.log
        CustomLog ${APACHE_LOG_DIR}/wordpress/access.log combined

	SSLEngine on
        Include      /etc/letsencrypt/options-ssl-apache.conf
        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
        SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem
</VirtualHost>

Qui aurait une solution ?
Merci.

Linux / Firefox 140.0

27 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Le certificat couvre jean-dupont.fr alors que le VirtualHost est configuré sur www.jean-dupont.fr, ce qui déclenche l'erreur AH01909 et empêche une connexion TLS fiable depuis l'extérieur. Des solutions consistent à obtenir un certificat couvrant les deux noms (jean-dupont.fr et www.jean-dupont.fr) ou un wildcard, via ACME DNS-01, puis à configurer le ServerName et les ServerAlias. Des tests locaux indiquent que HTTPS fonctionne sur le Raspberry, mais l’accès dépend de la redirection de port et de l’éventuel usage du port 443 par la box, ce qui peut bloquer l’accès. En parallèle, Wordpress peut afficher contenu mixte si les URLs ne sont pas alignées; il faut mettre à jour siteurl et home dans wp_options et ajuster les chemins statiques pour éviter le contenu mixte.

Bobot (l’IA à votre service)
  1. Bonjour,

    Le certificat couvre le nom "jean.dupont.fr" et ton virtualhost Apache est configuré pour "www.jean-dupont.fr".

    Un certificat émis pour "example.com" ne peut pas être utilisé pour "www.example.com". Si tu souhaites que le site soit accessible avec et sans www, il faut obtenir un certificat pour chaque nom.

    En utilisant le challenge ACME DNS-01 (plus complexe à mettre en œuvre mais plus polyvalent), il est possible d'obtenir un certificat combiné (example.com et www.example.com) ou wildcard (example.com et *.example.com).

    1. Bonsoir, 

      Je ne comprends pas ce que tu veux dire quand tu écris :

      Le certificat couvre le nom "jean.dupont.fr" et ton virtualhost Apache est configuré pour "www.jean-dupont.fr".

      Le certificat déclaré dans le fichier VirtualHost mentionne 

      SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem

      Est-ce que tu pourrais m'expliquer ? J'ai pas mal tourné sur le Net mais je n'ai pas trouvé d'explication claire. Désolé !

      1. Bonjour,

        Je n'avais pas vu la ligne ServerName, mais il semblerait qu'Apache compare les noms couverts par le certificat (via les attributs CN ou SAN) avec celui défini par la directive ServerName (mais pas ServerAlias).

        Je te propose de remplacer les directives ServerName et ServerAlias par celles-ci :

        ServerName www.jean-dupont.fr
        ServerAlias 192.168.1.245
        1. Voici le site "avant" et maintenant. J'ai également le site en local, ce qui est une  sécurité

          Extrait de wordpress.conf, remodifié

             ServerName 192.168.1.245
           # ServerAdmin webmaster@localhost
             DocumentRoot /var/www/html/wordpress
          

          Vue avec cette configuration 

          Affichage "normal"

          J'ignore pourquoi l'affichage est modifié car il n'y a eu aucune intervention sur le site, excepté la modification de wordpress.conf. Je sais qu'il y a un lien qui est créé vers sites-enable... 

          1. Quand j'utilise le fichier wordpress.conf dans une forme très basique (cf. extrait, uniquement port 80)

              #ServerAdmin webmaster@localhost
                   # ServerName 192.168.1.245
                    DocumentRoot /var/www/html/wordpress
                    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
                    # error, crit, alert, emerg.
                    # It is also possible to configure the loglevel for particular
                    # modules, e.g.
                    #LogLevel info ssl:warn
            

            et que je me connecte au serveur (raspberry ou par l'adresse ip), j'ai accès au menu :

            • nextcloud
            • wordpress. 

            Je sélectionne wordpress et le site s'affiche normalement. 

            Par contre, je ne comprends pas pourquoi la ligne 

            DocumentRoot /var/www/html/wordpress 

            ne joue aucun rôle.

            Comme tu peux le constater, mes connaissances sont très lacunaires !

            1. Bonjour, 

              Quelques infos qui permettront de donner des conseils plus précis :

              • Nom de domaine : www.jean-dupont.fr
              • Adresse ip fixe freebox
              • Redirection de port freebox 
                •  redirection vers raspberry port 80
                • (test avec autre redirection vers port 443 mais échec --> supprimé)
              • 4 Enregistrements DNS dont 2 (A et AAAA)
              • Certificat Certbot créé et renseigné dans le fichier wordpress.conf
              • SSLEngine on
                        Include      /etc/letsencrypt/options-ssl-apache.conf
                        # For most configuration files from conf-available/, which are
                        # enabled or disabled at a global level, it is possible to
                        # include a line for only one particular virtual host. For example the
                        # following line enables the CGI configuration for this host only
                        # after it has been globally disabled with "a2disconf".
                        #Include conf-available/serve-cgi-bin.conf
                        SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
                        SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem

                Je reste avec un fichier wordpress.conf assez basique car j'ai perdu du temps et de l'énergie avec des tests peu concluants par manque de connaissances.

              Merci à vous. 

              1. Bonjour,

                L'erreur à l'origine de la question est donc résolue ?

                Le problème d'affichage que tu rencontres est probablement causé par du "mixed content" : la page est chargée en HTTPS, mais elle tente de charge des ressources (CSS, JS, images, ...) via HTTP --> le navigateur bloque le chargement de ces ressources car elles pourraient être altérées lors de leur acheminement non chiffré.

                Pour plus de détails : https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Mixed_content

                Il est nécessaire de mettre à jour les paramètres WordPress "siteurl" et "home" pour refléter la nouvelle adresse en HTTPS dans les chemins générés dynamiquement.

                Pour les chemins enregistrés statiquement (articles, menus, ...) il faut les mettre à jour à la main. Une recherche dans la base de données peut aider à trouver les occurrences qui auraient été oubliées.

                Dans les solutions "pansements", il y a :

                • l'entête "Upgrade-Insecure-Requests" pour indiquer au navigateur qu'il doit automatiquement charger les ressources par HTTPS même si le chemin est http://
                • Activer une redirection HTTP -> HTTPS dans le virtualhost ou via le .htaccess : si le visiteur accède au site via http:// ou si le site contient un lien interne http:// la redirection le ramènera sur le chemin sécurisé
                • Entête HTTP HSTS pour indiquer au navigateur qu'il doit automatiquement utiliser https:// même si le lien est http://

                Ce sont des solutions "pansements" dans le sens où elles permettent de rattraper le tir si jamais du http:// apparaît quelque-part, mais ça ne corrige pas la racine du problème (l'utilisation de http:// à certains endroits).

                1. Bonjour, 

                  J'ai voulu modifier l'adresse URL dans Wordpress (https://...) et je n'arrive plus à accéder au gestionnaire. Idem avec phpmyadmin qui ne reconnaît pas le mot de passe... 

                  J'essaie de régler ces problèmes et je reprends contact. 

                  Merci pour tes conseils.

                  1. Bonjour,
                    J'ai résolu le pb de connexion en réinstallant Wordpress ainsi que mon site sur le serveur (raspberry). Je peux y accéder sans difficulté avec www.jean-dupont.fr (en http).
                    J'ai créé une redirection de port (443) sur la Freebox et je me suis ensuite connecté avec mon smartphone (et partage de connexion pour le pc) mais je n'ai pas réussi à me connecter à www.jean-dupont.fr.
                    Comme je ne veux pas aller trop vite dans les modifications, voici le fichier /etc/apache2/sites-available/site2.conf (je supprimé les lignes commentées)

                    <VirtualHost *:80>
                    	ServerName www.jean-dupont
                    	ServerAdmin webmaster@localhost
                    	DocumentRoot /var/www/html/site2
                    
                    
                    	SSLEngine on
                            Include  /etc/letsencrypt/options-ssl-apache.conf
                    
                    	SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont/fullchain.pem
                            SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont/privkey.pem
                    
                    
                    	ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                    	CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                    
                    # RewriteEngine on
                    # RewriteCond %{SERVER_NAME} =www.jean-dupont [OR]
                    # RewriteCond %{SERVER_NAME} =jean-dupont
                    # RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
                    </VirtualHost>
                    
                    <VirtualHost *:443>
                    
                    	ServerName www.jean-dupont
                    	<Directory /var/www/html/site2>
                                    AllowOverride all
                                    Require all granted
                            </Directory>
                            # ServerAdmin webmaster@localhost
                            DocumentRoot /var/www/html/site2
                    
                    
                            ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                            CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                    
                    
                    	SSLEngine on
                            Include      /etc/letsencrypt/options-ssl-apache.conf
                    
                            SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont/fullchain.pem
                            SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont/privkey.pem
                    </VirtualHost>

                    Les lignes suivantes ont été écrites automatiquement : 

                    # RewriteEngine on
                    # RewriteCond %{SERVER_NAME} =www.jean-dupont [OR]
                    # RewriteCond %{SERVER_NAME} =jean-dupont
                    # RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

                    Modification de Wordpress :

                    Adresse web de WordPress (URL)     http://192.168.1.245/site2
                    Adresse web du site (URL)            http://www.jean-dupont

                    J'ignore pourquoi le site n'est pas visible sur le web. Il doit manquer pas mal de choses...

                    Merci 

                    1. Bonjour,

                      Sur les deux lignes "ServerName", le nom est incomplet.

                      Si tu remplaces ton vrai nom de domaine par "jean-dupont", merci de t'assurer d'être cohérent avec la configuration réelle. Si tu introduis d'autres différences/erreurs lors de cette substitution, ça sera compliqué de t'aider efficacement.

                      1. Bonjour, 

                        J'ai fait une erreur. Le ServerName est bien sous la forme

                        www.jean-dupont.fr

                        Sans être parano ( quoi que !), je n'indique pas le véritable nom de domaine.  

                        1. Voici le fichier complet.

                          <VirtualHost *:80>
                          	# The ServerName directive sets the request scheme, hostname and port that
                          	# the server uses to identify itself. This is used when creating
                          	# redirection URLs. In the context of virtual hosts, the ServerName
                          	# specifies what hostname must appear in the request's Host: header to
                          	# match this virtual host. For the default virtual host (this file) this
                          	# value is not decisive as it is used as a last resort host regardless.
                          	# However, you must set it for any further virtual host explicitly.
                          	ServerName www.jean-dupont.fr
                          	ServerAdmin webmaster@localhost
                          	DocumentRoot /var/www/html/site2
                          
                          
                          	SSLEngine on
                                  Include  /etc/letsencrypt/options-ssl-apache.conf
                          	# For most configuration files from conf-available/, which are
                          	# enabled or disabled at a global level, it is possible to
                          	# include a line for only one particular virtual host. For example the
                          	# following line enables the CGI configuration for this host only
                          	# after it has been globally disabled with "a2disconf".
                          	#Include conf-available/serve-cgi-bin.conf
                          	SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
                                  SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem
                          
                          	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
                          	# error, crit, alert, emerg.
                          	# It is also possible to configure the loglevel for particular
                          	# modules, e.g.
                          	#LogLevel info ssl:warn
                          
                          	ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                          	CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                          
                          	# For most configuration files from conf-available/, which are
                          	# enabled or disabled at a global level, it is possible to
                          	# include a line for only one particular virtual host. For example the
                          	# following line enables the CGI configuration for this host only
                          	# after it has been globally disabled with "a2disconf".
                          	#Include conf-available/serve-cgi-bin.conf
                          # RewriteEngine on
                          # RewriteCond %{SERVER_NAME} =www.jean-dupont.fr [OR]
                          # RewriteCond %{SERVER_NAME} =jean-dupont.fr
                          # RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
                          </VirtualHost>
                          
                          <VirtualHost *:443>
                                  # The ServerName directive sets the request scheme, hostname and port that
                                  # the server uses to identify itself. This is used when creating
                                  # redirection URLs. In the context of virtual hosts, the ServerName
                                  # specifies what hostname must appear in the request's Host: header to
                                  # match this virtual host. For the default virtual host (this file) this
                                  # value is not decisive as it is used as a last resort host regardless.
                                  # However, you must set it for any further virtual host explicitly.
                          	ServerName www.jean-dupont.fr
                          	<Directory /var/www/html/site2>
                                          AllowOverride all
                                          Require all granted
                                  </Directory>
                                  # ServerAdmin webmaster@localhost
                                  DocumentRoot /var/www/html/site2
                                  # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
                                  # error, crit, alert, emerg.
                                  # It is also possible to configure the loglevel for particular
                                  # modules, e.g.
                                  #LogLevel info ssl:warn
                          
                                  ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                                  CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                          
                                  # For most configuration files from conf-available/, which are
                          
                                  # enabled or disabled at a global level, it is possible to
                                  # include a line for only one particular virtual host. For example the
                                  # following line enables the CGI configuration for this host only
                                  # after it has been globally disabled with "a2disconf".
                                  #Include conf-available/serve-cgi-bin.conf
                          	SSLEngine on
                                  Include      /etc/letsencrypt/options-ssl-apache.conf
                                  # For most configuration files from conf-available/, which are
                                  # enabled or disabled at a global level, it is possible to
                                  # include a line for only one particular virtual host. For example the
                                  # following line enables the CGI configuration for this host only
                                  # after it has been globally disabled with "a2disconf".
                                  #Include conf-available/serve-cgi-bin.conf
                                  SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
                                  SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem
                          </VirtualHost>
                      2. Bonjour,

                        Quelques pistes de débogage :

                        1. Est-ce que Apache écoute bien le port 443 sur toutes les interfaces ? Voir outil "netstat" ou "ss"
                        2. Est-ce que le port 443 est ouvert au niveau du pare-feu de ton système ?
                        3. Est-ce que le site est accessible localement en HTTPS ? Voir avec curl, exemple ci-dessous.
                        4. Est-ce que ton certificat TLS couvre bien www.jean-dupont.fr ? Voir avec l'outil "openssl" (exemple ci-dessous)
                        iplocale="192.168.1.245"
                        port="443"
                        nomdomaine="www.jean-dupont.fr"
                        curl https://$nomdomaine:$port --connect-to $nomdomaine:$port:$iplocale
                        openssl x509 -in /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem -noout -subject -ext subjectAltName
                        1. Du jour au lendemain, la connexion au site en http est devenue impossible... J'avoue ne pas comprendre car je n'avais pas fait de modification. 

                          J'ai fait des essais en utilisant un fichier léger mais j'obtiens toujours le même message 

                          Bad Request
                          
                          Your browser sent a request that this server could not understand.
                          Reason: You're speaking plain HTTP to an SSL-enabled server port.
                          Instead use the HTTPS scheme to access this URL, please.
                          <VirtualHost *:80>
                             # ServerName jean-dupont.fr
                              DocumentRoot /var/www/html/site2
                          
                              ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                              CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                          
                              <Directory /var/www/html/site2>
                                  Options Indexes FollowSymLinks
                                  AllowOverride All
                                  Require all granted
                              </Directory>
                          
                          #    RewriteEngine On
                           #"   RewriteCond %{SERVER_PORT} 80
                            #  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
                          </VirtualHost>

                          Quelques réponses malgré  ce "contretemps" 

                          jean@rasp56400:~ $ sudo openssl x509 -in /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem -noout -subject -ext subjectAltName
                          subject=CN=www.jean-dupont.fr
                          X509v3 Subject Alternative Name:
                              DNS:www.jean-dupont.fr
                          jean@rasp56400:~ $ netstat
                          Connexions Internet actives (sans serveurs)
                          Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat
                          tcp        0      0 192.168.1.245:ssh       192.168.1.27:41026      ESTABLISHED
                          tcp        0      0 192.168.1.245:ssh       192.168.1.27:47780      ESTABLISHED
                          tcp6       0      0 192.168.1.245:http      192.168.1.27:34146      TIME_WAIT
                          udp        0      0 192.168.1.175:bootpc    192.168.1.254:bootps    ESTABLISHED
                          udp        0      0 192.168.1.245:bootpc    192.168.1.254:bootps    ESTABLISHED
                          jean@rasp56400:~ $ telnet 192.168.1.245 443
                          Trying 192.168.1.245...
                          Connected to 192.168.1.245.
                          Escape character is '^]'.
                          ^CConnection closed by foreign host.
                          1. Bonjour,

                            Pour "netstat", il faut lui demander d'afficher les sockets en écoute. Peux-tu vérifier avec « sudo netstat -tunlp » ?

                            Le résultat de la commande curl aurait été intéressant

                            1. Bonjour, 

                              Quelques réponses 

                              jean@rasp56400:~ $ curl https://www.jean-dupont.fr:443t --connect-to www.jean-dupont.fr:443:192.168.1.24
                              curl: (3) URL rejected: Port number was not a decimal number between 0 and 65535
                              jean@rasp56400:~ $ sudo openssl x509 -in /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem -noout -subject -ext subjectAltName
                              subject=CN=www.jean-dupont.fr
                              X509v3 Subject Alternative Name:
                                  DNS:www.jean-dupont.fr
                              jean@rasp56400:~ $ sudo netstat -tunlp
                              Connexions Internet actives (seulement serveurs)
                              Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
                              tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      6291/cupsd
                              tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1505/mariadbd
                              tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/init
                              tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      4553/dnsmasq
                              tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1449/sshd: /usr/sbi
                              tcp6       0      0 :::443                  :::*                    LISTEN      5447/apache2
                              tcp6       0      0 ::1:631                 :::*                    LISTEN      6291/cupsd
                              tcp6       0      0 :::111                  :::*                    LISTEN      1/init
                              tcp6       0      0 :::80                   :::*                    LISTEN      5447/apache2
                              tcp6       0      0 :::53                   :::*                    LISTEN      4553/dnsmasq
                              tcp6       0      0 :::22                   :::*                    LISTEN      1449/sshd: /usr/sbi
                              udp        0      0 0.0.0.0:53              0.0.0.0:*                           4553/dnsmasq
                              udp        0      0 0.0.0.0:34412           0.0.0.0:*                           818/avahi-daemon: r
                              udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/init
                              udp        0      0 0.0.0.0:5353            0.0.0.0:*                           818/avahi-daemon: r
                              udp6       0      0 :::53                   :::*                                4553/dnsmasq
                              udp6       0      0 :::40514                :::*                                818/avahi-daemon: r
                              udp6       0      0 :::111                  :::*                                1/init
                              udp6       0      0 :::5353                 :::*                                818/avahi-daemon: r
                              

                              site2/logs/error.log

                              [Tue Mar 03 20:44:43.449980 2026] [ssl:warn] [pid 5447:tid 5447] AH01909: www.jean-dupont.fr/:443:0 server certificate does NOT include an ID which matches the server name
                              [Wed Mar 04 00:49:31.592114 2026] [ssl:warn] [pid 5447:tid 5447] AH01909: www.jean-dupont.fr/:443:0 server certificate does NOT include an ID which matches the server name
                              [Wed Mar 04 00:49:31.597751 2026] [ssl:warn] [pid 5447:tid 5447] AH01909: www.jean-dupont.fr/:443:0 server certificate does NOT include an ID which matches the server name

                              Pour l'instant, j'essaie de régler le  problème de connexion ! D'après ce que j'ai pu lire, SSL pourrait avoir joué un rôle.

                              Connexion à http://192.168.1.245/site2/

                              Bad Request
                              
                              Your browser sent a request that this server could not understand.
                              Reason: You're speaking plain HTTP to an SSL-enabled server port.
                              Instead use the HTTPS scheme to access this URL, please.
                              1. Il y avait une erreur dans la commande 

                                jean@rasp56400:$ curl https://www.jean-dupont.fr:443 --connect-to www.jean-dupont.fr:443:192.168.1.245

                                jean@rasp56400:$ curl https://www.jean-dupont.fr:443 --connect-to www.jean-dupont.fr:443:192.168.1.245
                                <!DOCTYPE html>
                                <!--
                                  - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
                                  - SPDX-FileCopyrightText: 2013 ownCloud, Inc.
                                  - SPDX-License-Identifier: AGPL-3.0-only
                                -->
                                <html>
                                <head>
                                	<script> window.location.href="index.php"; </script>
                                	<meta http-equiv="refresh" content="0; URL=index.php">
                                </head>
                                </html>
                                1. Bonjour,

                                  Le résultat de la commande "curl" est encourageant, cela montre que l'accès au site en HTTPS est fonctionnel à partir du réseau local.

                                  En effet, cette commande simule une requête vers  https://www.jean-dupont.fr en contournant la résolution DNS, afin de faire comme si www.jean-dupont.fr pointait vers 192.168.1.245

                                  Si tu disposais d'un DNS local (e.g. AdGuard, Pihole, Unbound...) qui permettrait de diriger www.jean-dupont.fr vers 192.168.1.245, alors les personnes connectées à ton réseau local pourraient accéder à ton site avec un certificat valide.

                                  Cela montre d'une part que ton serveur Apache écoute bien le port 443 en mode TLS, et qu'en plus, le certificat est valide. Cela permet également d'exclure une restriction par le pare-feu du serveur.

                                  Au vu de ces résultats, il semblerait que ça soit la redirection de port qui bloque l'accès à partir de l'extérieur. Je t'invite à vérifier ce point. Il est possible que le port 443 soit déjà utilisé par la box elle-même et qu'une redirection pour ce port ne soit pas permise.

                                  1. Bonsoir,

                                    Merci pour ta patience et tes informations toujours aussi claires ainsi que les pistes que tu ouvres.
                                    Je vais étudier les points que tu soulignes.

                                    Je poste à nouveau certaines infos / fichiers 

                                    • error.log
                                    [Wed Mar 04 07:42:46.328365 2026] [ssl:warn] [pid 7710:tid 7710] AH01909: www.jean-dupont.fr/:443:0 server certificate does NOT include an ID which matches the server name
                                    • etc/apache2/sites-available/site2.conf (contient peut-être des erreurs)
                                    <VirtualHost *:80>
                                        ServerName www.jean-dupont.fr/
                                        DocumentRoot /var/www/html/site2
                                    
                                        ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                                        CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                                    
                                        <Directory /var/www/html/site2>
                                            Options Indexes FollowSymLinks
                                            AllowOverride All
                                            Require all granted
                                        </Directory>
                                    
                                    
                                    SSLEngine on
                                            Include  /etc/letsencrypt/options-ssl-apache.conf
                                            # For most configuration files from conf-available/, which are
                                            # enabled or disabled at a global level, it is possible to
                                            # include a line for only one particular virtual host. For example the
                                            # following line enables the CGI configuration for this host only
                                            # after it has been globally disabled with "a2disconf".
                                            #Include conf-available/serve-cgi-bin.conf
                                            SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
                                            SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem
                                    
                                        RewriteEngine On
                                        RewriteCond %{SERVER_PORT} 80
                                        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
                                    </VirtualHost>
                                    
                                    <VirtualHost *:443>
                                        ServerName www.jean-dupont.fr/
                                        DocumentRoot /var/www/html/site2
                                    
                                        ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                                        CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                                    
                                        <Directory /var/www/html/site2>
                                            Options Indexes FollowSymLinks
                                            AllowOverride All
                                            Require all granted
                                        </Directory>
                                    
                                    
                                    SSLEngine on
                                            Include  /etc/letsencrypt/options-ssl-apache.conf
                                            # For most configuration files from conf-available/, which are
                                            # enabled or disabled at a global level, it is possible to
                                            # include a line for only one particular virtual host. For example the
                                            # following line enables the CGI configuration for this host only
                                            # after it has been globally disabled with "a2disconf".
                                            #Include conf-available/serve-cgi-bin.conf
                                            SSLCertificateFile   /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
                                            SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem
                                    
                                       #  RewriteEngine On
                                       #  RewriteCond %{SERVER_PORT} 80
                                       #  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
                                    </VirtualHost>

                                    Une autre question qui nécessite peut-être d'ouvrir un nouveau topic.

                                    • Connexion au serveur à l'aide de Firefox 
                                    Bad Request
                                    
                                    Your browser sent a request that this server could not understand.
                                    Reason: You're speaking plain HTTP to an SSL-enabled server port.
                                    Instead use the HTTPS scheme to access this URL, please.

                                    Linux / Firefox 140.0

                                    1. Bonjour,

                                      Je vois un "SSLEngine on" à l'intérieur du bloc "<VirtualHost *:80>". Il n'y avait pas cela dans le message initial et ça explique parfaitement l'erreur "Bad Request"

                                      D'ailleurs, les ServerName que tu partages en dernier contiennent désormais une barre oblique, ce qui n'est pas valide

                                  2. Bonsoir,

                                    J'ai modifié le fichier site2.conf comme suit

                                    • site2.conf
                                    <VirtualHost *:80>
                                    ServerName www.jean-dupont.fr
                                    DocumentRoot /var/www/html/site2
                                    
                                    ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                                    CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                                    
                                    <Directory /var/www/html/site2>
                                    Options Indexes FollowSymLinks
                                    AllowOverride All
                                    Require all granted
                                    </Directory>
                                    
                                    RewriteEngine On
                                    RewriteCond %{SERVER_PORT} 80
                                    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
                                    </VirtualHost>
                                    
                                    <VirtualHost *:443>
                                    ServerName www.jean-dupont.fr
                                    DocumentRoot /var/www/html/site2
                                    
                                    ErrorLog ${APACHE_LOG_DIR}/site2/error.log
                                    CustomLog ${APACHE_LOG_DIR}/site2/access.log combined
                                    
                                    <Directory /var/www/html/site2>
                                    Options Indexes FollowSymLinks
                                    AllowOverride All
                                    Require all granted
                                    </Directory>
                                    
                                    
                                    SSLEngine on
                                    Include /etc/letsencrypt/options-ssl-apache.conf
                                    SSLCertificateFile /etc/letsencrypt/live/www.jean-dupont.fr/fullchain.pem
                                    SSLCertificateKeyFile /etc/letsencrypt/live/www.jean-dupont.fr/privkey.pem
                                    RewriteEngine On
                                    RewriteCond %{SERVER_PORT} 80
                                    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
                                    </VirtualHost>


                                    J'ai vérifié ufw

                                    jean@rasp56400:~ $ sudo ufw allow 443
                                    Skipping adding existing rule
                                    Skipping adding existing rule (v6)
                                    jean@rasp56400:~ $ sudo ufw status numbered
                                    Status: active
                                    
                                         To                         Action      From
                                         --                         ------      ----
                                    [ 1] 22/tcp                     ALLOW IN    Anywhere
                                    [ 2] 22                         ALLOW IN    Anywhere
                                    [ 3] 80/tcp                     ALLOW IN    Anywhere
                                    [ 4] 443                        ALLOW IN    Anywhere
                                    [ 5] 443/tcp                    ALLOW IN    Anywhere
                                    [ 6] 80                         ALLOW IN    Anywhere
                                    [ 7] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
                                    [ 8] 22 (v6)                    ALLOW IN    Anywhere (v6)
                                    [ 9] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
                                    [10] 443 (v6)                   ALLOW IN    Anywhere (v6)
                                    [11] 443/tcp (v6)               ALLOW IN    Anywhere (v6)
                                    [12] 80 (v6)                    ALLOW IN    Anywhere (v6)


                                    Je peux me connecter en https://(www.jean-dupont.fr,  que ce soit en local ou avec un smartphone  mais la présentation reste imparfaite. Je vais regarder le lien
                                    Pour plus de détails : https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Mixed_content

                                    Je ne peux toujours pas accéder au site en http://192.168.1.245/ et donc, aucune intervention sur le site.

                                    Bad Request
                                    
                                    Your browser sent a request that this server could not understand.
                                    Reason: You're speaking plain HTTP to an SSL-enabled server port.
                                    Instead use the HTTPS scheme to access this URL, please.

                                    error.log est vide car j'ai effacé le contenu ce matin. Depuis, j'ai corrigé ce que tu signalais.

                                    Je ne vois pas ce qui empêche la connexion !

                                    1. 1. Pourquoi un "RewriteCond %{SERVER_PORT} 80" dans un bloc "<VirtualHost *:443>" ? Ça n'y était pas avant (c'était commenté) et cette redirection n'a aucun sens à cet endroit.

                                      2. Tes VirtualHost sont configurés uniquement pour l'accès via le nom de domaine, pas avec l'adresse IP. Pourquoi tu t'intéresses à l'accès avec http://192.168.1.245/ au lieu de http://www.jean-dupont.fr/ comme configuré sur ton Apache ? Et du coup, au vu de l'erreur, tu sembles avoir activé TLS sur le port *:80 dans un autre fichier.

                                      3. L'accès http://192.168.1.245/ est configuré en-dehors du fichier site2.conf, voir au niveau du vhost par défaut.

                                      C'est pas facile de t'aider si à chaque message, tu apportes des modifications sans les signaler et si tu n'offres qu'une vue partielle sur ta configuration. On va tourner en rond longtemps comme ça...

                                  • 1
                                  • 2