目錄表

OpenSSL 對電子檔簽章與驗簽方式

- 對電子檔簽章作法:

openssl smime -sign -inkey jonathan.key -signer jonathan.crt -in test.txt -out test.txt.sig

看產生結果

如果想將簽章檔包成 pkcs#7 格式可以直接下 -pk7out 的語法

[casrv@G2B2C-reg dev_caserver]$ openssl smime -pk7out -in test.txt.sig -out test.txt.p7b
[casrv@G2B2C-reg dev_caserver]$ ls -lt
總計 176
-rw-rw-r-- 1 casrv casrv 2204  5月 13 11:38 test.txt.p7b
-rw-rw-r-- 1 casrv casrv 3794  5月 13 11:37 test.txt.sig
:
:
[casrv@G2B2C-reg dev_caserver]$ cat test.txt.p7b
-----BEGIN PKCS7-----
MIIGOAYJKoZIhvcNAQcCoIIGKTCCBiUCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCA48wggOLMIICcwIJALh6V0W0o+9+MA0GCSqGSIb3DQEBBQUAMIGHMQsw
CQYDVQQGEwJUVzEPMA0GA1UECBMGVGFpd2FuMQ8wDQYDVQQHEwZUYWlwZWkxDDAK
:
:
ZH2c77SSfrzfkz+HztNtweNWbbcskVkihHrhjlXAQR4xLnRlg8xR+kxUvuxl8Z5a
kxB+wggrFifZpRiUfiX8bAzHlvIWtOrufLAe2hiKT+bhrowqErqJo8XXR5u3eHsL
vtiUmxJWh5vtQLf5
-----END PKCS7-----

- 對電子檔驗簽作法:

openssl smime -verify -in test.txt.sig -signer test.txt.crt -out test.txt -CAfile RootCA.crt

看產生結果

當驗證失敗時, 會產生 0 byte 的 test.txt 檔案

[casrv@G2B2C-reg tmp]$ openssl smime -verify -in test.txt.sig -signer test.txt.crt -out test.txt -CAfile /var/www/html/dev_ca/jonathan.crt
Verification failure
17047:error:21075075:PKCS7 routines:PKCS7_verify:certificate verify error:pk7_smime.c:231:Verify error:unable to get local issuer certificate
[casrv@G2B2C-reg tmp]$ ls -lt
總計 188
-rw-rw-r-- 1 casrv  casrv     0  5月 13 11:32 test.txt
:

參考網址