想问两个关于证书的小白问题

2014-10-12 13:26:55 +08:00
 TigerS
一直不懂证书,最近才开始关注和学习了一下,问两个问题

1 看到大家都说连证书,也就是说证书是一个一个连接起来然后才认证的,那么是不是可以做,比如我在狗爹买一个证书,然后我再用这个证书给我自己的另一个域名签一个证书,然后把这些证书连起来就相当于我自己认了?然后浏览器通过链证书也能认??

这个 里面涉及到链证书不是很理解,为什么那些 公司的链证书就和我们自己链的不一样呢?

2 关于现在cloudflare推出的那个免费里面的通用证书,看情况是在服务器上有证书然后怎么在服务器上操作一下把你域名加上去然后浏览器就认了,这个怎么操作的?自己的话有没有可能在比如狗爹买一个域名然后 绑定在服务器上,任何用这个服务器的域名都可以像cf那样也能够认证呢?具体有没有教程呢?自己在网上搜了下没看到什么实用教程
3291 次点击
所在节点    SSL
14 条回复
billlee
2014-10-12 13:39:19 +08:00
1. 不行。只有在证书的用途里有 CA 这一项的,才能用来签发证书。
whywhywhy
2014-10-12 13:45:30 +08:00
证书分两种 一种是颁发证书的 一种是求颁发证书的

1.你要领个ssl证书,就要先生成私钥,这是你的密码,不要公开
2.用私钥生成一个请求,简单说就是做个表格,让领导给你签名
3.证书颁发机构同意之后,在上面签名了,这就是数字签名,你拿着它大家就承认你是领导认可的可信任的人

你也看到了,你的角色是求别人给你签名,你自己是不能签名了,签名了大家都不认你
如果你也想给别人签名,那么你就要申请成为CA,也就是领导,这样你就可以随意发任何一个域名的证书啦!
当然啦,你要是敢乱发证书,就等着被吊销,或者进入黑名单,而且……

并非是你拿到领导的签名就可以签给别人的,因为指纹仿造不了,你怎么签都是有区别的。所以你要跟领导说,你也要当领导,就要写个当领导的申请,让领导签名,这样就是领导的下属了。你的领导承认你以他下属的名义来颁发证书

1.生成密钥,生成CA请求
2.把请求给你领导签名
3.给大家颁发签名
4.你签名里不光代表你自己,还代表你的领导哟!

那么你不想成为领导的下属咋办呢?那就自己成为顶级领导,让大家都信任你,你就可以为所欲为了!
whywhywhy
2014-10-12 13:51:22 +08:00
综上所述,数字签名证书是分为2部分的,一部分是信息,就是说你是谁,你的证书是谁颁发的,第二部分就是签名了,你的证书上要有大家都承认的签名才会被信任(也就是说大家都知道的那个领导,或者领导其中的一个)

其中GOOGLE也好,CF也好,自己首先努力成为领导,才能随意颁发证书的。

当然这样的随意是有限制的,如果你真的随便发证书,那就不会被认可,之所以CF敢颁发给任何域名,那是因为它已经通过一定的手段承认了你是该域名的所有人。(因为你添加域名时会让你绑定DNS记录,或者CNAME记录,都可以证明你是域名所有人)。所以不算是胡乱颁发的。

还有就是GOOGLE这样的CA,只给自己的域名颁发证书,随便怎么颁发都是合法的。不会被上级领导所怀疑你干坏事
whywhywhy
2014-10-12 13:56:23 +08:00
再简单描述下

在你没有成为大家信任的领导(CA证书颁发机构)之前,你是不能给别人颁发证书的(别人可以请求让你签名,但是你的签名没人信任,所以无效,等同于自签名)

成为大家信任的CA,第一种就是自己努力,让大家信任你,认可你,(努力进入各大浏览器和系统的信任列表,但是老系统和老浏览器都不会承认,要更新才能承认)

第二种就是找个干爹,让他承认你认可你,让你做一个小头目(CA),这样你就可以颁发大家信任的证书啦。
Quaintjade
2014-10-12 14:01:02 +08:00
证书里有一个certificate basic constraint(基本约束)字段,会注明该证书的Subject Type是CA还是End entity,CA可以签下级证书,End entity不能签其他证书。
同时会注明CA的Path Length Constraint,限制往下能签发多少层CA,0表示不能签发CA,只能签发end entity。

以v2ex的证书为例,左边是站点证书,中间是GD中级CA证书,右边是GD根CA证书
http://image16.poco.cn/mypoco/myphoto/20141012/13/5657397520141012135335020.png
zinev
2014-10-12 14:11:16 +08:00
@whywhywhy
@Quaintjade
请教个关于证书的问题。最近反代google的人很多,但都说所要反代的域名要有证书,我能不能这么干:我能不能自己给自己发一个证书安装nginx用来反代google就给自己用而不公开,而且我给自己颁发的证书我到本地导入,这样能不能解决从代理服务器到我本地是加密传输而又可以不去购买证书?
whywhywhy
2014-10-12 14:47:11 +08:00
@zinev 可以的,不过现在有免费的证书啊,不抗拒英文的话用stratssl的就可以了,可以续期的,抗拒英文的就用中文的沃通,都是免费的

所以没必要自己签名。当然自己签的也是可以的,如果你本地导入证书的话。
xoxo
2014-10-12 14:48:51 +08:00
证书签名用途,x509的约定,你没法伪造的
xoxo
2014-10-12 14:53:57 +08:00
还有就 Cloudflare赠送的证书,并不是真正意义上归你所有,而是归Cloudflare所有,因为你没有私钥,你无法在自己服务器使用。and also, Cloudflare免费送的证书只有支持SNI的浏览器可访问 。


_______________ AD区 专业人员请无视 _________________

特价便宜SSL证书,请点击头像个人资料页
SharkIng
2014-10-13 08:34:06 +08:00
其实我也好奇,如果CloudFlare可以这样做的话,难道自己不能用一个证书做多域名么?我看好像有多域名证书的存在吧?

@xoxo 什么叫做SNI证书?
msg7086
2014-10-17 05:33:47 +08:00
@SharkIng 可以。只要你有cloudflare那个财力,花下一大笔钱就能买到。
TigerS
2014-10-21 08:06:32 +08:00
谢谢各位,讲的很清楚了了解了
whywhywhy
2014-10-21 09:43:48 +08:00
@SharkIng 多域名证书可以的,不过似乎有数量限制(似乎是100个域名,不过就算没数量限制,总不可能把几千几万个域名写进去吧)

SNI不是证书,SNI是一个端口(同ip)可以使用2个以上的SSL证书的协议,但是xp上的所有IE浏览器不支持。vista开始都支持了,其他浏览器基本都支持。
wuliao49
2014-11-25 22:05:19 +08:00
讲的不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/138440

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX