web開發中使用證書中的密鑰進行加密與簽名


 

一. 首先說一下幾種常見證書的存放形式:

      證書格式      存放形式        

  .p12        用於存放公鑰/私鑰。    

      .pem        用於存放公鑰/私鑰

      .pfx          用於存放公鑰/私鑰

      .cer/.crt      用於存放公鑰/證書序列號還有證書的信息等等

二.  提取證書中的內容(僅限linux命令方式)

  1.  .p12證書

    openssl pkcs12 -in 700000000000001.p12 -out 700000000000001.pem     --將.p12證書轉化為.pem證書(如果pfx證書已加密,會提示輸入密碼)

    openssl rsa -in 700000000000001.pem -text -out private.key          --提取證書的私鑰

    openssl rsa -in private.key -pubout -out public.key               --提取證書的公鑰

      2.  .pem證書

    openssl rsa -in 700000000000001.pem -text -out private.key          --提取證書的私鑰(如果pfx證書已加密,會提示輸入密碼)

    openssl rsa -in private.key -pubout -out public.key               --提取證書的公鑰

  3.  .pfx證書

            openssl pkcs12 -in 700000000000001.pfx -nocerts -nodes -out pri_pub.key  --提取證書中的密鑰對(如果pfx證書已加密,會提示輸入密碼)

     openssl rsa -in  pri_pu.key -out private.key                       --提取密鑰對中的私鑰  

          openssl rsa -in private.key -pubout -out public.key                  --提取密鑰對中的公鑰

  4.  .cer/.crt證書

     openssl x509 -in 700000000000001.cer -text -out info.text          --提取證書中的序列號等信息

 三.   用命令進行加密/解密/簽名/驗簽等等

    加密--公鑰  解密--私鑰  簽名--私鑰  驗證--公鑰

  1.  對文件簽名

    openssl rsautl -sign -inkey prikey.pem -in a.txt  -hexdump            --文件a.txt的內容不能太長

    openssl rsautl -sign -inkey prikey.pem -in a.txt  -out sig.dat  

  2.  驗證簽名

    openssl rsautl -verify -inkey prikey.pem -in  sig.dat                --驗證成功后打印出a.txt的內容

  3.  公鑰加密

    openssl rsautl -encrypt -pubin -inkey pubkey.pem -in a.txt -out b.txt 

  4.  私鑰解密

    openssl rsautl -decrypt -inkey prikey.pem -in b.txt  

    

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM