数字证书

数字证书用来证明某个公钥是谁的,并且内容是正确的。

对于非对称加密算法和数字签名来说,很重要的一点就是公钥的分发。

一旦公钥被人替换 (典型的如中间人攻击),则整个安全体系将被破坏掉。

怎么确保一个公钥确实是某个人的原始公钥? 这就需要数字证书机制。

顾名思义,数字证书就是像一个证书一样,证明信息和合法性。

由证书认证机构 (Certification Authority,CA)来签发,权威的 CA 包括 verisign 等。

数字证书内容可能包括版本、序列号、签名算法类型、签发者信息、有效期、被签发人、签 发的公开密钥、CA 数字签名、其它信息等等,

一般使用最广泛的标准为 ITU 和 ISO 联合制 定的 X.509 规范。

其中,最重要的包括 签发的公开密钥 、 CA 数字签名 两个信息。

因此,只要通过这个证书就能 证明某个公钥是合法的,因为带有 CA 的数字签名。

更进一步地,怎么证明 CA 的签名合法不合法呢?

类似的,CA 的数字签名合法不合法也是通过 CA 的证书来证明的。

主流操作系统和浏览器里 面会提前预置一些 CA 的证书(承认这些是合法的证书),然后所有基于他们认证的签名都会 自然被认为合法。


PKI 体系提供了一套完整的证书管理的框架。

在非对称加密中,公钥则可以通过证书机制来进行保护,如何管理和分发证书则可以通过 PKI(Public Key Infrastructure)来保障。

顾名思义,PKI 体系在现代密码学应用领域处于十分基础的地位,解决了十分核心的证书管理 问题。

PKI 并不代表某个特定的密码学技术和流程,PKI 是建立在公私钥基础上实现安全可靠传递消 息和身份确认的一个通用框架。

实现了 PKI 的平台可以安全可靠地管理网络中用户的密钥和 证书,包括多个实现和变种,知名的有 RSA 公司的 PKCS(Public Key Cryptography Standards)标准和 X.509 规范等。

一般情况下,PKI 至少包括如下组件:

CA(Certification Authority):负责证书的颁发和作废,接收来自 RA 的请求,是最核心 的部分;

RA(Registration Authority):对用户身份进行验证,校验数据合法性,负责登记,审 核过了就发给 CA;

证书数据库:存放证书,一般采用 LDAP 目录服务,标准格式采用 X.500 系列。

CA 是最核心的组件,主要完成对证书的管理。 常见的流程为,用户通过 RA 登记申请证书,CA 完成证书的制造,颁发给用户。用户需要撤 销证书则向 CA 发出申请。

密钥有两种类型:用于签名和用于加解密,对应称为 签名密钥对 和 加 密密钥对 。

用户证书可以有两种方式。

一般可以由 CA 来生成证书和私钥;

也可以自己生成公钥和私钥, 然后由 CA 来对公钥进行签发。后者情况下,当用户私钥丢失后,CA 无法完成恢复。

详细参考:https://blog.csdn.net/liuhuiyi/article/details/7776825
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字证书生成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、付费专栏及课程。

余额充值