Global Protect Certificado de cliente Auth Error con vacío CN
65176
Created On 03/25/19 06:17 AM - Last Modified 03/03/23 01:59 AM
Symptom
Globalprotect Se produce un error en la autenticación de certificado de cliente aunque el certificado de cliente correcto esté instalado en el cliente PC y el emisor esté configurado como "De CA confianza" en el archivo Firewall .
Se VPN producirá un error en la conexión aunque el cliente recojan el certificado previsto y se Globalprotect envíen al servidor para la autenticación de certificados de cliente si el asunto CN está vacío en el certificado de cliente.
Los registros del lado cliente mostrarían los siguientes errores.
(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. RetryEn la firewall comprobación de los contadores globales para esta conexión.
Configure "Administrar filtro" con el origen IP y el destino como la dirección de la interfaz que termina el portal y la puerta PC de IP IP Globalprotect enlace.
Si el cliente está en Internet, utilice el público NATted IP del PC cliente.
A continuación, habilite el filtro y ejecute el siguiente comando una vez. La primera salida se puede ignorar.
> show counter global filter packet-filter yes delta yesIntente conectarse al portal y a la puerta de enlace desde el usuario PC que tiene el problema.
Espere un poco de tiempo y vuelva a ejecutar el siguiente comando.
> show counter global filter packet-filter yes delta yesMarque los contadores globales para ver si el contador abajo está presente.
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 los registros del diag del paquete se toman para esta conexión con las características "básica ssl" y "proxy basic", los registros abajo se pueden ver en la salida del diag del paquete.
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
- Protección global con autenticación de certificados
- Pan-OS 8.0
Cause
- Tener un certificado vacío CN en el cliente no es compatible con 8.0 PA firewall
- A partir de 8.1, no hay restricciones en vacío en CN el lado del servidor
Resolution
- Obtenga el certificado de cliente reeditado desde el CA servidor de forma que contenga un asunto CN .
- A continuación, instale este nuevo certificado en el cliente PC y vuelva a probar la conexión.
Additional Information
Firewall siguientes RFC requisitos .
https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.6 RFC Detalles: "Si el campo de asunto contiene una secuencia vacía, entonces la emisión CA MUST incluye una extensión subjectAltName que está marcada como crítica".
Firewall Realiza una comprobación adicional si hay un /subject vacío CNque el SAN campo del certificado está marcado como extensión "crítica".Esto es para asegurarse de que el certificado está de acuerdo con el archivo .RFC
Aquí hay algunos registros de depuración cuando SAN no está marcado como "crítico":
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
En 8.1 y versiones posteriores, si genera un certificado que tiene un asunto vacío (que está bien) y tiene SAN (que está bien), pero SAN la extensión MUST se marcará como "crítica" para que el certificado sea por RFC.
Si no es así, se equivocaría, lo cual está, de nuevo, bien, PAN-OS porque los certificados no deben hacerse como tales.