2015年4月8日 星期三

Ubuntu 下 OpenSSL 指令操作練習

5.6.2 取得憑證序號
openssl x509 -noout -serial -in 憑證檔








5.6.3 取得憑證的發行者 (Issuer) 欄位
 openssl x509 -noout -issuer -in 憑證檔






5.6.4 取得憑證的使用者 (Subject) 欄位
 openssl x509 -noout -subject -in 憑證檔







5.6.5 檢查憑證起始及終止日期
 openssl x509 -noout -dates -in 憑證檔








5.6.6 取得憑證 MD5SHA-1指紋
 openssl x509 -noout -fingerprint -MD5 -in 憑證檔








 openssl x509 -noout -fingerprint -SHA1 -in 憑證檔









5.6.7  將PEM與PKCS#12互轉

我們預計將Alice的私鑰(newkey.pem)和Alice的憑證(Alice02.crt)結合成一個PKCS#12的檔案(Alice.pfx
$ sudo openssl pkcs12 -export in Alice02.crt -out Alice.pfx -name "Alice's Certificate" -inkey newkey.pem

過程中被要求輸入私鑰密碼,以及匯出 Alice.pfx 的密碼















將憑證匯入Windows














 






AlicePKCS#12檔案 Alice.pfx 轉換為包含Alice私鑰Alice憑證
$ sudo openssl pkcs12 -in Alice.pfx -out Alice_key_cert.pem
會被要求輸入Alice私鑰的密碼,並重新定義私鑰的密碼



此時Alice_key_cert.pem包含包含Alice私鑰Alice憑證,我們將從中取出Alice憑證
$ sudo openssl x509 -in Alice_key_cert.pem -out Alice_cert.pem






5.6.8 文件加密,解密
將寄一封信給Alice,將以Alice的憑證(Alice02.crt)加密,Alice收到信後,再以自己的私鑰(newkey.pem)解密。 

 
將信的內容存在(mes.txt)中,





以Alice的憑證(Alice02.crt)加密,存成 mes.txt.enc
$ sudo openssl smime -encrypt -in mes.txt -out mes.txt.enc Alice02.crt
  
 

















Alice收到信後,將以自己的私鑰(newkey.pem)解密
$ openssl smime -decrypt -in mes.txt.enc -recip Alice02.crt -inkey  newkey.pem
 過程中須輸入Alice的私鑰密碼








5.6.10  文件簽章
Alice 希望將一個訊息檔 mes02.txt,以自己的私鑰(newkey.pem)來將訊息檔 mes02.txt加上數位簽章後成為mes02.txt.sig(裡面有夾帶Alice的憑證Alice02.crt),然後將mes02.txt及數位簽章檔mes02.txt.sig一併寄給Bob。
$ sudo echo "Meet me at the lobby 9AM." > mes02.txt
$ sudo openssl smime -sign -inkey newkey.pem -signer Alice02.crt -in  mes02.txt -out mes02.txt.sig






5.6.11 文件驗章
Bob收到Alice寄過來的mes02.txt及數位簽章檔mes02.txt.sig,便可以利用Alice 的憑證(Alice02.crt)來驗證訊息檔mes02.txt在傳送過程中是否有被修改。
在驗證的過程中會先跟CA驗證 Alice 的憑證(Alice02.crt) 是否正確。

$  openssl smime -verify -in mes02.txt.sig -signer Alice02.crt -out mes02.txt -CAfile demoCA/cacert.pem




沒有留言:

張貼留言

NodeMCU_ESP8266_搭配motoduino的積木撰寫程式

NodeMCU_ESP8266_搭配motoduino的積木撰寫程式 為了教小學生寫程式,一直在尋找適合的積木程式,加上自己能力不足、經費也短缺,因此想找一個適合的小學生使用,又不用買特殊開發版的環境。用了Scrstch的S4A,雖然可以及時看到反映,卻發現無法離線執行,而且...