我正在使用freeradius进行EAP-TLS身份验证。
我运行以下命令来生成密钥:
openssl req -new -out client.csr -keyout client.key -config ./client.cnf
我想为不同的用户生成几个密钥/证书:
emailAddress
和commonName
下的[client]
input_password
和output_password
下的[ req ]
问题::openssl
命令的参数是否覆盖配置文件?
如果没有其他解决方案,我正在考虑使用sed
。
/etc/freeradius/3.0/certs# cat client.cnf :
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = ./
certs = $dir
crl_dir = $dir/crl
database = $dir/index.txt
new_certs_dir = $dir
certificate = $dir/ca.pem
serial = $dir/serial
crl = $dir/crl.pem
private_key = $dir/ca.key
RANDFILE = $dir/.rand
name_opt = ca_default
cert_opt = ca_default
default_days = 365
default_crl_days = 30
default_md = sha256
preserve = no
policy = policy_match
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ req ]
prompt = no
distinguished_name = client
default_bits = 4096
input_password = clientpassword
output_password = clientpassword
[client]
countryName = JP
stateOrProvinceName = Tokyo
localityName = Company building
organizationName = Company name
emailAddress = testuser@company.com
commonName = testuser@company.com
答案 0 :(得分:0)
我发现这两个选项可以覆盖配置文件中的变量:
openssl.cnf
中的大多数定义都可以使用命令行选项(如this answer suggests)覆盖。但是,我不确定这是否适用于您提到的变量。$ENV::name
格式,可以在任何其他节中替换环境变量。此信息来自OpenSSL documentation (config - OpenSSL CONF library configuration files)。关于第二种方法,this config file从subjectAltName
环境变量中读取[ server_reqext ]
部分中的SAN
变量。