下载nginx服务器时提供了pgp证书,可以验证完整性。
pgp证书是这样生成的(个人理解):
1. 现找到文件的HASH码,类似于md5
2. 用私钥对其进行加密。
3. 将公钥暴露到网站上。
4. 将证书暴露到网站上。
5. 终端用户导入公钥到本地。
6. 终端用户使用公钥解密证书,拿出hash信息来验证文件的完整性。
参考列表:
http://www.jb51.net/LINUXjishu/156064.html
http://blog.sina.com.cn/s/blog_630bf12f0100nl7i.html
下面是验证文件nginx-1.6.2.zip的过程:
[email protected]:~/桌面$ ls
aalexeev.key is.key mdounin.key nginx-1.6.2.zip.asc sb.key
glebius.key maxim.key nginx-1.6.2.zip nginx_signing.key
[email protected]:~/桌面$ gpg --import *.key
gpg: 密钥 F5806B4D:公钥“Andrew Alexeev <[email protected]>”已导入
gpg: 密钥 6C7E5E82:公钥“Gleb Smirnoff <[email protected]>”已导入
gpg: 密钥 A524C53E:公钥“Igor Sysoev <[email protected]>”已导入
gpg: 密钥 2C172083:公钥“Maxim Konovalov <[email protected]>”已导入
gpg: 密钥 A1C052F8:公钥“Maxim Dounin <[email protected]>”已导入
gpg: 密钥 7BD9BF62:“nginx signing key <[email protected]>”未改变
gpg: 密钥 7ADB39A8:公钥“Sergey Budnevitch <[email protected]>”已导入
gpg: 合计被处理的数量:7
gpg: 已导入:6 (RSA: 3)
gpg: 未改变:1
gpg: 没有找到任何绝对信任的密钥
[email protected]:~/桌面$ gpg --verify nginx-1.6.2.zip.asc nginx-1.6.2.zip
gpg: 于 2014年09月16日 星期二 21时07分26秒 CST 创建的签名,使用 RSA,钥匙号 A1C052F8
gpg: 完好的签名,来自于“Maxim Dounin <[email protected]>”
gpg: 警告:这把密钥未经受信任的签名认证!
gpg: 没有证据表明这个签名属于它所声称的持有者。
主钥指纹: B0F4 2533 73F8 F6F5 10D4 2178 520A 9993 A1C0 52F8