我使用以下命令在 Ubuntu 中创建了一个证书颁发机构:
openssl req -config /etc/ssl/openssl.cnf -new -x509 -keyout ck.pem -out cacert.pem -days 365
然后我使用以下命令创建了一个证书请求:
openssl req -out C.csr -new -newkey rsa:2048 -nodes -keyout c_p.key
我想使用我创建的证书颁发机构签署此请求。为此我执行了:
openssl ca -config /etc/ssl/openssl.cnf -policy optional -out C.crt -infiles C.csr
但我收到错误:
Using configuration from /etc/ssl/openssl.cnf unable to load CA private key 140189274035872:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY
我怎样才能摆脱这个错误?该命令会使用我上面定义的权限还是系统中的某些默认权限?
编辑:
为了完整起见,我留下了必须执行的步骤:
- 创建相关文件:
mkdir demoCA mkdir ./demoCA/newcerts touch ./demoCA/index.txt
还要在 demoCA 中创建一个“串行”文件,其中包含 01 和末尾的换行符。
- 证明:
openssl ca -config /etc/ssl/openssl.cnf -cert cacert.pem -keyfile ck.pem -out C.crt -infiles C.csr
答案1
您已使用第一个命令创建了一个新的密钥对。您现在需要将这些信息告知 OpenSSL CA。
编辑/etc/ssl/openssl.cnf
并确保 和private_key
行certificate
指向新的私钥和证书文件位置,或者使用命令的-cert
和-keyfile
参数openssl ca
来覆盖 中的值/etc/ssl/openssl.cnf
。