Задать пароль от приватного ключа удостоверяющего центра в командной строке
Задача: Мне необходимо автоматизировать процесс создания пользователей для ovpn. Будет использоваться awx, поэтому необходимо написать команду так чтобы все что может затребовать команда передавать через атрибуты или как-нибудь по другому. Суть в том чтобы ничего не запрашивало c консоли.
Пользовательские ключи и сертификаты созданы. Далее необходимо авторизовать удостоверяющим центром пользовательский сертификат. При такой процедуре требует пароль от приватного ключа CA. Я с помощью аттрибута -keyfile указал ссылку на этот файл. Однако у меня все равно требует Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:. Вот команда:
sudo openssl ca -batch -config /etc/openvpn/keys/safessl-easyrsa.cnf -out /tmp/keys/client.crt -in /tmp/keys/client_unpass.crt -keyfile /etc/openvpn/keys/private/ca.key -cert /etc/openvpn/keys/ca.crt
Не делаю средствами easy-rsa, т.к. не соответствует моим требованиям. ( Для защиты, избегаю инструкции nopass, а там нету атрибута для проброса пароля).
Вопрос: Можно ли пробросить пароль от приватного ключа CA в команду? Сделать что то вроде echo "Password" > sudo openssl ca -batch -config /etc/openvpn/keys/safessl-easyrsa.cnf -out /tmp/keys/client.crt -in /tmp/keys/client_unpass.crt -keyfile /etc/openvpn/keys/private/ca.key -cert /etc/openvpn/keys/ca.crt
Ответы (1 шт):
Пароль к ключу передается через опцию -passin. Openssl поддерживает несколько схем передачи пароля:
-passin pass:Password- парольPasswordзадан прямо в командной строке,-passin env:PSWD_VAR- пароль задан в переменной окруженияPSWD_VAR-passin file:/path/to/key/pwd.txt- пароль задан в файле/path/to/key/pwd.txt-passin stdin- пароль читать из/dev/stdin-passin fd:6- пароль читать из файлового дескриптора 6
В вашем примере это будет так:
echo "Password" | sudo \
openssl ca -batch -config /etc/openvpn/keys/safessl-easyrsa.cnf \
-out /tmp/keys/client.crt -in /tmp/keys/client_unpass.crt \
-keyfile /etc/openvpn/keys/private/ca.key -passin stdin \
-cert /etc/openvpn/keys/ca.crt
Без echo:
sudo \
openssl ca -batch -config /etc/openvpn/keys/safessl-easyrsa.cnf \
-out /tmp/keys/client.crt -in /tmp/keys/client_unpass.crt \
-keyfile /etc/openvpn/keys/private/ca.key -passin pass:Password \
-cert /etc/openvpn/keys/ca.crt