数字证书的生成、验证原理

注:摘录自各个文章,把关键点整合了一下。

CA记为证书签发机构
证书生成过程:
CA产生一对RSA公私钥。
生成一个文件,记为P,包含:公钥、签发者ID、有效期、其他信息。
计算P的hash值,记为H。用私钥对H进行RSA加密,得到S。
则数字证书是(P,S)

别人验证证书的过程:
验证上述数字证书(P,S)过程:
从P中获得公钥,用公钥解密S得到H1。
计算P的hash值,得到H2。
若H1=H2,证明这个证书是有签发者签发给它的证书。(证书要在有效期内)
若H1!=H2,说明 P被篡改过 或者 证书不是CA签发的,总之有问题。

怎么判断证书是否有效
按上面说的,黑客可以自己给自己颁发证书,宣称自己是CA。所以如何来验证这个证书是黑客自己的呢还是那个著名的CA呢?
首先找到为CA颁发证书的上层CA,一层一层往上,直到找到一个可信的CA或者验证出错。比如往上找到了操作系统中颁发的根证书。根证书被认为绝对可信,是CA让厂商嵌在电子产品或软件里的。总之,根证书绝对可信。

PS:12306网站之前是自己给自己颁发证书,众多浏览器都会提醒用户该网站不安全。

数字证书生成doc命令 1.1生成服务端证书 开始-运行-CMD-在dos窗口执行下执行命令: keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:/self-file/server/tomcat.keystore -dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650 -storepass zljzlj -keypass zljzlj 说明: keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help -genkey 创建新证书 -v 详细信息 -alias tomcat 以”tomcat”作为该证书的别名。这里可以根据需要修改 -keyalg RSA 指定算法 -keystore D:/self-file/server/tomcat.keystore 保存路径及文件名 -dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" 证书发行者身份,这里的CN要与发布后的访问域名一致。但由于我们是自己发行的证书,如果在浏览器访问,仍然会有警告提示。 -validity 3650证书有效期,单位为天 -storepass zljzlj 证书的存取密码 -keypass zljzlj 证书的私钥 1.2 生成客户端证书 执行命令: keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore C:/self-file/client/client.p12 -dname "CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" -validity 3650 -storepass client -keypass client 说明: 参数说明同上。这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。下面要做的工作才是建立2者之间的信任关系。 1.3 导出客户端证书 执行命令: keytool ‐export ‐alias client ‐keystore D:/self-file/client/client.p12 ‐storetype PKCS12 ‐storepass client ‐rfc ‐file D:/self-file/client/client.cer 说明: -export 执行导出 -file 导出文件的文件路径 1.4 把客户端证书加入服务端证书信任列表 执行命令: keytool ‐import ‐alias client ‐v ‐file D:/self-file/client/client.cer ‐keystore D:/self-file/server/tomcat.keystore ‐storepass zljzl 说明: 参数说明同前。这里提供的密码是服务端证书的存取密码。 1.5 导出服务端证书 执行命令: keytool -export -alias tomcat -keystore D:/self-file/server/tomcat.keystore -storepass zljzlj -rfc -file D:/self-file/server/tomcat.cer 说明: 把服务端证书导出。这里提供的密码也是服务端证书的密码。 1.6 生成客户端信任列表 执行命令: keytool -import -file D:/self-file/server/tomcat.cer -storepass zljzlj -keystore D:/self-file/client/client.truststore -alias tomcat –noprompt 说明: 让客户端信任服务端证书 2. 配置服务端为只允许HTTPS连接 2.1 配置Tomcat 目录下的/conf/server.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值