Pergunta original:
Passei horas lendo o manual e procurando por essa resposta e todas as soluções estão desatualizadas ou não funcionam.
Estou usando o Ubuntu 24.04.2 LTS
Quero executar este comando em um script bash e fornecer a senha em um arquivo ou variável com antecedência, sem intervenção do usuário:
./easyrsa gen-req nome_do_cliente
Se você tiver uma resposta que funcione hoje, ficarei grato.
Informações sobre a versão do EasyRSA Versão: 3.1.7
O Easy RSA é essencialmente um wrapper para
openssl
, então procure como evitar solicitações de senha paraopenssl
. Como alguns usuários experientes observaram naquela postagem de Superusuário, a opção para definir uma senha para um arquivo de saída é--passout
, e esta é uma das opções globais aceitas peloeasyrsa
script.Então tente:
Onde
abc
está a senha?A solução verificada
Mudei de
gen-req
parabuild-client-full
para permitir a automatização da criação completa do cliente em um único comando, sem a necessidade de assinar a solicitação. A--batch
opção elimina a solicitação do nome comum como entrada e usa o nome de entrada como nome comum. Obuild-client-full
comando também cria um arquivo embutido localizado em/etc/openvpn/easy-rsa/pki/inline/
que contém o certificado, a chave e a CA.Caso contrário, se não estiver usando a
--batch
opção de usar um nome inserido como Nome Comum (CN) no EasyRSA, você precisará modificar o arquivo vars e usar o--req-cn
sinalizador ao gerar a solicitação de certificado. Oset_var EASYRSA_REQ_CN "your_common_name"
comando no arquivo vars definirá o CN padrão, e o sinalizador --req-cn permite substituí-lo para uma solicitação específica, como ao gerar um certificado de servidor ou cliente.Esses dois comandos foram verificados para funcionar em uma configuração OpenVPN ativa. Um deles usa um arquivo como opção e o outro usa uma senha embutida:
Nota: Você deve estar no diretório /etc/openvpn/easy-rsa/, ou onde quer que o easy-rsa esteja localizado para que os comandos funcionem.
Aqui está a saída sem intervenção do usuário: