2020课程设计——个人任务
1.课程设计的主体任务
- 了解Gmssl中的命令,描述支持的选项、场景和参数,制作成文档;
- 使用OpenSSL搭建CA,颁发证书、签名验签、模拟用户和颁发机构,查看证书等等;
- 部署一个HTTPS网站
2.自己对分配任务的理解
国密ssl中有Standard commands、Message Digest commands和Cipher commands三类command,我们需要对standard command逐一进行理解,测试命令下的所有选项和参数,对每一个命令的使用场景做出说明,最后做成文档。
我们组分到了这
asn1parse
、ca
、certhash
、ciphers
、crl
、crl2pkcs7
、dgst
、dh
、dhparam
这九个standard命令学习CA的原理和CA的搭建原理,理解CA颁发证书的过程,签名与验签的过程,用户与证书机构的交互过程,最后使用Opensll搭建CA
理解HTTPS的工作原理:HTTP 是明文传输,数据容易被篡改,而HTTPS 属于加密传输,即便得到密文,在不知道私钥的情况下,无法知道真实数据。
客户端发起一个https的请求,把自身支持的一系列Cipher Suite(密钥算法套件,简称Cipher)发送给服务端。
服务端,接收到客户端所有的Cipher后与自身支持的对比,如果不支持则连接断开,反之以证书的形式返回给客户端 证书中还包含了 公钥 颁证机构 网址 失效日期。
客户端收到服务端响应后会做以下几件事:
- 向CA机构验证证书的合法性
- 生成随机字符串,并用证书中的公钥加密。
- 随机字符串Hash编码
服务端拿到客户端传来的密文,用私钥解密握手消息取出随机数密码,再用HASH编码,并与传过来的HASH值做对比确认是否一致。
客户端用随机数解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密 。
在Tomcat上部署一个HTTPS网站首先是要要把自己搭建的CA颁发的client证书部署到Tomcat上,随后在浏览器导入根证书,测试能否进入https://localhost:8443/,若能成功进入则表示部署成功。