非对称加密与数字证书、数字签名的关系?
  
    
    
  
   
     
     
   -----BEGIN PUBLIC KEY-----
   
     
     
   MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8sBFht3URDLrQrJ/CCUe3zrIJ
   
     
     
   QPYJuBUMfnXV11aV38NEFvzr2I89MAsv7PBl0yEusAhsoOssZuaqRpUatMoScqy8
   
     
     
   Ap0c0yAD3OY2SjFeqWdn7p2qjRjBLjVwGwA5gRDaX34Yo/r8fGq9WwDPQTkya5pa
   
     
     
   VkyiyROU9q/q8XppGQIDAQAB
   
     
     
   -----END PUBLIC KEY-----
  
    
    
    
  
    
    
  
   
     
     
   -----BEGIN PRIVATE KEY-----
   
     
     
   MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALywEWG3dREMutCs
   
     
     
   n8IJR7fOsglA9gm4FQx+ddXXVpXfw0QW/OvYjz0wCy/s8GXTIS6wCGyg6yxm5qpG
   
     
     
   lRq0yhJyrLwCnRzTIAPc5jZKMV6pZ2funaqNGMEuNXAbADmBENpffhij+vx8ar1b
   
     
     
   AM9BOTJrmlpWTKLJE5T2r+rxemkZAgMBAAECgYAfAUuJ5Ax/hbj46zTBPKclQ/ir
   
     
     
   XppPVIlY6TrRrbXToNZETQa4dnhrFIbyFBwYj03njxODThn2zN3gYwLDRavifal7
   
     
     
   t07LvE7fwv84QCB4V0/v3WDDex+jCd3HjikiDG48ugC5uZk2Zmz+6DVHTfisr/Ia
   
     
     
   TFaZwnar1Fx2IIY50QJBAO9SdP68hUuk8OROjQixbK3AT0ANVCf4lig6eC/yyWzY
   
     
     
   IpMda+lwFrcA2Zm4P5lTl4czpH6axKZGlqiUJPkS5K0CQQDJ1klfn/R5m3Mnx7jd
   
     
     
   o/jt+izVP+WHTpEoz4DYkLmp2+6umrt1pymTyszJVnSfB8wV2hHablROAgWH8E5+
   
     
     
   LzedAkEAoadk95yHvSzQuqaEhVazPjokTfOy4Lz9UHcOL/UjMa5czFqXRbs83Khq
   
     
     
   U3ctHnhkZiLv/cS1CEuuAHjw8H1ekQJAeo+49mw3FDEk+B77TvtnCXtFBilKw6Md
   
     
     
   2l5GqzsWwuJeSYCEHKlpQel/+TKalocxkoNdG/qrDsODgEyYHV+msQJAPJdy7pwM
   
     
     
   C8IYR8yOGr79R4lK85u1q6bGbZGuqBfnUb7GfuEDIwTgn7wFzFybp/sCzwlSXwpj
   
     
     
   vp+SsYi+oAgQmQ==
   
     
     
   -----END PRIVATE KEY-----
  
    
    
    
  
    
    
  
   
     
     
   gpg --gen-key
   
     
     
   #生成自己的密钥,需设定长度(长度越长越安全)、有效期、用户标识(姓名、邮件、注释)、私钥密码(防止系统入侵,或非法使用私钥,相当于给私钥在加层保护)
  
    
    
    
gpg: 密钥 EDDD6D76 被标记为绝对信任 公钥和私钥已经生成并经签名。 
  
    
    
  
   
     
     
   gpg --gen-revoke[用户ID]
   
     
     
   #生成撤销证书,防止以后密钥需要作废,可以使用该撤销证书撤销公钥。
  
    
    
    
  
    
    
  
   
     
     
   gpg --import test.key
   
     
     
   #撤销本地证书
  
    
    
    
  
    
    
  
   
     
     
   gpg -send-keys[ID]
   
     
     
   #将被撤销的公钥ID发送到CA,即可撤销服务器上的公钥。
  
    
    
    
  
    
    
  
   
     
     
   gpg --send-keys [用户ID] --keyserver hkp://subkeys.pgp.net
   
     
     
   #上传公钥至对应密钥管理服务器(可以是公网托管服务器也可以是自己布署的私有CA)
  
    
    
    
  
    
    
  
   
     
     
   gpg --recipient [用户ID] --output demo.en.txt --encrypt demo.txt
   
     
     
   #recipient后跟着接收者的公钥,即此文件接收方。
  
    
    
    
  
    
    
  
   
     
     
   gpg --decrypt demo.en.txt --output demo.de.txt
   
     
     
   #接收者收到后,即可解密。
  
    
    
    
  
    
    
  
   
     
     
   gpg --sign demo.txt
   
     
     
   #有时不需要加密,只需要证明该文件由我发出,就需要用到签名
  
    
    
    
  
    
    
  
   
     
     
   gpg --local-user [发信者ID] --recipient [接收者ID] --armor --sign --encrypt demo.txt
   
     
     
   #签名+加密
  
    
    
    
  
    
    
  
   
     
     
   gpg --verify demo.txt.asc demo.txt
   
     
     
   #收到签名文件后,可以使用对方公钥来验证,参数为verify
  
    
    
    
最后:
个人的学习见解,希望有技术大佬可以多多指正。
佛系更新,不频繁但足够精炼。
