个人报告
20181321覃泳龙
时间:2020.11.8
a)、列出自己的贡献
撰写opnssl指令代码的word文件
搭建CA系统,提供根证书、服务证书
b)、列出设计中遇到的问题及解决方法
1、搭建gmssl与系统自带的opnssl发生库冲突
解决方法:
在ubuntu上交叉编译过openssl-1.1.1h使用脚本:
./config --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared sed -i "s/ -m64//g" Makefile make make install
用Configure配置目标平台!新的编译脚本如下
./Configure --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared linux-armv4 make make install
2、安装openssl的过程中1.1.1与1.1.0的冲突
报错:./openssl: relocation error: ./openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference
解决方法
用新生成的libcrypto.so.1.1替换/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1就可以运行openssl了
3、EVE开启虚拟化后,发现failed to start login service
解决方法:
升级Vmware的版本,版本过低导致虚拟机管理程序不支持最新内核。
c)、列出调试过程中遇到的主要问题,并说明解决方法;
1、在配置Tomacat的过程中,打开网站出现了404界面
解决方法:
访问src路径里的Java文件报错
需要对目标Java文件配置路由,具体配置有两种方式
1)、基于注解的方式配置
在Java类里添加
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/logout") //这里就是路由的配置 public class LogoutServlet extends HttpServlet { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getSession().removeAttribute("user"); resp.sendRedirect("/wel"); } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
2)、基于xml文件配置方式
点击打开web.xml文件,然后对web.xml代码进行更改,在< /app >前面添加映射
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.southwind.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/demo2</url-pattern> </servlet-mapping>
2、在https的配置使用nginx方法
ssl开关
配置语法:listen 443 ssl; # 1.1版本后这样写
ssl证书文件
配置语法:ssl_certificate file;
默认状态:-
配置方法:http、server
ssl密码文件
配置语法:ssl_certificate_key file;
默认状态:ssl off;
配置方法:http、server
在server模块添加如下配置
最终效果:
C)、设计体会及收获
在这个课程设计的过程中,首先我了解了openssl与gmssl的使用方法,在这个基础上开始搭建一下个简易的CA系统。然后在网站配置https的过程中,我虽然不是负责主要工作的,但在遇到问题时也上网查询很多资料,比如刚刚开始搭建出第一个安全网站的时候,觉得很大的成功,但时在调试的过程中,会发现不同的浏览器的问题还是出现报错,QQ浏览器的报错是证书的格式,然后我们还得通过改变自己证书的生成指令,以及不同的格式输出。这个部分很有意思,在不断的调试中解决问题,但microft浏览器还是不行,我们通过增加openssl.cnf的一个配置,还是不行,后面我们查找资料,用keytool来形成证书是可以进行htpps的加密。
我们组的https的配置,三个人用了不同的方法,第一个就是直接在web里面直接添加端口号的证书信息,用Java调取库来实现https的加密,进行端口配置。然后第二个就是tomcat的配置端口。第三个就是我这个的nginx的配置,其实和tomcat的原理差不多。用后面两种的配置,别人对网站的查看还是不安全的(在同一个局域网内),查找了很多博客,是双向认证的问题,但我参照网上博客的方法,也没有解决到问题。第一种配置就是把所有东西打包在一起,然后用一个程序运行一下,把根证书导入就可以进行浏览我们的网站了。
其实这个课程设计,代码部分其实不是很多,我最大的收获就是懂了如何去学习别人的东西,搭建CA还是htpps的配置,在网找博客,虽然一个个去看,然后试验,没有成功,但还是能学到很多东西的了,比如了解到不是课程,但相近的问题,比如keytool的证书生成...,还有很多其他的东西,作为组长,协调号组员之间的工作分配问题,以及课程报告的分工合作每一个人的部分。
D) 、参考资料(图书、网址…)
https://www.cnblogs.com/will-space/p/11913744.html
http://www.cfca.com.cn/20151124/100000359.html
https://www.jb51.net/article/193916.html
https://blog.csdn.net/weixin_39171105/article/details/109054348?utm_source=app