Nebula necesita tres ficheiros: CA, certificado de host e clave de host
Tres ficheiros fan tres traballos: o certificado de CA establece a confianza, o certificado de host nomea o nodo e a clave privada queda só nese nodo.
Se lle dás a alguén un directorio de Nebula, normalmente copiará todo, incluído o ficheiro que nunca debería saír da túa estación de traballo. A confusión é comprensible, porque os tres ficheiros do bloque PKI dun host parécense e dous deles son certificados. Cada un responde a unha pregunta distinta, e só dous pertencen ao nodo. Clasifícaos por función antes de copiar nada.
Tres ficheiros, tres traballos distintos
O certificado de CA é unha áncora de confianza: dille a un host en que autoridades confiar cando outro host presenta a súa identidade. O certificado de host é a credencial propia do nodo, asinada por esa autoridade. A clave de host é a metade privada correspondente, e pertence exactamente a unha máquina. Un nodo co certificado de CA e o seu propio par pode unirse á overlay e demostrar quen é. Un nodo coa clave doutra persoa tamén pode facerse pasar por ela, e ese é o fallo que esta disposición existe para evitar.
Copiar un directorio de host que funciona a unha segunda máquina non é, polo tanto, un atallo. É unha identidade duplicada cun resultado previsible.
A clave de sinatura nunca viaxa
A clave de sinatura da CA non forma parte de ningunha configuración de host. Crea identidades novas, e quen a ten pode emitir un certificado para calquera enderezo da overlay e calquera grupo. Os pares só necesitan o certificado de CA público para verificar sinaturas, así que a metade privada non ten ningún papel nun cliente. Gárdaa na máquina onde se emiten os certificados e trata unha copia accidental como un incidente, non como unha comodidade.
Se varias persoas necesitan emitir certificados, dálles un proceso en lugar dunha copia da clave. Unha clave de sinatura compartida nun portátil é unha autoridade que ninguén pode auditar nin revogar.
Que hai dentro dun certificado de host
Un certificado de host vincula a unha clave moito máis que un nome de ficheiro. Leva o enderezo do nodo na overlay, o seu nome e a súa pertenza a un grupo, todo asinado para que un par poida decidir se o acepta. Por iso cambiar o nome dun host significa emitir un certificado novo e non editar unha liña de configuración.
nebula-cert print -path host.crt mostra o que se emitiu realmente. Léoo antes de supor que o certificado leva o enderezo que pretendías.
Recargar non sempre abonda
Algúns axustes de PKI recárganse cun sinal, e outros non. Un certificado cuxo enderezo na overlay cambiou é o caso clásico que require reiniciar o proceso en lugar de recargalo.
Confirma que rutas abriu realmente o proceso en execución, non só que rutas nomea o ficheiro de configuración. Despois cambia unha credencial, verifica a conectividade e os rexistros, e só entón toca a seguinte. Unha recarga que parece funcionar mentres o certificado antigo permanece na memoria produce unha discrepancia que parece un problema de encamiñamento. Reiniciar é barato; depurar unha identidade que a metade da overlay aínda ve á antiga non o é.
Retirar unha identidade require unha lista de bloqueo
Substituír unha credencial perdida ou exposta ten dúas metades. O certificado novo restaura o acceso, e a identidade antiga debe deixar de ser aceptada. Son operacións separadas, e facer só a primeira deixa válida a credencial comprometida.
A lista de bloqueo é un ficheiro que distribúes aos hosts, non algo que un lighthouse envíe pola súa conta. Planifica como chega a cada nodo, incluídos os que hoxe están fóra de liña, e anota que pegadas bloqueaches. Rota a clave na máquina emisora e garda os datos do certificado novo co rexistro do host. Unha revogación que só existe na máquina que editaches non é unha revogación.