Openssl

使用在 openssl 中創建的證書頒發機構簽署證書請求

  • July 16, 2017

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

您已使用第一個命令創建了一個新的密鑰對。您現在需要將這些資訊告知 OpenSSL CA。

編輯/etc/ssl/openssl.cnf並確保private_keyandcertificate行指向新的私鑰和證書文件位置,或者使用命令的-certand-keyfile參數openssl ca覆蓋/etc/ssl/openssl.cnf.

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