使用编译好的gmssl生成自签名证书

下面给大家说一下使用编译好的gmssl生成自签名证书的过程(以下生成的文件都是在bin下没有指定生成路径):

目录:./ssl/bin
创建CA密钥
# ./gmssl ecparam -genkey -name sm2p256v1 -out cakey.key
创建CA证书请求
# ./gmssl req -new -sm3 -key cakey.key cacsr.pem

此时会弹出输入相关的国家,省份,城市,公司,组织,个人,邮箱以及密码等一系列操作,根据自己意愿填写即可,值得注意的是:
在生成csr请求的时候,填入的Orgnizeation Name,要与后续其他请求的组织名称保持一致,不然会报错,提示不匹配,生成的证书文件为空。

生成CA自签名证书
# ./gmssl req -x509 -sm3 -days 3650 -key cakey.key -in cacsr.pem  -out cacert.crt
创建test密钥
# ./gmssl ecparam -genkey -name sm2p256v1 -out test.key
创建test证书请求
# ./gmssl req -new -sm3 -key test.key  -out testcsr.pem

这里会再次让你输入国家,城市的一系列信息,注意上面说的组织名称要和之前的保持一致。

签发test证书
# ./gmssl x509 -req -sm3 -days 3650 -CA cacert.crt -CAkey cakey.key -CAcreateserial -in testcsr.pem -out testcert.crt

至此,gmssl成功生成国密证书,可以使用gmssl测试证书可用性。注意这里如果验证证书可用性的话需要生成俩个证书一个客户端证书一个服务端证书,模拟客户端和服务端连接测试可用性,生成的步骤和test.crt如出一辙,重复后三步操作即可,记住更换别名,下面拿已经生成好的clientcert.crt和servercert.crt测试。

首先启动服务端:

# ./gmssl s_server -key serverkey.key -cert servercert.crt -CAfile cacert.crt -cipher ECDHE-SM2-SM4-SM3 
然后启动客户端:
# ./gmssl s_client -key clientkey.key -cert clientcert.crt -CAfile cacert.crt -cipher ECDHE-SM2-SM4-SM3

此时两端分别打印证书信息,并且会出现“verify return:1/ Verify return code: 0 (ok)”

这说明验证成功!

你可能感兴趣的:(gmssl)