能力值:
( LV2,RANK:10 )
|
-
-
2 楼
你如何生成证书的?
|
能力值:
(RANK: )
|
-
-
3 楼
不知道你生成的是什么证书, CA证书还是普通证书.
CA证书可以向第三方申请, 也可以自己生成, 步骤如下:
1. 生成一个随机种子文件:
md5sum /etc/hosts /etc/passwd /var/log/messages > .rand
2. 生成CA Key:
openssl genrsa -des3 -rand .rand -out ca.key 4096
3. 生成CA证书
openssl req -config ca.cfg -new -key ca.key -out ca.csr
4. 用CA证书给自己签名
openssl x509 -req -days 3650 -signkey ca.key -in ca.csr -out ca.crt
普通证书的生成与CA证书类似, 但它的签名必须用CA证书.
md5sum /etc/hosts /etc/passwd /var/log/messages > .rand
openssl genrsa -rand .rand -out user.key 1024
openssl req -config user.cfg -new -key user.key -out user.csr
openssl x509 -days 1825 -CAserial ca.serial -CA ca.crt -CAkey ca.key -in user.csr -req -out user.crt
按你的描述, 大概是问第三步的key是哪一个对吧? 那么答案显然是第二步生成的那组.
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢各位的热心帮助,按arab的说法,就是说CA自己给自己签名,用自己的密钥信息就可以了,就像IE浏览器里的 “受信任的根证书颁发机构”里面的那些证书都是自签名证书。所以用这些证书里面的公钥信息就能直接对签名进行解密,得到前面是一长串1fffffffffffffffffffffffffffff的数据。而我们要想获取一个证书机构的颁发的证书,也就是上面说的普通证书,那么证书里面的公钥就不能对签名进行解密操作,因为这时的公钥是用户自己的公钥,而CA的签名是用的自己的公钥进行签名的。是这个意思吧。
|
能力值:
(RANK: )
|
-
-
5 楼
这个说法听起来有点乱了. 换个说法看看会不会好些:
1. CA根(CARoot)证书做为大家都信任的公证人的角色, 它的的可信度是有保证的, 所以它可以自签名(比如说VeriSign的).
2. 次级证书(可能是下级CA证书, 也可能是普通证书)要得到认证, 必须由上级(CARoot)为它签名, 证明这个证书是可信的.
3. 上级CA用私钥对次级证书签名, 其它人可以通过上级CA的公钥来验证次级证书的完整性和可信性.
4. 上级CA对次级证书的具体内容并不关心, 它只关心证书的整体的完整性.
5. 签名并不一定对要签名的内容进行加密, 它可以对要签名的内容做个Hash, 然后把Hash值用私钥加密. 验证时只要验证这个Hash值是否正确就可以了.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
CA颁发证书给你,是用CA自己的私钥 对 要颁发给你的证书内容签名。
看看 X509文档 和 rfc2459 (2459有个更新版本)
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
谢谢楼上的帮忙,这个问题我弄清楚了,又出了新的问题,就是我自己伪造了一个CA的自签名证书,再用这个证书给别的证书进行签名。打开CA的自签名证书,发现没有安装,是不可信任的,而且由这个CA证书签名的用户证书也是提示无法显示其有效性,于是我就将CA的自签名证书按装了,发现安装后CA 的自签名证书也变得信任了,由CA签名的用户证书也有效了。这是为什么呢?也就是说CA的自签名证书安装之后为什么会发生这样的变化?CA的证书安装到哪里去了呢?,我怎样在我的电脑里看已经安装了的证书呢?谢谢,困惑啊?
|
能力值:
(RANK: )
|
-
-
8 楼
Windows自带了一些公认的ROOT CA证书签发机构, 比如说VeriSign的. 如果一个证书是被这些CA Root或下级签名的, 则该证书可信, 可直接安装(即加入可信证书列表中). 如果没有"公认"的签名, 则不会自动安装.
但是经过你手动安装后, Windows因为你(通过人工交互)认可了证书的可信性, 所以也把你安装的证书列入可信CA中, 相应的, 该CA签名的证书自然就可信了.
安装后的具体位置我不太清楚, 但可以在IE的选项的内容那个Tab里看到.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
windows内置了 他自己信任的根证书列表。你把你搞的自签名根证书倒进去,windows认为这是一个信任的根证。导入过程是要询问用户的,是用户授权的操作。
|
能力值:
( LV6,RANK:90 )
|
-
-
10 楼
我发表一下我的看法, 如有不对请指正。
首先,生成的证书是用证书颁发机构CA的私钥进行签名颁发的,而不是公钥。除非使用自定义的CA,你可以知道私钥,商业的CA你是不可能知道私钥的,否则安全性如何保证。
其次,如果是申请商业证书,比如VerySign,你首先生成一个CSR(其实是公钥),发给他们进行签名生成证书,因此他们也不知道你的私钥。
再次,签名是用来验证身份的,确保此证书是合法的(因为CA合法),通过CA的公钥进行验证。当然对HASH进行的签名,同样可以确保此证书是完整的(HASH保证),也就是说没有被修改过。
另外除了可以通过IE查看安装的证书外,也可通过MMC查看,如图
|
|
|