数字签名和数字证书

概述
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socketlayer(SSL),SSL安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。

数字签名和数字证书

1.数字签名
非对称加密算法的效率是非常低的。
将内容使用hash函数生成摘要,再用私钥对摘要进行加密,生成数字签名。然后将内容附上数字签名一同传输。
收件方收到后,用公钥对数字签名进行解密,得到摘要,然后再对原内容进行hash生成摘要,比对这两个摘要是否相同,相同则说明内容没有被篡改。

2.数字证书
由CA颁发给网站的身份证书,里面包含了该网站的公钥,有效时间,网站的地址,CA的数字签名等。
所谓的CA数字签名,实际上就是使用了CA的私钥将网站的公钥等信息进行了签名,当客户端请求服务器的时候,网站会把证书发给客户端,客户端首先可以通过CA的数字签名校验CA的身份,也能证明证书的真实完整性。客户端有没有可能到一个假冒的CA去校验数字证书呢?不太可能,因为CA的地址是内嵌在浏览器中的,很难被篡改。

3.数字证书管理工具
keytool和openssl都是证书管理工具。

-----------------------------------------------------------------------------------
x509证书一般会用到三类文件,key,csr,crt。

Key是私用密钥,openssl格式,通常是rsa算法。
csr是证书请求文件,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。
crt是CA认证后的证书文件(windows下面的csr,其实是crt),签署人用自己的key给你签署的凭证。
首先要有一个CA根证书,然后用CA根证书来签发用户证书。用户进行证书申请:一般先生成一个私钥,然后用私钥生成证书请求(证书请求里应含有公钥信息),再利用证书服务器的CA根证书来签发证书。

1. 生成CA根证书
生成CA私钥(.key)-->生成CA证书请求(.csr)-->自签名得到根证书(.crt)(CA给自已颁发的证书)。

# Generate CA private key 
  openssl genrsa -out ca.key 2048 
# Generate CSR 
  openssl req -new -key ca.key -out ca.csr
# Generate Self Signed certificate(CA 根证书)
  openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

2. 生成用户证书
生成私钥(.key)-->生成证书请求(.csr)-->用CA根证书签名得到证书(.crt)


服务器端用户证书:
# private key
  openssl genrsa -des3 -out server.key 1024 
# generate csr  CN SC CD 密码为123456, 其它都为test
  openssl req -new -key server.key -out server.csr
# generate certificate  -> unable to load number from /etc/pki/CA/serial  -> echo 02 > /etc/pki/CA/serial
  openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key 

客户端用户证书:
#Sign the certificate?  failed to update database -> 原因是commonName 跟前面生成ca文件和server 密钥commonname相同导致,可以换一个commonname就可以了。
  openssl genrsa -des3 -out client.key 1024 
# CN SC CD 密码为123456, 除commonName外,其它都为test
  openssl req -new -key client.key -out client.csr
  openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值