Global Protect Client certificat Auth Échec avec Vide CN
65184
Created On 03/25/19 06:17 AM - Last Modified 03/03/23 01:59 AM
Symptom
Globalprotect L’authentification du certificat client échoue même si le certificat client correct est installé sur le client PC et que l’émetteur est configuré comme « CA Confiance » sur le Firewall .
La connexion échouera même si le certificat prévu est récupéré par le client et envoyé au serveur pour VPN Globalprotect l’authentification du certificat client si le sujet CN est vide sur le certificat client.
Les journaux côté client afficheraient les erreurs ci-dessous.
(T6560) 03/24/19 19:30:51:752 Info ( 736): Server cert query failed with error 12019 (T6560) 03/24/19 19:30:51:752 Debug( 905): PostRequest error code=2148074279(An unknown error occurred while processing the certificate.) (T6560) 03/24/19 19:30:51:752 Debug( 993): ERROR_WINHTTP_SECURE_FAILURE, clean m_pMachineCertCtx. RetrySur le firewall chèque les compteurs mondiaux pour cette connexion.
Configurez « Gérer le filtre » avec la source IP de la destination et la destination comme adresse de PC IP IP l’interface qui met fin au Globalprotect portail et à la passerelle.
Si le client est sur Internet, utilisez le public natted IP du client PC .
Activez ensuite le filtre et exécutez la commande ci-dessous une fois. La première sortie peut être ignorée.
> show counter global filter packet-filter yes delta yesEssayez de vous connecter au portail et à la passerelle de PC l’utilisateur qui a le problème.
Attendez un certain temps et exécutez à nouveau la commande ci-dessous.
> show counter global filter packet-filter yes delta yesVérifiez les compteurs Global pour voir si le compteur ci-dessous est présent.
proxy_client_cert_parse_error 167 3 warn proxy pktproc Number of ssl sessions with bad client cert proxy_decrypt_cert_validation_overall 167 3 info proxy pktproc Overall number of decrypted packet cert validationSi les journaux Diag packet sont pris pour cette connexion avec des fonctionnalités de base de flux " ssl basic " et " proxy basic « , les journaux ci-dessous peuvent être vus dans la sortie diag du paquet.
2019-03-24 20:07:58.853 -0700 debug: pan_proxy_cfg_client_cert_handler(pan_proxy_cfg.c:1244): receive client cert 2019-03-24 20:07:58.853 -0700 debug: pan_x509_parse_dn(pan_x509.c:519): didn't find common name 2019-03-24 20:07:58.853 -0700 debug: pan_x509_parse_tbs_certificate(pan_x509.c:1998): pan_x509_parse_dn() failed
Environment
- Protection globale avec l’authentification des certificats
- Pan-OS 8.0
Cause
- Le fait d’avoir un vide CN sur le certificat client n’est pas pris en charge par la PA firewall version 8.0
- À partir de 8.1, il n’y a aucune restriction sur le vide CN côté serveur
Resolution
- Obtenez le certificat client rééd lui-même à partir CA du serveur de sorte qu’il contient un sujet CN .
- Ensuite, installez ce nouveau certificat sur le Client PC et testez à nouveau la connexion.
Additional Information
Firewall exigences suivantes RFC .
https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.6 RFC Détails : « Si le champ objet contient une séquence vide, alors l’émission CA MUST inclut une extension subjectAltName qui est marquée comme critique. »
Firewall Effectue une vérification supplémentaire s’il y a un /subject vide CNque le SAN champ du certificat est marqué comme extension « critique ».C’est pour s’assurer que le certificat est conforme au fichier RFC.
Voici quelques journaux de débogage lorsqu’ils SAN ne sont pas marqués comme « critiques » :
Firewall side flow basic, ssl basic, proxy basic : debug: pan_proxy_cfg_client_cert_handler(pan_proxy_cfg.c:1253): receive client cert debug: pan_x509_parse_tbs_certificate(pan_x509.c:2082): not before 210521151540Z not after 220521151540Z debug: pan_x509_parse_dn(pan_x509.c:531): didn't find common name debug: pan_x509_parse_tbs_certificate(pan_x509.c:2106): SSLVPN:Print the certificate hostid (null) debug: pan_x509_parse_tbs_certificate(pan_x509.c:2108): SSLVPN:Print the certificate username (null) debug: pan_x509_parse_ext_subject_alt_name(pan_x509.c:1382): subject alt name debug: pan_x509_parse_ext_subject_alt_name(pan_x509.c:1400): found subject alternative names @478 00000000: 82 0b 6d 61 63 68 69 6e 65 2e 6c 61 62 ..machin e.lab debug: pan_x509_parse_tbs_certificate(pan_x509.c:2175): parse tbs certificate missing subject but subject alternative name is not critical debug: pan_x509_parse_cert(pan_x509.c:2374): pan_asn1_tbs_certificate() failed debug: pan_x509_parse_certs_chain(pan_x509.c:2548): pan_x509_parse_cert() failed; error debug: pan_ssl_parse_client_cert_handshake(pan_ssl.c:2372): pan_x509_parse_certs_chain() failed Error: pan_proxy_cfg_client_cert_handler(pan_proxy_cfg.c:1292): failed to parse client cert Error: pan_proxy_offload_ssl_handshake_cb(pan_proxy_ssl.c:576): client cert callback() failed Error: pan_ssl_proxy_handle_rt_hs(pan_ssl_proxy.c:251): handshake callback failed: -3 Error: pan_ssl_proxy_parse_data(pan_ssl_proxy.c:621): pan_ssl_parse_record() failed
Firewall counters : proxy_ssl_invalid_cert 7 3 info proxy pktproc Number of ssl sessions using invalid certificate proxy_client_cert_parse_error 7 3 warn proxy pktproc Number of ssl sessions with bad client cert
GP logs: (T7008)Debug( 868): Found the cert [empty] issued by OpenSSL-CA9 sha1 hash is b4 fd 25 c7 a7 e6 ee ac 2e ef cd dd bd f5 e9 02 35 14 98 51 in machine store (T7008)Debug( 874): Finished searching machine store. (T7008)Debug(1016): PrepareRequest, m_pMachineCertCtx is 000001AF7749D0B0... (T7008)Debug(1024): WinHttpOpenRequest... (T7008)Debug( 442): CPanHTTPSession::PostRequest: WinHttpSendRequest... (T7008)Debug( 453): bResults=0, g_dwStatus = 00000000 (T7008)Debug( 456): SendRequest failed with error -2146893017 (T7008)Debug( 756): The length of the serialized string is 879. (T7008)Debug( 775): The encoded element has been serialized. (T7008)Debug( 786): SerializeServerCert(): wrote 879 of 879 bytes to file C:\WINDOWS\system32\config\systemprofile\AppData\Local\Palo Alto Networks\GlobalProtect\ServerCert.pan. (T7008)Debug(1043): PostRequest error code=2148074279(An unknown error occurred while processing the certificate.) (T7008)Debug(1132): ERROR_WINHTTP_SECURE_FAILURE, clean m_pMachineCertCtx. Retry
Sur 8.1 et versions ultérieures si vous générez un certificat qui a un objet vide (ce qui est bien) et a SAN (ce qui est bien), mais SAN que l’extension MUST doit être marquée comme « critique » pour que le certificat soit par RFC.
Si ce n'est pas le cas, il manquerait une erreur - ce qui est, encore une fois, bien, PAN-OS car les certificats ne devraient pas être faits en tant que tels.