如何将证书CN名称定义为变量

时间:2018-11-22 14:16:22

标签: unix ssl openssl ssl-certificate

我要发出一条通用命令,该命令在运行时应将证书的CN的值作为执行该命令的主机名。

我当前使用的命令如下

openssl req -sha256 -new -key $HOSTNAME.key -out $HOSTNAME.csr -subj 'CN=$HOSTNAME'

HOSTNAME的值在环境变量中定义。例如localhost

执行上述命令会创建一个具有localhost.key实际值的密钥文件,但是CN名称反映为$ HOSTNAME,其中我希望CN为真实主机名,即环境变量中提到的值,即本地主机

1 个答案:

答案 0 :(得分:0)

您必须使用引号,并且在字段名称前使用斜杠是个好主意:

openssl req -sha256 -new -key $HOSTNAME.key -out $HOSTNAME.csr -subj "/CN=$HOSTNAME"

如果需要连接:

openssl req -sha256 -new -key $HOSTNAME.key -out $HOSTNAME.csr -subj "/CN=prefix${HOSTNAME}sufix"