OPENSSL 命令
openssl command [ command_opts ] [ command_args ] |
常用command:
version 用于查看版本信息
enc 用于加解密
ciphers 列出加密套件
genrsa 用于生成私钥
-des|-des3|-idea:用来加密私钥文件的三种对称加密算法。
rsa RSA密钥管理(例如:从私钥中提取公钥,加密私钥,或去除加密)
req 生成证书签名请求(CSR)
crl 证书吊销列表(CRL)管理
ca CA管理(例如对证书进行签名)
dgst 生成信息摘要
rsautl 用于完成RSA签名、验证、加密和解密功能
passwd 生成散列密码
s_client 通用的SSL/TLS客户端测试工具
X509 X.509证书管理
verify X.509证书验证
pkcs7 PKCS#7协议数据管理
查看证书
openssl x509 -in server.cer -text
查看私钥
openssl rsa -text -noout -in server.key
验证server.crt 是否是由该私有CA签发的
openssl verify -CAfile ca.crt server.crt
openssl s_client 用于建立和测试SSL/TLS连接
参数
-connect host:ip 指定要连接的目标主机和端口
-CAfile 指定CA证书文件名,用于服务器证书的验证
-cert 指定客户端证书文件
-key 指定客户端私钥文件
-showcerts 显示服务器证书链
-debug 显示调试信息,包括SSL握手过程
验证服务器证书
openssl s_client -connect ossip:10511 -CAfile trust.cer
显示服务器证书链
openssl s_client -connect ossip:10511 -showcerts
[keytool]
keytool为java原生自带,安装java后不需要再进行安装,是jdk提供的密钥和证书管理工具,用于管理自己的公钥/私钥及证书申请,导入,位于JAVA_HOME\bin\keytool.exe。
-certreq:生成证书请求(少用)
-changealias:更改条目的别名
-delete:删除条目
-exportcert:导出证书 (jdk1.6之前export)
-genkeypair:生成密钥对(jdk1.6之前genkey)
-genseckey:生成密钥(对称加密)
-gencert:根据证书请求生成证书
-importcert:导入证书或证书链
-importpass:导入口令
-importkeystore:从其他密钥库导入一个或所有条目
-keypasswd:更改条目的密钥口令
-list:列出密钥库中的条目
-printcert:打印证书内容
-printcertreq:打印证书请求的内容
-printcrl:打印 CRL 文件的内容
-storepasswd:更改密钥库的存储口令
1、-genkeypair(生成密钥对/创建数字证书)
选项
-alias key的别名,每一个key通过alias区分
-keystore 密钥库名称
-keyalg 密钥算法名称(RSA)
-keypass 密钥口令
-storepass 密钥库口令
[KeyStore]
是一个存储库,可用于存储一系列密钥 证书,jdk提供了keytool命令来管理该存储库
java的JAVA_HOME/jre/lib/security/cacerts 是java标准信任库,存储了预信任的证书颁发机构的根证书
cacerts证书库默认密码 changeit
列出证书库中所有条目
keytool -list -keystore JAVA_HOME/jre/lib/security/cacerts
生成密钥
keytool -genkey -alias James -keyalg RSA -keystore mystore
导出生成证书
keytool -export -alias james -keystore mystore -file james.cer
将证书导入到java标准信任库cacerts中
keytool -import -alias james -keystore JAVA_HOME/jre/lib/security/cacerts -file james.cer
如果别名已经在cacerts中存在,删除别名
keytool -delete -alias james -keystore cacerts