本文目录
使用openssl生成的公钥和证书申请中的公钥是一样的吗
你可以试试 openssl x509 -in 证书 -pubkey命令看看是不是同一个公钥。证书里面的信息不仅包含公钥。以下抄袭自百度百科所有的X.509证书包含以下数据: 1、X.509版本号:指出该证书使用了哪种版本的X.509标准,版本号会影响证书中的一些特定信息。目前的版本是3。2、证书持有人的公钥:包括证书持有人的公钥、算法(指明密钥属于哪种密码系统)的标识符和其他相关的密钥参数。3、证书的序列号:由CA给予每一个证书分配的唯一的数字型编号,当证书被取消时,实际上是将此证书序列号放入由CA签发的CRL(Certificate Revocation List证书作废表,或证书黑名单表)中。这也是序列号唯一的原因。4、主题信息:证书持有人唯一的标识符(或称DN-distinguished name)这个名字在 Internet上应该是唯一的。DN由许多部分组成,看起来象这样:CN=Bob Allen, OU=Total Network Security DivisionO=Network Associates, Inc.C=US这些信息指出该科目的通用名、组织单位、组织和国家或者证书持有人的姓名、服务处所等信息。5、证书的有效期:证书起始日期和时间以及终止日期和时间;指明证书在这两个时间内有效。6、认证机构:证书发布者,是签发该证书的实体唯一的CA的X.509名字。使用该证书意味着信任签发证书的实体。(注意:在某些情况下,比如根或顶级CA证书,发布者自己签发证书)7、发布者的数字签名:这是使用发布者私钥生成的签名,以确保这个证书在发放之后没有被撰改过。8、签名算法标识符:用来指定CA签署证书时所使用的签名算法。算法标识符用来指定CA签发证书时所使用的公开密钥算法和HASH算法。
公私钥生成
步骤一:在windows操作系统上安装Win64OpenSSL软件; 步骤二:打开Win64OpenSSL软件,首先生成私钥,命令为:ecparam -genkey -name SM2 -out priv.key;
步骤三:再通过生成的私钥生成公钥,命令为:ec -in priv.key -pubout -out pub.key。
验证SM2生成的公私钥 步骤一:首先创建一个file.txt文件(示例放在公私钥同级目录下);
步骤二:打开Win64OpenSSL软件,首先根据私钥生成签名,命令为:dgst -sign priv.key -sha1 -out sha1_sm2_file.sign file.txt
步骤三:再根据公钥去验证生成的签名,如果公钥和私钥相互匹配,那么生成SM2公私钥成功,命令为:dgst -verify pub.key -sha1 -signature sha1_sm2_file.sign file.txt
文件地址需要修改.上述直接放在d盘中,最后为.key 或者.pem
Download ( GmSSL-master.zip ), uncompress it and go to the source code folder. On Linux and OS X , run the following commands:
安装后,输入gmssl version,报错:
添加两条软连接:
生成私钥
生成公钥
***隐藏网址***
上面生成的公私钥都没法给gmss sm2使用,可以进行加密解密,但是结果是错的
由于提供的公私钥为base64格式,故要进行转码.
四、其他格式互转
字符串与base64不能直接转,需要先转到bytes