Authentication

無法使用 CA 根密鑰簽署 CSR

  • April 27, 2016

我正在嘗試實現相互證書身份驗證,我必須同時成為 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文件可以給 browser 。

怎麼了?

驗證您的證書的名稱。這是不一致的(root.pem在一個命令中,rootCA.pem在另一個命令中)。

root.pem您可以按照文章中的說明在您的客戶端主機上安裝該文件,它是您的 CA 證書。PEM 是證書的一種格式,還有其他的。.crt是一個通用的擴展。如果需要,您可以將證書從 重命名root.pem 為root.crt 。

引用自:https://unix.stackexchange.com/questions/73836