1.生成私鑰
openssl genrsa -out rsa_private_key.pem 1024
2、通過私鑰生成公鑰
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3、對私鑰進行pkcs8編碼
openssl pkcs8 -in rsa_private_key.pem -topk8 -out pkcs9_rsa_private_key.pem -inform PEM -outform PEM -nocrypt
4、生成加密的私鑰
openssl genrsa -aes256 -passout pass:123456 -out aes_rsa_private_key.pem 1024
5、通過加密私鑰生成公鑰
openssl rsa -in aes_rsa_private_key.pem -passin pass:123456 -pubout -out rsa_public_key.pem
6、非加密私鑰轉加密
openssl rsa -in rsa_private_key.pem -aes256 -passout pass:123456 -out t_aes_rsa_private_key.pem
7、加密轉非加密
openssl rsa -in t_aes_rsa_private_key.pem -passin pass:123456 -out t_rsa_private_key.pem
8、私鑰pem轉der
openssl rsa -in rsa_private_key.pem -outform der -out rsa_private_key.der
9、查看私鑰明細
openssl rsa -in rsa_private_key.pem -text -noout
10、通過已有的私鑰生成簽名證書
openssl req -new -x509 -days 365 -key aes_rsa_private_key.pem -out cert.crt
11、生成私鑰和簽名證書
openssl req -newkey rsa:2048 -nodes -keyout rsa_private_key.pem -x509 -days 365 -out cert.crt #-nodes指的是不用密碼
12、通過私鑰生成CA簽名
openssl req -new -key aes_rsa_private_key.pem -passin pass:123456 -out server.csr
*** 此時生成的 csr簽名請求文件可提交至 CA進行簽發 ***
13、查看csr細節信息
openssl req -noout -text -in server.csr
14、查看證書細節
openssl x509 -in server.crt -noout -text
15、通過pem證書和私鑰生成pkcs#12證書
openssl pkcs12 -export -password pass:123456 -in server.crt -inkey rsa_private_key.pem -out server.p12
其中-export指導出pkcs#12 證書,-inkey 指定了私鑰文件,-passin 爲私鑰(文件)密碼(nodes爲無加密),-password 指定 p12文件的密碼(導入導出)
##############################################################################################
摘要算法
過程:
1.使用md5指定sha1算法,明文輸出簽名文件(所以建議做摘要和簽名驗證時使用dgst指令,以免誤導)
openssl dgst -sha1 -sign rsa_private_key.pem cert.crt -out sign.txt
---一樣的結果
openssl md5 -sha1 -sign rsa_private_key.pem cert.crt -out sign.txt
---指定-c -hex參數,以16進制打印結果
openssl dgst -sha256 -c -hex -sign rsa_private_key.pem cert.crt
結果:
2.使用RSA祕鑰進行簽名驗證操作
--公鑰驗證
openssl dgst -verify rsa_public_key.pem -sha1 -signature sign.txt cert.crt
--私鑰驗證
openssl dgst -prverify rsa_private_key.pem -sha1 -signature sign.txt cert.crt
結果:
證書信息:
證書版本: V3
證書序列號: 07000220180925110000001562261
證書持有者祕鑰標識符: 80:B2:32:B9:37:C3:F9:E9:8D:D3:DC:44:E9:59:AB:47:93:9E:70:CB
//證書擁有者
證書擁有者信息: /C=CN/ST=廣東省/L=深圳市/O=機構測試3/OU=深圳共築網絡科技項目測試/CN=機構測試3
證書擁有者信息CN: 機構測試3
證書擁有者信息O: 機構測試3
證書擁有者信息OU: 深圳共築網絡科技項目測試
//證書頒發者
頒發者祕鑰標識符: keyid:95:4D:13:1F:6B:21:91:09:6F:16:12:8A:65:BC:0B:56:0B:11:6B:C8
證書頒發者信息: /C=CN/O=Global Digital Cybersecurity Authority Co., Ltd./CN=GDCA Public CA1
證書頒發者CN: GDCA Public CA1
證書頒發者O: Global Digital Cybersecurity Authority Co., Ltd.
證書有效期: 2018-9-25:00:00:00 2019-9-25:00:00:00
祕鑰用途: Digital Signature, Non Repudiation
證書信息:
CN: 公有名稱(Comon Name) ---對於簽名證書爲申請單位名稱,對於客戶端爲證書申請者姓名
O:單位名稱(Orgnization Name) ---對於簽名證書爲申請單位名稱,對於客戶端證證書申請者所在的單位名稱
其他的單詞意思好理解
OU: 顯示其他內容
issuer : 證書是由哪個公司創建的
名詞解釋:
OAEP(optimal asymmetric encryption padding):最優非對稱加密填充。RSA加解密多基於OAEP。
PSS(probability Signature schema):。RSA的簽名認證是基於PSS的