As Chaves de autorização TLS no OpenVPN são chaves pré-compartilhadas .
Você deve gerar uma chave e copiar a mesma chave no servidor e no cliente.
A menos que tenha entendido corretamente, você gerou essa chave no servidor e no cliente (o que significa que são duas chaves diferentes). Então, gere uma chave e copie-a para ambos os sistemas, então não deve haver nenhum erro que as chaves local / remota estejam fora de sincronia.
Seguindo em frente , parece que isso é não o problema no seu caso, foi meu mal-entendido que você tenha usado isso da maneira errada.
De um arquivo da lista de discussão do OpenVPN (ênfase adicionada):
This message can occur when running OpenVPN in UDP mode, as UDP is
not connection-oriented, so there's no easy way for one side of the
connection to know that the other side has gone down or restarted. This
error will almost never occur when running in TCP mode, because TCP
enforces solid client/server semantics and connection-reset when either
side of the connection goes down.
Observação: o seguinte é uma declaração sem referência / dados concretos que a respaldam:
Levando em consideração essa citação, e o fato de você ter configurado o udp4 para ser o protocolo que o OpenVPN está rodando, parece-me que é um mau ideia de usar TLS juntamente com UDP . O TLS deve ser um protocolo seguro, portanto, ele precisa de uma conexão confiável, que o UDP não garante.
De RFC 5246 - TLS :
At the lowest level, layered on top of some reliable
transport protocol (e.g., TCP [TCP]), is the TLS Record Protocol.
Portanto, o TLS requer uma conexão confiável, portanto, o UDP não deve ser usado.
Você também pode ler mais sobre o motivo em esta resposta no Security SE .
Basta mudar de:
proto udp4
para:
proto tcp
Nas configurações do OpenVPN.
Referências (para ler os detalhes):
OpenVPN - Uso de tls-auth
Lista de discussão do OpenVPN
OpenVPN HowTo - configuração
Segurança SE - Por que o TLS exige o TCP?
RFC 5246 - O protocolo TLS
Wikipedia - UDP