基于gmssl的CA系统构建及应用20181334张怡杰个人报告

课程设计:基于gmssl的CA系统构建及应用个人报告

一、贡献

搭建CA系统、向CA系统申请证书、CA系统签署证书、吊销证书。编写网页后端、用生成的证书给网页加锁。

二、设计中遇到的问题及解决方法

1.tomcat配置问题

为了打开8443端口,修改了tomcat的server.xml文件。在修改后tomcat打不开了,查看日志发现一堆错。

查找资料并修改回去server文件还是不行,所以直接重装了tomcat。但是出现了新的错。

可以看到错误原因是初始化组件失败、不可用的ARP/本机库。

我的tomcat是和jdk13配置的,查找很多资料,发现是缺少了一个重要配置文件tcnative-1.dll

文件下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-connectors/native/1.2.25/source/tomcat-native-1.2.25-src.tar.gz

并把文件放到到jdk的bin目录中,这样,tomcat终于能用了,可以打开8443端口,看到tomcat网页了。

2.Windows下openssl error in req

在使用windows中的openssl中报了错:

2604:error:08064066:object identifier routines:OBJ_create:oid exists:crypto\objects\obj_dat.c:698: error in req

没明白什么问题,但是重新打开openssl这个问题就消失了。

三、调试过程中遇到的主要问题及解决方法

1.使用生成的证书加锁https时出现证书不受信任

肯定是证书的问题。首先我将证书导入浏览器的受信任区

但还是不行,后面反应过来我使用的是自签名证书,于是将CA证书导入受信任的根证书颁发机构,子证书导入受信任发布者。

但还是不安全。

查看错误报告是:NET::ERR_CERT_COMMON_NAME_INVALID

由于Chrome 58 及以上版本只会使用 subjectAlternativeName 扩展程序(而不是 commonName)来匹配域名和网站证书。

修改openssl.cnf文件如下,来添加使用者备用名称(DNS)

确保req下存在以下2行(默认第一行是有的,第2行被注释了)

[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req

确保req_distinguished_name下没有 0.xxx 的标签,有的话把0.xxx的0. 去掉

[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = ShangHai
localityName = Locality Name (eg, city)
localityName_default = ShangHai
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = Domain Control Validated
commonName = Internet Widgits Ltd
commonName_max = 64

新增最后一行内容 subjectAltName = @alt_names(前2行默认存在)

[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

新增 alt_names,注意括号前后的空格,DNS.x 的数量可以自己加

[ alt_names ]
DNS.1 = abc.example.com
DNS.2 = dfe.example.org
DNS.3 = ex.abcexpale.net
DNS.4 = localhost

修改后重新生成证书就可以了。

以上分别是在Google、edge、IE、firefox的截图

四、设计体会及收获

其实刚开始做实验是很懵的,现在回头看其实没有做很多的步骤,大部分都是和bug做斗争,也走了不少弯路。

刚开始是用的是linux虚拟机做证书的,后来才发现不能将证书配置到网站上,正好之前windows上有tomcat,就在windows重新做了。

这次课程设计对于openssl命令有了很深的理解,学会了自己做CA系统以及证书颁发吊销,增强了思考能力、动手能力以及解决问题能力。

遇到困难不要害怕,有时候bug太多心态爆炸,实际上可能只是因为操作不细致或者打错导致的问题。

这次实验还有组员和组长的帮助,一起讨论问题解决问题,增强了团队信心以及团结力。

五、参考链接

https://www.jianshu.com/p/acbf23f86880

https://www.cnblogs.com/pluslius/p/9936327.html

posted on 2020-11-08 13:48  20181334张怡杰  阅读(150)  评论(0编辑  收藏  举报