Mesmo nome de ficheiro ca.crt, certificado distinto: que comparar
Dous perfís poden traer un ca.crt con contidos distintos. Tome a pegada do que carga o proceso e logo comprobe se é a áncora de confianza que pretendía.
Dous perfís traen ambos un ficheiro chamado ca.crt, un túnel érguense e o outro falla cun erro de cadea. Abrir os dous ficheiros un ao lado do outro raramente o resolve, e desactivar a verificación resólveo na dirección equivocada. A pregunta que o erro formula en realidade é máis estreita: que certificado carga cada proceso como a súa áncora de confianza, e son os dous o mesmo obxecto? Responda iso primeiro e o resto do diagnóstico cobra dirección. O nome do ficheiro é unha etiqueta de empaquetado, e a ruta escrita no perfil tampouco é autoritativa, así que todo depende do que o proceso le en realidade.
Atope o certificado que o cliente carga en realidade
OpenVPN acepta a autoridade en dúas formas, e a forma decide que bytes importan. Un perfil pode apuntar a un ficheiro externo con ca, ou incrustar o certificado dentro dun bloque <ca> no propio perfil. Cando existen ambos, gaña o bloque incrustado e o ficheiro xunto ao perfil nunca se abre.
Lea o perfil que falla e averigüe que forma usa antes de comparar nada. Unha copia tomada dun directorio veciño, ou do paquete do que saíu o outro perfil, non lle di nada sobre o que confía este proceso. O mesmo vale para a ruta na configuración: resólvese respecto de onde se iniciou o cliente, que non sempre é o directorio que está mirando. Lea o perfil, non o cartafol.
Os certificados identifícanse polo seu contido: a clave pública, o suxeito e o emisor, a xanela de validez e a sinatura sobre todo iso. Dous ficheiros con bytes idénticos son o mesmo certificado chámense como se chamen, e dous ficheiros co mesmo nome poden ser autoridades sen relación. O nome é unha etiqueta de empaquetado, non unha identidade.
Tome a pegada das dúas copias con openssl
Unha pegada é un hash sobre a codificación DER do certificado, a forma que cobre a sinatura, así que os finais de liña e o texto da cabeceira non poden afectala. Calcúlea para cada ficheiro e terá dúas cadeas hexadecimais separadas por dous puntos que ou coinciden ou non. Non fai falta ler nada máis do certificado para responder a pregunta da comparación.
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
É tentador apuntar openssl ao propio perfil, pero le o primeiro bloque de certificado que aparece no ficheiro, e un perfil adoita levar <cert> antes de <ca>. Extraia o bloque da autoridade e logo tome a pegada do ficheiro extraído, porque esa é a copia que o cliente usará en realidade.
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
Pegadas idénticas significan que o material de confianza é o mesmo e que o erro de cadea ten outra causa, o que é outra investigación. Pegadas distintas significan certificados distintos, e aí comeza a sección seguinte.
Lea unha discrepancia antes de supor un ataque
Pegadas distintas significan certificados distintos e nada máis. Unha reemisión, unha rotación, unha autoridade renomeada ou un paquete obsoleto producen todos ficheiros distintos con historias por completo lexítimas. Cal pertence ao despregamento é unha pregunta para o operador ou para o rexistro de despregamento, non para a hora de modificación do ficheiro. Os arquivos de arquivo copian marcas de tempo, así que un ficheiro máis novo non é automaticamente a áncora correcta.
Unha raíz que se asina a si mesma é normal, así que atopar unha non é proba dun problema. A tarefa do verificador é construír un camiño desde o certificado do servidor ata a áncora que se lle entregou, e un erro de cadea adoita significar que ese camiño non se puido completar.
Comprobe se a áncora do perfil que falla é unha autoridade da que o despregamento aínda emite. Se a pegada non coincide con nada no rexistro de despregamento, o perfil simplemente está desactualizado, e ningún axuste do lado do cliente o arranxará.
Repare a confianza sen desactivar a verificación
A solución a curto prazo é desactivar a verificación ou engadir cada certificado da cadea como áncora. Ambas fan desaparecer a mensaxe, e ambas cambian que servidores aceptará o cliente a partir de entón. Volva activar a verificación, instale a áncora prevista e volva probar.
Se a cadea agora se constrúe pero aparece outro erro, iso é progreso: a verificación do nome, as datas de validez e a revocación son comprobacións separadas con mensaxes separadas. Mantena o par de pegadas e o texto orixinal do erro xuntos no tícket, para que a seguinte persoa vexa que áncora se cargou e cal se esperaba. Un par de pegadas é o bastante pequeno para pegalo nunha nota de traspaso, e a seguinte ocorrencia entón leva cinco minutos en lugar dunha tarde.
Obteña a autoridade correcta pola mesma canle autenticada que entregou o perfil. Sacar un certificado do servidor porque o seu suxeito parece familiar é un acto distinto, e amplía en silencio aquilo no que o cliente confiará.