Вы можете сделать это в командной строке с помощью read
и с помощью переменной результата в вашей команде openssl
:
read -p "FQDN? " cn; openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout $cn.key -subj "/CN=$cn\/emailAddress=admin@$cn/C=US/ST=Ohio/L=Columbus/O=Widgets Inc/OU=Some Unit" -out $cn.csr
Если это то, что вы делаете часто, сделайте это функцией и добавьте ее в файл .bashrc
, что позволит вам заменить подсказку аргументом:
function csr { openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout $1.key -subj "/CN=$cn\/emailAddress=admin@$1/C=US/ST=Ohio/L=Columbus/O=Widgets Inc/OU=Some Unit" -out $1.csr }
Затем вызывайте его всякий раз, когда вам это нравится:
csr example.com
Следующий файл openssl.conf делает почти то же самое:
[req]
default_bits=2048
encrypt_key=no
default_md=sha256
distinguished_name=req_subj
[req_subj]
commonName="Fully Qualified Domain Name (FQDN)"
emailAddress="Administrative Email Address"
countryName="Country Name (2 letter code)"
countryName_default=US
stateOrProvinceName="State Name (full name)"
stateOrProvinceName_default=Ohio
localityName="Locality Name (e.g., city)"
localityName_default=Columbus
organizationName="Organization Name (e.g., company)"
organizationName_default=Widgets Inc
organizationalUnitName="Organizational Unit Name (e.g., section)"
organizationalUnitName_default=Some Unit
Затем либо установите переменную среды OPENSSL_CONF
в этот файл
export $OPENSSL_CONF=~/.dotfiles/openssl.conf
или укажите это через переключатель на CLI
openssl req -new -config openssl.conf -keyout example.key -out example.csr
Я говорю почти потому, что он по-прежнему запрашивает у вас эти атрибуты, но теперь они по умолчанию, так что вы можете просто вбить ключ Return
до конца после указания домена и вашей электронной почты.