V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jsq2627
V2EX  ›  程序员

既然提到公私钥,我再问几个证书的问题

  •  
  •   jsq2627 ·
    stackia · 2014-11-07 15:36:10 +08:00 · 5009 次点击
    这是一个创建于 3669 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第一次接触公私钥,也是为了避免SSH登录手动输入密码。那么来问几个问题~~

    1、证书是什么?里面是只包含公钥还是公私钥都可以有?
    2、CA 是什么?
    3、证书信任链又是什么?
    4、X.509、PGP 和证书是什么关系?
    5、PKI 是什么?
    6、pem、cer、der、crt 等文件格式和上面的证书有什么关系?格式之间有什么区别?
    7、如果企业证书签名的 iOS App 被用来公开分发,在证书到期前 Apple 封掉了该企业开发者帐号,那么之前签名的 App 是否还能正常安装?如果不能,设备如何知道签名失效的?

    如果有这方面好的文章,希望能一起分享~~
    第 1 条附言  ·  2014-11-07 19:07:17 +08:00
    谢谢1楼的链接。原来我问得这些问题都是关于PKI体系的。
    自己来回答一下
    1、证书=公钥+主题(Subject,公钥的归属主)+CA信息(Issuer,有CA的信息)+CA的签名+扩展信息。
    证书里不会有私钥。
    2、CA 是证书颁发机构,生成、签名、吊销证书的机构。比如 GeoTrust、VeriSign 这样的机构。想要获得 CA 颁发的证书,需要先准备好证书请求(Cert Request,里面包含自己的公钥、主题、一些说明证书用途的字段),发给 CA,CA 把 Cert Request 里面的信息填到证书里,把 CA 自己的信息也填到颁发者里,然后用自己严格保密的私钥对证书进行签名,发回申请者。
    3、CA 也分等级,最高一等叫根 CA,是由大众无条件信任的机构,根 CA 可以授权下级的中间 CA 给用户颁发证书。一个证书的信任链如下:(箭头表示信任)
    大众 --> 根 CA --> 中间 CA --> 中间 CA --> ... --> 中间 CA --> 证书
    4、X.509 是证书的保存格式的一种规定(Schema),规定证书文件里面要保存哪些数据。
    5、上面描述的从根 CA 开始证书颁发、管理、吊销机制称为 PKI 体系。
    6、都是 X.509 证书的具体保存方式的实现。比如有的是二进制方式存储,有的是 Base64 编码后存储。
    .pem – (Privacy-enhanced Electronic Mail) Base64 encoded DER certificate, enclosed between "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----"
    .cer, .crt, .der – usually in binary DER form, but Base64-encoded certificates are common too (see .pem above)
    .p7b, .p7c – PKCS#7 SignedData structure without data, just certificate(s) or CRL(s)
    .p12 – PKCS#12, may contain certificate(s) (public) and private keys (password protected)
    .pfx – PFX, predecessor of PKCS#12 (usually contains data in PKCS#12 format, e.g., with PFX files generated in IIS)
    7、证书有颁发,也有吊销机制。每个 CA 都维护着一个证书吊销列表(CRL),里面存着还没到期但是由于种种原因被吊销的证书信息。每台设备(PC/手机等)都像 RSS 订阅那样,定时从服务器上取一份回来缓存起来。当发现证书虽然在有效期但是列入 CRL 时,不再信任证书。除了缓存 CRL,还有一种可以实时向服务器发起请求要求验证某证书是否有效的方法,叫做 OCSP。
    所以当企业帐号被封之后,证书被吊销,iOS 客户端通过 CRL 或 OCSP 得知这一信息。但这里到底是 CRL 还是 OCSP,我还不太清楚。
    7 条回复    2014-11-07 16:30:47 +08:00
    lingxi27
        1
    lingxi27  
       2014-11-07 15:38:31 +08:00   ❤️ 1
    ooxxcc
        2
    ooxxcc  
       2014-11-07 15:46:47 +08:00
    google it
    nicai000
        3
    nicai000  
       2014-11-07 15:50:09 +08:00
    出门左转问Google
    wzxjohn
        4
    wzxjohn  
       2014-11-07 15:54:33 +08:00
    一楼的回答充分完善,看那一篇足矣。
    chilaoqi
        5
    chilaoqi  
       2014-11-07 16:18:17 +08:00   ❤️ 1
    刚好最近在梳理知识,遇到SSL证书这块我总结了下(可能不能回答你所有问题),有什么不对的地方也希望能指出来。

    https://github.com/chixq/chixq.com/wiki/SSL-and-CA
    jsq2627
        6
    jsq2627  
    OP
       2014-11-07 16:25:38 +08:00
    @chilaoqi 有个小错误,是 TLS 不是 TSL 啦~~
    chilaoqi
        7
    chilaoqi  
       2014-11-07 16:30:47 +08:00
    @jsq2627 我 (太傻了|TSL)。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:18 · PVG 07:18 · LAX 15:18 · JFK 18:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.