Que programa é o dono desse config.json na sua configuração do OpenVPN?
Um ficheiro chamado config.json pode pertencer a uma GUI, a um daemon ou a um formato de exportação em vez do OpenVPN. Encontre o analisador antes de editar ou substituir chaves.
Encontras um ficheiro chamado config.json, menciona um servidor VPN e a suposição surge de imediato: deve ser a ligação OpenVPN. Muitas vezes não é. Um ficheiro JSON com esse nome pode pertencer a uma interface de ambiente de trabalho que inicia o cliente, a um daemon que guarda as suas próprias definições ou ao formato de exportação de um produto, e cada um deles tem o seu próprio esquema.
O nome do ficheiro é a pista menos útil. Começa pelo processo que lê o ficheiro, verifica depois se o formato que espera é sequer JSON e só então decides se editar o ficheiro é a forma suportada de alterar alguma coisa.
Começa pelo processo, não pelo nome do ficheiro
Olha para o que está realmente a correr. Uma unidade de serviço, um script de arranque ou uma aplicação da bandeja do sistema indicam o binário que iniciam e, muitas vezes, o caminho de configuração que passam. A pasta que contém o ficheiro é uma segunda pista: pastas de dados de aplicações, pastas de configuração de serviços e pastas de perfis de utilizador implicam proprietários diferentes.
Depois lê a documentação do produto proprietário desse componente. Se o JSON pertence a um wrapper, as suas chaves são as chaves do wrapper, e um objeto de aspeto plausível construído a partir do exemplo de outro produto será rejeitado ou ignorado em silêncio.
Dois ficheiros com o mesmo nome em pastas diferentes são uma armadilha comum. Um pode ser estado gerado que o serviço reescreve a cada arranque, e o outro o modelo que uma pessoa deve editar. Alterar o errado produz uma correção que dura até ao próximo reinício.
O que é na realidade um perfil do Community OpenVPN
O Community OpenVPN 2.6 lê um formato de texto baseado em opções. Um perfil é uma sequência de diretivas: uma linha de modo cliente, uma linha de dispositivo, um ponto final remoto, mais opções de identidade, cifra e rotas, e pode incorporar material de certificado e chave dentro de blocos em linha.
Esse formato é analisado linha a linha pelo próprio cliente. Entregar-lhe um documento JSON através da opção config não ativa um analisador JSON; a primeira linha será rejeitada como diretiva desconhecida. Mudar o nome de um ficheiro JSON para terminar em .ovpn também não converte o seu conteúdo, e um ficheiro de opções válido não se torna inválido porque a extensão é invulgar.
O OpenVPN Connect e o OpenVPN 3 Linux têm os seus próprios caminhos de importação e gestão de perfis. Esses produtos podem aceitar um perfil e guardá-lo na sua própria base de dados ou estado de serviço, o que não é o mesmo que um ficheiro JSON que descreve um servidor por acaso.
Editar estado que pertence a outro componente
Se o JSON é gerado, editá-lo é uma corrida. Um serviço em execução pode voltar a escrevê-lo ao encerrar, ao reconectar ou na próxima alteração de definições, e uma edição manual desaparece sem erro. Prefere o comando de importação do produto, a API de gestão ou a interface de definições, porque esses caminhos atualizam o estado interno que o ficheiro representa. Um ficheiro que volta atrás depois de um reinício diz-te qual caminho era o duradouro.
Se mesmo assim editares um ficheiro gerado, para primeiro o serviço, guarda uma cópia de segurança e faz a alteração mais pequena possível. Depois verifica se o serviço reescreve o ficheiro ao arrancar, porque um ficheiro que volta atrás no arranque significa que a verdadeira fonte de verdade está noutro lugar e que a edição nunca teria durado.
As palavras-passe e as chaves privadas incorporadas são uma questão à parte. O JSON pode transportar uma chave completa com a mesma facilidade de um ficheiro de opções, por isso trata qualquer exportação como segredo, mantém-na fora de discos partilhados e oculta os valores antes de colar a estrutura numa pergunta de fórum.
Verificar a alteração e proteger o ficheiro
Verificar não é “o JSON é analisado”. A análise só demonstra que as chavetas coincidem; não diz nada sobre se o proprietário reconhece as chaves. Verifica o estado próprio do produto: a lista de perfis ativos, a ligação selecionada e uma reconexão que use realmente os novos valores. Um perfil que aparece na lista mas nunca se torna o selecionado continua a não ser o perfil em uso.
Observa o registo do componente que editaste, não apenas o do cliente VPN. Um wrapper que rejeita o teu ficheiro costuma registá-lo no seu próprio registo, e um cliente que nunca recebeu o ficheiro parece idêntico a um cliente que recebeu definições erradas.
Guarda uma cópia do ficheiro que funciona e anota a versão do produto com que testaste. Estes formatos mudam entre versões, e uma estrutura que funcionava no ano passado pode ser rejeitada após uma atualização com uma mensagem que não menciona o esquema de todo.
Resumo do percurso: identifica o processo, lê a sua documentação, confirma se o ficheiro é sequer JSON, usa o caminho de edição suportado e verifica através do estado próprio do produto. O nome do ficheiro nunca respondeu a nenhuma dessas perguntas.