首页 > 其他分享 >OPENSSL命令行

OPENSSL命令行

时间:2025-01-06 19:32:18浏览次数:3  
标签:openssl userkeypair 证书 req ts OPENSSL 命令行 out

note

  1.  openssl虽然对SM2有一定支持,但是在基于1.1.1版本签发证书和时间戳响应时都会存在问题,比如oid不支持SM2withSM3,签发时间戳会报错PKCS7_R_SIGNING_CTRL_FAILURE
  2. 推荐RSA使用OPENSSL,SM2使用GMSSL

自建CA

  1. 准备目录 mkdir -p private certs newcerts crl 
  2. cd /etc/pki/CA
  3. 生成RSA2048密钥 openssl genrsa -out private/cakey.pem 2048
  4. 自签根证 openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300 -subj /C=CN/ST=BeiJing/CN=FCA
  5. touch index.txt serial
  6. echo 01 > serial

签发证书

  1. 创建目录用以存放用户密钥 mkdir userkeypair
  2. 生成RSA1024密钥 openssl genrsa -out userkeypair/user.key 1024
  3. 生成证书请求CSR openssl req -new -key userkeypair/user.key  -out userkeypair/user.csr -subj /C=CN/ST=BeiJing/CN=user01
  4. 签发证书 openssl ca -in userkeypair/user.csr -out userkeypair/user.cer -days 3650 -batch
  5. 合成pfx文件 openssl pkcs12 -export -in userkeypair/user.cer -inkey userkeypair/user.key -certfile cacert.pem -out userkeypair/user.pfx -password pass:123456

签发包含subjectAltName证书

  1. 修改openssl.cnf
  2. [ req ] 增加 req_extensions = v3_req
  3. [ v3_req ] 增加 subjectAltName = @alt_names
  4. [ alt_names ] 增加 IP.1 = 1.2.3.4; DNS.1 = feng.cn
  5. 签发证书时增加选项 -extensions v3_req

签发时间戳证书

#可使用如下命令验证SM2的问题
##生成密钥
openssl ecparam -genkey -name SM2 -out private/tskey.pem

##生成证书请求
openssl req -new -key private/tskey.pem -out newcerts/ts.csr -subj /C=CN/ST=BeiJing/CN=FTSA -config openssl.cnf

##签发证书 (***检查openssl.cnf extendedKeyUsage = critical,timeStamping***)
openssl ca -in newcerts/ts.csr -out newcerts/ts.cer -days 1825 -batch -config openssl.cnf

##生成时间戳请求
openssl ts -query -sm3 -data data -tspolicy "1.2.3.4.5.6.7.8" -cert  -config /etc/pki/CA/SM2/openssl.cnf -out ./ts.req

##生成时间戳响应
openssl ts -reply -config /etc/pki/CA/SM2/openssl.cnf -queryfile ts.req -out ts.resp

#签发RSA时间戳服务证书后,调用如下命令生成请求和响应
openssl ts -query  -data data -cert -out ./ts.req
openssl ts -reply  -queryfile ts.req -out ts.resp

证书验证

  1. 获取证书链各个证书的hash值hashvalue,并重命名为hashvalue.0,放到一个目录下如CApath,openssl x509 -hash -in ../userkeypair/subca.cer
  2. openssl verify -CApath CApath -show_chain userkeypair/subca_user1.cer
  3. 理论上用户证书和中间CA证书都需要进行CRL校验,但从效率考虑,一般只校验用户证书的吊销状态
  4. CA签发用户证书的私钥和签发CRL的私钥可以是不同的,甚至可以委托另一家CA签发CRL,但需要保持和签发证书的链一致

常用命令

#去除私钥p8保护密码
openssl rsa -in encryedprivate.key -out unencryed.key

#解析pfx中的证书
openssl pkcs12 -in user.pfx -password 123456 -clcerts -nokeys -out usercert.pem

#解析pfx中的私钥
openssl pkcs12 -in user.pfx -password 123456 -nocerts -out userkey.pem

#查看证书中的扩展项
openssl x509 -noout -in test.cer -ext basicConstraints

