无法使用 CA 根密钥签署 CSR

无法使用 CA 根密钥签署 CSR

我正在尝试实现相互证书身份验证,我必须同时成为CA和服务器,生成证书并为用户签名。我正在关注这个教程与网络上复杂的文章相比,这是一个非常简单的文章,步骤如下:

  • 创建您自己的证书颁发机构的过程非常简单:

    1. 创建私钥
    2. 自签名
    3. 在您的各个工作站上安装根 CA // ????
  • 完成此操作后,您通过 HTTPS 管理的每台设备只需通过以下步骤创建自己的证书:

    1. 为设备创建 CSR
    2. 使用根 CA 密钥签署 CSR /// 此步骤

创建根密钥:

openssl genrsa -out rootCA.key 2048

自签名此证书。

openssl req -x509 -new -nodes -key rootCA.key -days 1024 -out rootCA.pem

创建证书(每个设备完成一次):

openssl genrsa -out device.key 2048
openssl req -new -key device.key -out device.csr
openssl x509 -req -in device.csr -CA root.pem -CAkey root.key -CAcreateserial -out device.crt -days 500

最后一个命令给了我这个错误:

Signature ok
subject=/C=XX/L=Default City/O=Default Company Ltd/CN=192.168.1.108
Error opening CA Certificate root.pem
3078969068:error:02001002:system library:fopen:No such file or directory:bss_file.c:355:fopen('root.pem','r')
3078969068:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:357:
unable to load certificate

root.pem 存在于同一文件夹中,为什么看不到它?

另外,前两个命令给了我两个文件,root.key并且root.pem:没有crt文件可以提供给浏览器。

怎么了?

答案1

验证您的证书的名称。它不一致(root.pem在一个命令中,rootCA.pem在另一个命令中)。

root.pem您可以按照本文所述在客户端主机上安装该文件,它是您的 CA 证书。PEM 是证书的一种格式,还有其他格式。.crt是一个通用扩展。 如果需要,您可以将证书从 重命名root.pem 为。root.crt

相关内容