在 Ubuntu 中使用 OpenSSL 進行簽名的步驟如下:
首先,確保你的系統上安裝了 OpenSSL。Ubuntu 默認已經安裝了 OpenSSL,但如果沒有,可以使用以下命令安裝:
sudo apt update
sudo apt install openssl
使用 OpenSSL 生成一個私鑰。以下命令將生成一個 2048 位的 RSA 私鑰:
openssl genrsa -out private_key.pem 2048
這將在當前目錄下生成一個名為 private_key.pem
的文件。
使用私鑰生成一個證書簽名請求 (CSR)。在生成 CSR 的過程中,你需要提供一些信息,如國家、組織名稱等:
openssl req -new -key private_key.pem -out certificate_signing_request.csr
按照提示輸入所需的信息。CSR 將保存在 certificate_signing_request.csr
文件中。
如果你只是想創建一個自簽名證書,可以使用以下命令:
openssl x509 -req -days 365 -in certificate_signing_request.csr -signkey private_key.pem -out certificate.pem
這將生成一個有效期為 365 天的自簽名證書,并保存在 certificate.pem
文件中。
假設你有一個名為 data.txt
的文件,你想使用私鑰對其進行簽名:
openssl dgst -sha256 -sign private_key.pem -out signature.bin data.txt
這將對 data.txt
進行 SHA-256 哈希,并使用私鑰對其進行簽名,結果將保存在 signature.bin
文件中。
為了驗證簽名,你需要使用公鑰。首先,從 CSR 或證書中提取公鑰:
openssl x509 -pubkey -in certificate.pem -noout > public_key.pem
然后,使用公鑰驗證簽名:
openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txt
如果簽名有效,你將看到輸出 Verified OK
。
通過這些步驟,你可以在 Ubuntu 中使用 OpenSSL 進行簽名和驗證簽名。