使用 openssl 中创建的证书颁发机构签署证书请求

使用 openssl 中创建的证书颁发机构签署证书请求

我使用以下命令在 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

我怎样才能摆脱这个错误?该命令会使用我上面定义的权限还是系统中的某些默认权限?

编辑:

为了完整起见,我留下了必须执行的步骤:

  1. 创建相关文件:
mkdir demoCA
mkdir ./demoCA/newcerts
touch ./demoCA/index.txt

还要在 demoCA 中创建一个“串行”文件,其中包含 01 和末尾的换行符。

  1. 证明:
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_keycertificate指向新的私钥和证书文件位置,或者使用命令的-cert-keyfile参数openssl ca来覆盖 中的值/etc/ssl/openssl.cnf

相关内容