标签:openssl,userkeypair,证书,req,ts,OPENSSL,命令行,out
From: https://blog.csdn.net/summermeet/article/details/144967590

相关文章

  • Linux命令行连接蓝牙设备
    Linux命令行连接蓝牙设备查看Bluetooth设备:hciconfig启动一个Bluetooth设备,例如:hci0:hciconfighci0up相关指令查看特定的Bluetooth设备(例如,设备名为hci0):hciconfighci0关闭一个Bluetooth设备(例如,设备名为hci0):hciconfighci0down修改一个Bluetooth设备的......
  • auditpol 的全称是 Audit Policy。它是 Windows 中的一个命令行工具,允许管理员管理和
    auditpol的全称是AuditPolicy。它是Windows中的一个命令行工具,允许管理员管理和配置Windows系统上的安全审计策略。该工具使您能够指定应该审计哪些事件,例如登录尝试、对象访问或系统配置更改等。auditpol 的主要功能:查看和配置特定类别及子类别的审计策略。启用或禁......
  • Linux(Centos 7.6)命令行快捷键
     Linux(Centos7.6)操作系统一般都是使用命令行进行管理,如何能高效的进行命令编辑与执行,需要我们记住一些常见的命令,也需要连接一些常见快捷键的使用,常见快捷键如下:快捷键快捷键说明tab命令行补齐ctrl+r快速查找之前命令(历史命令),并执行ctrl+a光标移至行首ctrl+e光标移至行......
  • 从命令行管理文件
    文件命名规则:(1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的(2)文件名不能超过255个字符(3)区分大小写fileFileFILEfIle(4)目录也是文件,在同一路径下,两个不同类型文件不能同名1.1创建链接文件符号链接又叫软链接,和原文件不......
  • linux命令行连接Postgresql常用命令
    1.linux系统命令行连接数据库命令psql-hhostname-pport-Uusername-ddatabasename-h 主机名或IP地址  -p 端口  -U 用户名  -d 连接的数据库2.查询数据库表命令selectversion()  #查看版本号\dg     #查看用户\l       #查......
  • 命令行自动化框架CmdLinker
    CmdLinkerCmdLinker将为您提供简单、可操作的命令对象的调用方式,通过链式调用去使用各种命令,获取请求/响应,不在局限于将简单的命令字符串交给各种ssh工具包,修改执行命令时,不在需要进行各种繁琐的字符串的替换之类的操作或直接重新编写命令适用系统/中间件所有可在linux/windo......
  • Linux 安装和配置openssl
    使用python3.10版本时遇到无法加载.ssl的报错,解决方法如下:1.检查openssl的当前版本,如果已经是openssl-1.1.1w,则跳过下文,应该不是同一个问题。opensslversion OpenSSL1.0.2k-fips 26Jan20172.下载openssl-1.1.1w版本的压缩包openssl-1.1.1w.tar.gz  3.解压压......
  • openssl版本升级升级
    修复"避免使用IDEA、DES和3DES算法"漏洞需要升级openssl。修复建议1、OpenSSLSecurityAdvisory[22Sep2016]链接:https://www.openssl.org/news/secadv/20160922.txt请在下列网页下载最新版本:https://www.openssl.org/source/2、对于nginx、apache、lighttpd等服务器......
  • 命令行命令纠错神器 The Fuck
    理论源码与官方文档GitHub地址:https://github.com/nvbn/thefuck极简概括:使用Python编写的、可扩展规则的、支持在Linux、MacOS上运行的命令行命令纠错工具,当前88.4Kstar。应用场景:命令行输错并按了回车,移动光标矫正嫌麻烦,生气了,于是输入f**k指令,智能帮你纠错。缺点:指令众多......
  • 用 nodejs 实现一个命令行工具,统计输入目录下面指定代码的行数
    以下是一个使用Node.js实现的命令行工具,用于统计输入目录下指定代码文件的行数。实现思路接收命令行参数,获取输入目录和文件扩展名(例如,.js、.html、.css等)。递归遍历输入目录,查找所有符合指定扩展名的文件。对于每个找到的文件,读取文件内容并统计行数。输出统计结果。......