游戏陪玩系统,生成证书和密钥库的代码分析

游戏陪玩系统,生成证书和密钥库的代码分析

生成证书与密钥库

openssl命令提供了大量的工具,用以生成密钥、证书与密钥库文件,如下,是一个典型的生成密钥与证书的过程:

复制代码
# 生成pkcs1 rsa私钥
openssl genrsa -out rsa_private_key_pkcs1.key 2048
# 生成pkcs1 rsa公钥
openssl rsa -in rsa_private_key_pkcs1.key -RSAPublicKey_out -out rsa_public_key_pkcs1.key

# 生成证书申请文件cert.csr
openssl req -new -key rsa_private_key_pkcs1.key -out cert.csr
# 自签名(演示时使用,生产环境一般不用自签证书)  
openssl x509 -req -days 365 -in cert.csr -signkey rsa_private_key_pkcs1.key -out cert.crt
# ca签名(将证书申请文件提交给ca机构签名)
openssl x509 -req -days 365 -in cert.csr -CA ca_cert.crt -CAkey ca_private_key.pem -CAcreateserial -out cert.crt

# 生成p12密钥库文件
openssl pkcs12 -export -in cert.crt -inkey rsa_private_key_pkcs1.key -name demo -out keystore.p12
复制代码

 

有时别人发来的密钥或证书文件无法读取,也可使用openssl确认一下,如果openssl能读出来,那大概率是自己程序有问题,如果openssl读不出来,那大概率是别人发的文件有问题,如下:

复制代码
# 查看pkcs1 rsa私钥
openssl rsa -in rsa_private_key_pkcs1.key -text -noout
# 查看pkcs1 rsa公钥
openssl rsa -RSAPublicKey_in -in rsa_public_key_pkcs1.key -text -noout

# 查看x.509证书
openssl x509 -in cert.crt -text -nocert

# 查看pkcs12密钥库文件
openssl pkcs12 -in keystore.p12
keytool -v -list -storetype pkcs12 -keystore keystore.p12
复制代码

 

由于密钥、证书、密钥库文件,其实都是使用ASN.1语法描述的,所以它们都能按ASN.1语法解析出来,如下:

openssl asn1parse -i -inform pem -in cert.crt

 

证书格式转换

某些情况下,我们需要在不同格式的密钥或证书文件之间转换,也可使用openssl命令来完成。
密钥格式转换,如下:

# rsa公钥转换为X509公钥
openssl rsa -RSAPublicKey_in -in rsa_public_key_pkcs1.key -pubout -out public_key_x509.key
# rsa私钥转换为PKCS8格式
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key_pkcs1.key -outform PEM -nocrypt -out private_key_pkcs8.key
# pkcs8转rsa私钥
openssl pkcs8 -inform PEM -nocrypt -in private_key_pkcs8.key -traditional -out rsa_private_key_pkcs1.key

 

证书格式转换,如下:

# 证书DER转PEM
openssl x509 -inform der -in cert.der -outform pem -out cert.pem -noout
# x509证书转pkcs7证书
openssl crl2pkcs7 -nocrl -certfile cert.crt -out cert.p7b
# 查看pkcs7证书
openssl pkcs7 -print_certs -in cert.p7b -noout

 

由于密钥库中包含证书与私钥,故可以从密钥库文件中提取出证书与私钥,如下:

# 从pkcs12密钥库中提取证书
openssl pkcs12 -in keystore.p12 -clcerts -nokeys -out cert.crt
# 从pkcs12密钥库中提取私钥
openssl pkcs12 -in keystore.p12 -nocerts -nodes -out private_key.key
# pkcs12转jks
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -srcalias demo -destkeystore keystore.jks -deststoretype jks -deststorepass 123456 -destalias demo
# 从jks中提取证书
keytool -export -alias demo -keystore keystore.jks -file cert.crt

 

以上就是游戏陪玩系统,生成证书和密钥库的代码分析, 更多内容欢迎关注之后的文章

posted @   云豹科技-苏凌霄  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2023-07-06 直播平台开发,使用BottomTabBar实现底部导航页
2023-07-06 直播平台源码,默认页面几秒后自动跳转另一页面
2023-07-06 直播平台制作,EditText实现“眼睛”效果
2022-07-06 在线直播系统源码,使用ValueAnimator实现view放大缩小动画效果
2022-07-06 短视频开发app,vue v-viewer库 显示出图片名称
2022-07-06 直播平台源码,可折叠式菜单栏
点击右上角即可分享
微信分享提示