Configuration 配置文件和命令行中带有DN值的CSR

Configuration 配置文件和命令行中带有DN值的CSR,configuration,openssl,Configuration,Openssl,我的openssl配置中有以下部分: [ req_distinguished_name ] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name localityName = Locality Name 0.organizationName

我的openssl配置中有以下部分:

[ req_distinguished_name ]
  countryName                     = Country Name (2 letter code)
  stateOrProvinceName             = State or Province Name
  localityName                    = Locality Name
  0.organizationName              = Organization Name
  organizationalUnitName          = Organizational Unit Name
  commonName                      = Common Name
  emailAddress                    = Email Address
  countryName_default             = DE
  stateOrProvinceName_default     = myState
  localityName_default            = myLocality
在命令行上,我使用以下命令创建一个新的CSR:

openssl req -config /home/loci/tmp/certs/openssl.conf -new -batch -sha256 -verbose -key ServerCert.key -passin env:password -out ServerCert.csr
当我添加“-subc”/CN=ServerCA”时,配置文件中的预定义值将被忽略。 我知道在交互模式下需要这些值。但是我必须使用批处理模式,因为最终的脚本必须自动运行。在命令行上设置完整的字符串是另一个选项,但我希望将尽可能多的配置移到配置文件中


是否可以只在命令行上定义DN的一部分?

Stack Overflow是一个用于编程和开发问题的站点。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。还要看到,您还应该说明您正在使用的shell,因为它们是不同的。Bash具有,因此您可以在脚本中构建整个配置并将其发送到命令中。@jww:这是关于编程的,因为主题是创建一个脚本,以自动创建带有openssl中预定义的DN的某些部分的证书。cnf shell的类型与此无关,因为openssl命令在任何地方都是相同的。但是是的:bash是默认的shell。问题是如何在openssl.cnf中定义DN的部分,以及如何在命令行中定义部分。