Code前端首页关于Code前端联系我们

CENTOS6环境用GmSSL制作SM2国密证书,以期代替用RSA算法制作的SSL证书

terry 2年前 (2023-09-28) 阅读数 59 #未命名
CENTOS6环境使用GmSSL创建的SM2国密证书替代用RSA算法制作的SSL证书其他国密支持的(国家商用密码)算法、SM2国密数字证书以及基于SM2证书的SSL/TLS安全通信协议,支持符合国密规范的国密硬件密码设备、编程接口和命令行工具,可用于构建符合国密标准的PKI/CA、安全通信、数据加密等安全应用。 GmSSL 项目是 OpenSSL 项目的一个分支,并保持与 OpenSSL 的接口兼容性。因此,GmSSL可以替换应用中的OpenSSL组件,让应用具有基于国家机密的自动安全能力。GmSSL项目采用类BSD开源许可证,对商业应用友好。它是开源的,可以用于闭源商业应用。大学GmSSL项目由北京大学关志学院代码研究团队开发和维护。自2014年发布以来,GmSSL已在多个项目和产品中部署和应用,并获得2015年“一鸣杯”中国Linux软件大赛二等奖(年度最高奖)和开源中文密码推荐奖。项目。GmSSL计划的主要目标是通过开源密码技术推动国内网络空间安全建设。 等级保护的基本要求 GB/T 22239对密码管理提出了如下要求: a) 应遵循密码相关的国家标准和行业标准;

b) 应使用经国家密码管理机构认证认可的密码技术和产品。 。 本文利用GmSSL创建的SM2国密证书来替代RSA算法制作的SSL证书,探讨如何满足分级保护相关的技术要求。 实验环境:CentOS 6.zip

2.GmSSL

#编译安装.1.1

# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

3.检查GmSSL明。版本# sl a

4。测试GmSSL加密

SM3摘要生成(哈希算法,类似MD5)

# echo -n "abc" | gmssl sm3

( stdin)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0加密4度量算法,类似于AES、3DES)

# gmssl sms4 -in README.md -out README.sms4

# gmssl sms4 -d -in README . sms4

SM2私钥生成(非对称算法,类似RSA)

# gmssl genpkey -algorithm EC -_pkeyopt_ec -_pkeyopt_ec -pkeyopt ec -_pkeyopt_ec _pkeyopt_ec -_pkeyopt_ec:pkeyopt param_enc:named_曲线出键。 pem

从生成的 SM2 私钥中导出公钥:

# gmssl pkey -pubout -in skey.pem -out vkey.pem

SM2签名生成和验证:

# gmssl sm3 -binary README.md | gmssl pkeyutl -sign -pkeyopt ec_scheme:sm2 -inkey skey.pem -out README.md.sig

# gmssl sm3 -binary README.md | gmssl pkeyutl -verify -pkeyopt ec_scheme:sm2 -pubin -inkey vkey.pem-sigfilereadme.md.md.sig

#gmsssl#gmsssl gen pkey -algorithm ec -pkeyopt_curve_curve_curve_curve_6spgen_curve_para_curve_para:ecm: pem

# gmssl pkey -pubout -in dkey.pem -out ekey.pem

# echo "绝密" | gmssl pkeyutl -encrypt -pkeyopt ec_scheme:sm2 -pubin -inkey ekey.pem -out ciphertext.sm2

# gmssl pkeyutl -decrypt -pkeyopt ec_in.sm2 -pe

自签名 SM2证书生成:

# gmssl req -new -x509 -key skey.pem -out cert.pem第 2 部分 使用 SM2 证书创建状态 1。创建demoCA目录,在demoCA目录下运行: # mkdir certs crl newcerts private

# touch index.txt

# echo“01”> 序列

2。将以下生成的自签名文件放入 demoCA 目录中,

位于 demoCA/private

3。创建公钥和私钥以及证书请求:

# gmssl ecparam -genkey -name sm2p256v1 -out

# gmssl req -new -sm3 -key -out cacsr.pem

4。自签名

# gmssl req -x 509-sm3- 天 3650 -key -in cacsr.pem -out

# gmssl x509 -req -days 3650 -sm3 -in cacsr.pem -in cacsr.pem -

5。将 pem 转换为 cer

# gmssl x509 -inform pem -in -outform der -out cacert.cer

6。 ca 签名(在 demoCA 的父目录中执行)

# gmssl ca -md sm3 -in client_csr.pem -out client_cert.pem -days 3650

7.显示证书信息:

# gmssl x509 -text -noout -in

# gmssl req -in cacsr.pem -noout -text

8.证书通信测试命令

SERVER:

# gmssl s_server -key server_key.pem -cert server_cert.pem -CAfile -Cipher ECDHE-SM4-SM3 -verify 1

ENT: # gmssl s_client -key client_key.pem -cert client_cert.pem -CAfile -cipher ECDHE-SM4-SM3 -verify 1注:1.测试通过的GmSSL版本为95c0dba,下载地址https://github.com/guanzhi /yaoming.git

2、上面生成的证书都是: 签名算法:sm2sign-mat-sm3

3。目前的浏览器如IE、Firefox、Chrome等。需要下载专门的国密浏览器来支持SM2。国家秘密证书。 CENTOS6环境用GmSSL制作SM2国密证书,以期代替用RSA算法制作的SSL证书 由于IE浏览器不兼容国密算法,“签名算法”字段只显示国密证书的OID:CENTOS6环境用GmSSL制作SM2国密证书,以期代替用RSA算法制作的SSL证书

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门