1 votes

Mise à jour 16.04 LTS - 18.04 LTS - tls_process_client_certificate : vérification du certificat échouée - lors de l'utilisation d'un intermédiaire signé PSS

Nous utilisons une configuration Clientauth pour un emplacement sans problèmes depuis de nombreux mois

Ubuntu 16.04.5 LTS Apache 2.4.18-2ubuntu3.9 openssl 1.0.2g-1ubuntu4.13

Maintenant nous avons mis à jour pour utiliser HTTP2

Ubuntu 18.04.1 LTS Apache 2.4.29-1ubuntu4.3 Openssl 1.1.0g-2ubuntu4.1

Conf Apache:

 SSLEngine on
   SSLVerifyDepth 2
   SSLProxyEngine on
   SSLProtocol -All +TLSv1.2 +TLSv1.1

   SSLCipherSuite HIGH:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!EXP:!DES:!RC4:!3DES:!MD5:!PSK:!MEDIUM:!LOW:!SRP:!DSS

   SSLCertificateFile /etc/apache2/ssl/blablub.pem
   SSLCertificateKeyFile /etc/apache2/ssl/blablub.key
   SSLCertificateChainFile /etc/apache2/ssl/blablub.ca_certificates.pem
   SSLCACertificateFile /etc/apache2/ssl/ProductiveCAClientAuth.pem 

....autres éléments sans ClientAuth...

       SSLVerifyClient require
       SSLVerifyDepth 2

       ProxyPass https://server-1/test
       ProxyPassReverse https://server-1/testg

Particularité:

Les certificats clients sont délivrés par une CA intermédiaire qui est elle-même signée en RSA-PSS. La CA racine et les certificats clients réels sont signés normalement en RSA-SHA256. Ne demandez pas pourquoi, c'est comme ça que ça a été construit dans le passé et jusqu'à présent ça a fonctionné

Erreur:

[Tue Sep 25 07:18:27.723798 2018] [ssl:debug] [pid 49219:tid 140033499584256] ssl_engine_kernel.c(757): [client 89.187.203.114:61120] AH02255: Le type de vérification du client modifié forcera une renégociation
[Tue Sep 25 07:18:27.723803 2018] [ssl:info] [pid 49219:tid 140033499584256] [client 89.187.203.114:61120] AH02221: Demande une re-négociation de connexion
[Tue Sep 25 07:18:27.723827 2018] [ssl:debug] [pid 49219:tid 140033499584256] ssl_engine_kernel.c(987): [client 89.187.203.114:61120] AH02260: Effectue une renégociation complète: protocole de poignée de main complet (le client prend en charge la renégociation sécurisée)
[Tue Sep 25 07:18:27.723867 2018] [ssl:info] [pid 49219:tid 140033499584256] [client 89.187.203.114:61120] AH02226: Attente de renégociation de poignée de main
[Tue Sep 25 07:18:33.176966 2018] [ssl:error] [pid 49219:tid 140033499584256] [client 89.187.203.114:61120] AH02261: La poignée de main de re-négociation a échoué
[Tue Sep 25 07:18:33.176987 2018] [ssl:error] [pid 49219:tid 140033499584256] Erreur de la bibliothèque SSL: erreur:1417C086:les routines SSL:tls_process_client_certificate:la vérification du certificat a échoué
[Tue Sep 25 07:18:33.177005 2018] [core:trace3] [pid 49219:tid 140033499584256] request.c(119): [client 89.187.203.114:61120] la phase d'authentification 'vérifier l'accès (avec Satisfy All)' a renvoyé le statut 403: /test/
[Tue Sep 25 07:18:33.177032 2018] [headers:debug] [pid 49219:tid 140033499584256] mod_headers.c(900): AH01503: en-têtes: ap_headers_error_filter()
[Tue Sep 25 07:18:33.177057 2018] [http:trace3] [pid 49219:tid 140033499584256] http_filters.c(1128): [client 89.187.203.114:61120] Réponse envoyée avec le statut 403, en-têtes:
[Tue Sep 25 07:18:33.177062 2018] [http:trace5] [pid 49219:tid 140033499584256] http_filters.c(1135): [client 89.187.203.114:61120]   Date: Tue, 25 Sep 2018 05:18:27 GMT
[Tue Sep 25 07:18:33.177066 2018] [http:trace5] [pid 49219:tid 140033499584256] http_filters.c(1138): [client 89.187.203.114:61120]   Serveur: Apache/2.4.34 (Ubuntu)
[Tue Sep 25 07:18:33.177071 2018] [http:trace4] [pid 49219:tid 140033499584256] http_filters.c(957): [client 89.187.203.114:61120]   X-Frame-Options: SAMEORIGIN
[Tue Sep 25 07:18:33.177075 2018] [http:trace4] [pid 49219:tid 140033499584256] http_filters.c(957): [client 89.187.203.114:61120]   Content-Length: 320
[Tue Sep 25 07:18:33.177080 2018] [http:trace4] [pid 49219:tid 140033499584256] http_filters.c(957): [client 89.187.203.114:61120]   Connection: close
[Tue Sep 25 07:18:33.177084 2018] [http:trace4] [pid 49219:tid 140033499584256] http_filters.c(957): [client 89.187.203.114:61120]   Content-Type: text/html; charset=iso-8859-1

Nous avons tout testé à nouveau avec des certificats client délivrés par une CA intermédiaire en SHA256. Cela fonctionne sans problèmes. Comme je soupçonne qu'en mettant à jour Apache ou openssl il y a maintenant un problème avec les émetteurs signés en PSS. Quelqu'un a une idée de ce qu'on peut faire pour que ça refonctionne?

1voto

F W Points 21

Problème principal résolu en mettant à jour vers OpenSSL 1.1.1 Bien que le problème soit résolu et que ClientAuth fonctionne à nouveau, il est très lent. Une connexion normale prend désormais 60 à 120 secondes. De plus, une mise à jour vers Apache 2.4.35 n'a pas aidé. Divers tests avec les options SSLCache d'Apache n'ont pas non plus aidé.

Je pense que puisque Apache ne prend pas en charge officiellement openSSL 1.1.1 et TLS 1.3, il suffit d'attendre qu'ils soient officiellement pris en charge.

0voto

Vous pouvez désormais utiliser TLSv1.3 via OpenSSL 1.1.1 via Ondrej Sury PPA pour apache2 (ou nginx) en ajoutant son dépôt pour apache2 (ou nginx), puis supprimez l'apache2 par défaut (changez apache2 en nginx si vous utilisez ce dernier) et réinstallez comme suit :

apache2 et openssl 1.1.1 :
add-apt-repository ppa:ondrej/apache2
apt-get update
apt-get -y remove apache2
apt-get -y install apache2 openssl

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X