国密证书生成实践

摘要:
实验环境:Linuxubuntu/Centos64x86_64x86_64 GNU/Linux 1。安装gmssl$unzip gmssl master。zip$cdGmSSL master$/configno safno sdfno skfno sofucno zucno根据官方网站上的说明分享了#。编译后的gmssl不再依赖于libssl。所以$make$sudomake

实验环境:

Linux ubuntu/Centos 64
x86_64 x86_64 x86_64 GNU/Linux

 

1、根据官网说明安装gmssl

 

$ unzip GmSSL-master.zip
$ cd GmSSL-master
$ ./config no-saf no-sdf no-skf no-sof no-zuc  no-shared         #不去编译动态库,编译出来的gmssl不再依赖libssl.so
$ make
$ sudo make install

  

2、修改/usr/local/ssl/openssl.cnf配置

$ vi   /usr/local/sslopenssl.cnf 

  

[ ca ]
default_ca      = CA_default            # The default ca section
[ CA_default ] #dir		= ./demoCA		# Where everything is kept 
dir		= /home/myapp/demoCA  #此处修改 

  

3、初始化CA目录

1)创建根目录

$ mkdir -p  /home/myapp/demoCA
$ cd /home/myapp/demoCA 

2)创建其他目录

在此路径下要创建好/usr/local/ssl/openssl.cnf中需要的certs, crl ,new_certs_dir和private_key的子目录,默认是newcerts和private

$ mkdir certs crl newcerts private 

3)创建好database文件index.txt

touch index.txt 

4)创建好serial文件,并写入初始序号,如01

echo "01" > serial

4、生成国密证书步骤 

(1)生成根证书

1)生成私钥key

$ gmssl ecparam -genkey -name sm2p256v1 -text -out Root.key -config  /usr/local/ssl/openssl.cnf 

2)生成证书签名请求

$ gmssl req -new -key Root.key -out Root.req -subj /C=CN/ST=Guang Zhou/L=GZ/O=Root/OU=Root Sign/CN=RootCA/emailAddress=Root@gmail.com  
-config /usr/local/ssl/openssl.cnf

3)生成根证书

$ gmssl x509 -req -days 3650 -sm3 -in Root.req -signkey Root.key -out RootCA.crt $ cp RootCA.crt demoCA/
$ cp Root.key demoCA/private/

 类似于 apache/ssl/ca.crt和apache/ssl/ca.key

(2)生成中间证书(即客户端证书)

1)生成私钥

$ gmssl ecparam -genkey -name sm2p256v1 -text -out Medium.key -config  /usr/local/ssl/openssl.cnf 

2)生成客户证书请求

$ gmssl req -new -key Medium.key -out Medium.req -subj /C=CN/ST=Guang Zhou/L=GZ/O=Medium/OU=Medium Sign/CN=MediumCA/emailAddress=Medium@gmail.com  -config  /usr/local/ssl/openssl.cnf

3)签发证书

$ gmssl x509 -req -sm3 -days 3650 -CA  RootCA.crt -CAkey demoCA/private/Root.key -CAcreateserial -in Medium.req -out MediumCA.crt 

4)证书验证

$ gmssl verify -CAfile RootCA.crt MediumCA.crt 
$ cp MediumCA.crt demoCA/
$ cp Medium.key demoCA/private/

5)证书转换成浏览器认识的格式 pfx

$ gmssl pkcs12 -export  -inkey Medium.key -in MediumCA.crt -out test.pfx -passin  pass:xxx -passout pass:xxx

6) 查看证书信息

PKCS转换为PEM
gmssl pkcs12 -in test.pfx -out cert.pem -nodes
转换后可查看证书信息
打印出证书的内容:
gmssl x509 -in cert.pem -noout -text
打印出证书的系列号
gmssl x509 -in cert.pem -noout -s erial
打印出证书的拥有者名字
gmssl x509 -in cert.pem -noout -subject
打印出证书的MD5特征参数
gmssl x509 -in cert.pem -noout -fingerprint

(3)生成服务器证书

  1) 生成私钥

$ gmssl ecparam -genkey -name sm2p256v1 -text -out Server.key -config /usr/local/ssl/openssl.cnf

 2) 证书请求

$ gmssl req -new -key Server.key -out Server.csr -subj /C=CN/ST=Guang Zhou/L=GZ/O=Server/OU=Server Sign/CN=ServerCA/emailAddress=Server@gmail.com -config /usr/local/ssl/openssl.cnf

3) 签发证书

$ gmssl x509 -req -sm3 -days 3650 -CA RootCA.crt -CAkey demoCA/private/Root.key -CAcreateserial -in Server.csr -out ServerCA.crt

4)证书验证

$ gmssl verify -CAfile RootCA.crt ServerCA.crt

  

 

免责声明:文章转载自《国密证书生成实践》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue v-for的数组改变导致页面不渲染解决方法mysql主从之半同步复制和lossless无损复制下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

阿里云免费购买SSL证书,nginx无缝升级https

最近在升级交流学习社区,觉得有必要升级成https.以下是自己在升级中记录。 以下包括以下部分: 一、阿里云免费购买SSL证书 1、自己在阿里云申请了免费的,然后自己支付0元,购买了SSL证书 2、我选择DNS验证 3、在SSL证书中,下载cert证书,然后放到nginx服务器上 二、nginx无缝升级https 4、查看nginx是否支持ssl 5、配置...

Linux下Apache配置HTTPS功能

Apache配置HTTPS功能转https://www.cnblogs.com/liaojiafa/p/6028816.html 一、yum 安装openssl和openssl-devel,httpd-devel 二、生成证书(也可以从公司的证书颁发机构获取): #建立服务器密钥 openssl genrsa -des3 1024 > /...

Nginx配置https, 80端口重定向443

server { listen 443 ssl; server_name 域名; charset utf-8; access_log /var/log/nginx/webhook.iminho.me/access.log; add_header X-Xss-Protection 1; ssl_...

常用邮箱SMTP服务器地址大全

常用邮箱SMTP服务器地址大全 阿里云邮箱(mail.aliyun.com) POP3服务器地址:pop3.aliyun.com(SSL加密端口:995;非加密端口:110) SMTP服务器地址:smtp.aliyun.com(SSL加密端口:465;非加密端口:25) IMAP服务器地址:imap.aliyun.com(SSL加密端口:993;非加...

post传参部分数据丢失

tomcat获取post传的参数,只接收到前半部分参数,后半部分参数没有接收到 可能的原因是: tomcat中maxParameterCount是用来限制请求中的最大参数量,默认是10000,如果超过这个数值,会默认把多出的参数截取掉 (将被容器自动解析的最大数量的参数和值对(GET加上POST)。参数值对超出此限制将被忽略。值小于0表示没有限制。如果没有...

【Nginx】之安装使用和配置SSL支持

本文采用的是nginx源码安装 1、下载nginx源码包 wget http://nginx.org/download/nginx-1.8.0.tar 或者登录nginx官网下载更高版本 2、nginx安装需要其他环境的支持  环境是否安装了gcc rpm -qa|grep gcc   如果没有则需要yum install gcc-c++ 环境是否安装了...