有没有办法让openssl滑动提示,例如
Country Name (2 letter code) [US]:
Organization Name (eg, company) [My Company Name LTD.]:
Common Name (eg, YOUR name) [something]:
Run Code Online (Sandbox Code Playgroud)
使用时创建证书
openssl req -config openssl.cnf -new -x509 ...
Run Code Online (Sandbox Code Playgroud)
鉴于这些参数在openssl.cnf文件中提供
例如
countryName = Country Name (2 letter code)
countryName_default = US
countryName_min = 2
countryName_max = 2
0.organizationName = Organization Name (eg, company)
0.organizationName_default = My Company Name LTD.
commonName = Common Name (eg, YOUR name)
commonName_max = 64
commonName_default = ${ENV::CN}
Run Code Online (Sandbox Code Playgroud)
Tzu*_*hay 114
感谢@indiv
根据本指南 -subj是要走的路,例如
-subj '/CN=www.mydom.com/O=My Company Name LTD./C=US'
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 31
另一个解决方案是在配置文件中使用prompt指令.
请参阅OpenSsl:配置文件格式
prompt如果设置为该值,
no则禁用提示证书字段,并直接从配置文件中获取值.它还会更改distinguished_name和attributes部分的预期格式.
distinguished name和attribute部分有两种不同的格式.如果将prompt选项设置为
nothen ,则这些部分只包含字段名称和值:例如,
CN=My Name
OU=My Organization
emailAddress=someone@somewhere.org
Run Code Online (Sandbox Code Playgroud)
这允许外部程序(例如基于GUI)生成包含所有字段名称和值的模板文件,并将其传递给
req.或者,如果缺少提示选项或未设置为否,则该文件包含字段提示信息.它由以下形式的行组成:
fieldName="prompt"
fieldName_default="default field value"
fieldName_min= 2
fieldName_max= 4
Run Code Online (Sandbox Code Playgroud)
Flo*_*anB 13
生成配置文件,在[req]部分中可以输入prompt = no.
例如:
[req]
prompt = no
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
C = US
ST = California
L = Los Angeles
O = Our Company Llc
#OU = Org Unit Name
CN = Our Company Llc
#emailAddress = info@example.com
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com
Run Code Online (Sandbox Code Playgroud)
然后执行eg
openssl req -new -sha256 -config THATFILE.conf -key example.com.key -out example.com.csr
Run Code Online (Sandbox Code Playgroud)
Moh*_*zim 10
不支持混合方法
直觉上可能会认为混合方法是可能的,您可能会考虑在 openssl.cnf 中放置一些静态字段并通过-subj选项指定一些(CN)。然而,这是行不通的。
我测试了一个场景,其中我
req_distinguished_name并openssl req与 一起
跑-subj=/CN=www.mydom.com。openssl 抱怨缺少强制性国家/地区名称字段,并且生成的证书在主题行中只有 CN。似乎-subj选项完全覆盖主题行并且不允许更新单个字段。
这使得以下三种提供主题字段的方法彼此互斥:
-subj选项可选参数-batch使openssl req命令不提示输入任何信息字段。我以这种方式使用它,无需显式配置文件来实现自签名证书的自动化。
它在帮助中列出:
openssl help req
...
...
-batch Do not ask anything during request generation
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36589 次 |
| 最近记录: |