OpenSSL使用手册

引用页


创建

创建 RSA

# 密钥长度为2048位,且使用AES 128长度密钥加密,提示后输入密钥,如果不需要加密则删除参数 -aes128
openssl genrsa -aes128 -out test.key 2048
openssl rsa -in test.key -pubout -out test.pub

#Show content in key
openssl rsa -text -in test.key

创建 DSA

openssl dsaparam -genkey 2048 | openssl dsa -out test.key -aes128 

#create ECDSA
openssl ecparam -genkey -name secp256r1 | openssl ec -out test.key -aes128

创建证书

  • pkcs8与传统RSA的区别在于:传统rsa内容开头为BEGIN RSA PRIVATE KEY,pkcs8 则为:PRIVATE KEY
  • 通过req直接生成的私钥为pkcs8格式,使用genrsa生成为传统秘钥格式
#创建自签名证书,时间为三年,RSA密钥长度2048位,不加密私钥文件,且设置证书CN等信息
openssl req -x509 -new -days 10950 -newkey rsa:2048 -keyout CA.key -nodes -out CA.crt -subj "/C=GB/L=London/o=Feisty Duck Ltd/CN=www.ca.com"

#用CA证书请求新证书
openssl req -new -newkey rsa:2048 -keyout test.key -nodes -out test.csr -subj "/CN=example.com"
openssl x509 -req -days 10950 -in test.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out test.crt

#创建证书时使用扩展参数文件,将扩展参数应用到创建证书中
openssl req -new -newkey rsa:2048 -keyout client.key -nodes -out client.csr -subj "/CN=example.com"
openssl x509 -req -days 10950 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -extfile test.txt


#将证书请求重新生成证书
openssl x509 -x509toreq -in test.crt -out test.csr -signkey test.key

#查看证书详情
openssl req -text -in test.csr -noout 
openssl x509 -text -in test.crt -noout

转换

将二进制类型转成PEM格式

# 二进制转pem明文
openssl x509 -inform der -in certificate.cer -outform pem -out certificate.crt
# pem明文转二进制
openssl x509 -outform der -in certificate.pem -out certificate.der

证书套件打包(pkcs12)

# 将证书与私钥打包进入server.pfx文件中
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
# 解包
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt

# 导出部分文件
openssl pkcs12 -in server.pfx -nocerts -out server.key -nodes
openssl pkcs12 -in server.pfx -nokeys -clcerts -out server.crt
# 导出证书连
openssl pkcs12 -in server.pfx -nokeys -cacerts -out server-chain.crt

转换传统证书<=>PKCS8

# 将传统私钥转换成pkcs8
openssl pkcs8 -topk8 -in server.key -inform pem -out server.pem -outform pem -nocrypt
# 将pkcs8转换成传统公钥
openssl rsa -in newkey.pem -out newkey.pem

从证书中提取公钥

openssl x509 -pubkey -in server.cer -inform DER -outform PEM -noout

创建自签名证书脚本

openssl genrsa -out /tmp/certs/ca.key 2048
openssl req -new -x509 -nodes -key /tmp/certs/ca.key -out /tmp/certs/ca.crt -subj "/CN=abc.cn" -days 10950
openssl genrsa -out /tmp/certs/client.key 2048
openssl req -new -key /tmp/certs/client.key -out /tmp/certs/client.csr -subj "/CN=abc.cn"
openssl x509 -req -in /tmp/certs/client.csr -CA /tmp/certs/ca.crt -CAkey /tmp/certs/ca.key -CAcreateserial -days 10950 -out /tmp/certs/client.crt
openssl genrsa -out /tmp/certs/server.key 2048
openssl req -new -key /tmp/certs/server.key -out /tmp/certs/server.csr -subj "/CN=${domain_name}"
openssl x509 -req -in /tmp/certs/server.csr -CA /tmp/certs/ca.crt -CAkey /tmp/certs/ca.key -CAcreateserial -days 10950 -out /tmp/certs/server.crt

OPENSSL 测试案例

查询可用的加密算法

openssl ciphers -v 'ECHDE AES'

检测指定网站的证书信息

openssl s_client -connect www.changel.cn:443

#测试明文升级到TLS的协议
openssl s_client -connect smtp.exmail.qq.com:25 -starttls smtp

#禁用TLS指定协议
openssl s_client -connect www.changel.cn:443 -no_ssl3 -no_tls1 -no_tls1_1 -no_tls1_2

#输出网站的证书,加上-showcerts 如果你需要整个的证书链
echo | openssl s_client -connect www.changel.cn:443 2>&1 | sed --quiet '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > changel.crt

#测试是否支持指定的秘钥套件
openssl s_client -connect www.changel.cn:443 -cipher ECDHE-RSA-AES128-GCM-SHA256

#测试连接OCSP,证书链生成看如上命令,首先查询ocsp地址
openssl x509 -noout -ocsp_uri -in changel.crt
openssl ocsp -issuer changel-chain.crt -cert changel.crt -url http://ocsp.comodoca.com -CAfile changel-chain.crt

#测试是否支持OCSP stapling,当你得到OCSP response数据则说明服务器支持
openssl s_client -connect www.changel.cn:443 -status

#检查证书是否被吊销,下载并检查
openssl x509 -in changel.crt -noout -text | grep crl
openssl crl -in ssl.crl -inform der -text -noout

安全检查

#检查DH 密钥信息
openssl s_client -connect www.changel.cn:443 -cipher kEDH

#TLS heartbleed,input "B",if you don't get equal length in response,heart will blood
openssl s_client -connect www.changel.cn:443 -tlsextdebug -msg

#BEAST bug check
echo | openssl s_client -connect www.changel.cn:443 -cipher 'RC4'

JKS 转换

#查看证书内容
keytool -list -v -keystore test.jks  -storepass abcdefg

#查看证书内容,格式为RFC
keytool -list -rfc -keystore test.jks -storepass abcdefg

#从jks中提取pfx文件,需要制定jks密码和pfx解密密码,还需要制定pfx别名
keytool -v -importkeystore -srckeystore test.jks -srcstoretype jks -srcstorepass abcdefg -destkeystore server.pfx -deststoretype pkcs12 -deststorepass aliases -destkeypass 123456

#将pfx打包到jks中
keytool -importkeystore -srckeystore  server.pfx -srcstoretype pkcs12 -destkeystore test.jks -deststoretype JKS
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值