国密算法包含了一系列的加密算法,用途广泛,可以用于软硬件加密、签名等地方。我主要研究国密算法在SSL/TLS/HTTPS通信中的应用,这会涉及到客户端和服务器端,最典型的用例就是浏览器访问Web服务器。它要求客户端和服务器都支持国密算法,才能进行通信。如果我们在开发客户端产品,就需要有一个支持国密的服务器配合测试,反之亦然。通常情况下,我们可以使用一些现成的产品,如果开发服务器端,可以使用密信浏览器,如果开发客户端,可以使用一个在线网站:
https://sm2test.ovssl.cn/
但使用第三方产品可能存在一些不可控因素,这时可能需要寻求一种方案,自己搭建测试客户端或服务器端。
OpenSSL不仅仅是一个SSL库,还是一个SSL工具箱,可以用来进行加解密、制作证书、签名、等等,甚至还可以配置一个简单的SSL客户端和服务器端。而GmSSL基于OpenSSL开发,保持了接口兼容,SSL工具箱的命令行及参数也基本相同。
下面以GmSSL为蓝本,谈谈如何搭建国密SSL测试环境。
代码编译与运行
1. 代码下载
可以直接下载源代码包(https://github.com/guanzhi/GmSSL/archive/master.zip)。<