使用OpenSSL生成根CA证书签名请求(CSR)时系统仍弹出交互式配置提示的问题
使用OpenSSL生成根CA证书签名请求(CSR)时系统仍弹出交互式配置提示的问题
兄弟,我太懂你现在的烦躁了——明明已经把所有配置参数都老老实实写进rootCA_openssl.cnf里,执行CSR生成命令时也特意指定了这个配置文件,结果Ubuntu还是跳出来一堆交互式提示,让你重复填写那些早就定义好的字段,这纯纯是折腾人啊!
先把你的现有操作和配置理清楚,方便咱们定位问题:
你的现有配置与操作步骤
1. 已经写好的根CA配置文件 rootCA_openssl.cnf
[ req ] distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] countryName = NO countryName_default = NO stateOrProvinceName = Stavanger stateOrProvinceName_default = Stavanger organizationName = Stavanger Info organizationName_default = Stavanger Info commonName = 88.5.44.3 commonName_default = 88.5.44.3 [ v3_req ] basicConstraints = CA:true keyUsage = critical, keyCertSign
2. 你执行的命令
- 首先生成了带密码的RSA根密钥:
openssl genrsa -aes256 -out rootCA.key --passout pass:password 2048
- 然后尝试生成CSR(就是出问题的这条命令):
openssl req -new -key rootCA.key -out rootCA.csr -config rootCA_openssl.cnf --passin pass:password
3. 遇到的问题
执行上面的CSR命令后,系统还是弹出交互式提示(比如You are about to be asked to enter information that will be incorporated into your certificate request...这类内容),要求你手动确认或填写那些已经在配置文件里定义好的字段。
问题原因&解决办法
其实问题出在[ req ]段的配置里——你虽然指定了默认值,但OpenSSL默认还是会弹出提示让你确认。咱只需要在[ req ]段里加一行配置,告诉OpenSSL“别啰嗦,直接用配置里的默认值就行”。
把你的rootCA_openssl.cnf里的[ req ]段修改成这样:
[ req ] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no # 新增这行,彻底禁用交互式提示
修改完配置后,再重新执行生成CSR的命令,这次系统就不会再弹出那些烦人的提示了,会直接读取配置文件里的参数生成CSR。
验证一下是否生效
生成CSR后,你可以用这条命令查看CSR的详细内容,确认所有字段都和配置文件里的一致:
openssl req -in rootCA.csr -noout -text
备注:内容来源于stack exchange,提问作者Europa
相关产品推荐
相关产品推荐

