当我使用 openSSL 和配置文件签署中间证书时,我总是收到相同的错误。错误如下:
140736005481480:error:02001002:system library:fopen:No such file or directory:bss_file.c:175:fopen('/Volumes/Project - Encrypted/Security/root/ca/index.txt.attr','rb')
140736005481480:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:182:
140736005481480:error:0E078072:configuration file routines:DEF_LOAD:no such file:conf_def.c:195:
140736005481480:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_lib.c:324:group=CA_default name=email_in_dn
我理解第一个关于文件未找到的错误,但我不明白为什么它寻找的文件不是我在配置中定义的文件。这是我在配置中输入的内容:
database = $dir/index.txt # database index file.
我使用的命令是sudo openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days 3650 -notext -md sha256 -keyfile private/ca.key.pem -cert certs/ca.cert.pem -in intermediate/csr/intermediate.csr.pem -out intermediate/certs/intermediate.cert.pem
有人知道是什么原因导致了这些错误以及如何修复它们吗?
答案1
openssl ca
不仅使用数据库索引文件(您已正确设置为index.txt
),而且还使用数据库属性文件。它始终与索引文件位于同一位置,其名称是索引的名称加上后缀.attr。这个属性文件(据我所知,它并没有真正记录下来)只包含一条信息:配置行
unique_subject = yes/no
index.txt.attr
那么你需要做什么?在存储 CA 的文件夹中创建文件(显然/卷/项目-加密/安全/根/ca),并在其中添加我上面提到的单行。