1、证书生成
1.1 key文件的生成:
opensslgenrsa -des3 -out server.key 2048 #需要输入密码
openssl genrsa -out server.key2048 # 不带密码的私钥
将server.key文件转化为无密码格式:
openssl rsa -in server.key -out server.key
文件格式:
-----BEGIN
RSA PRIVATE KEY-----
###*****######
-----END RSA PRIVATE KEY-----
1.2 证书生成文件生成:
openssl req -new -key server.key -out server.csr
1.3 根据CA证书,key,生成服务器证书:
openssl x509 -req -days 730 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr
-out server.crt
2、证书查看
查看key
openssl rsa -noout -text -in ca.key
查看证书请求
openssl req -noout -text -in ca.csr
查看证书
openssl x509 -noout -text -in ca.crt
3、证书转化
证书有三种格式:
PEM(.pem) 前面命令生成的都是这种格式,
DER(.cer .der) Windows 上常见
PKCS#12文件(.pfx .p12) Mac上常见
PEM转DER
# openssl x509 -outform der -in ca.crt -out ca.der
DER转PEM
# openssl x509 -inform der -in ca.der -out ca.crt
PEM转换为PKCS>
# openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.crt -certfile ca.crt
crt + key 转 pfx:【pfx证书安装包,方便双击安装证书】
# openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
# pfx 转 pem :【curl 命令需要pem】
# openssl pkcs12 -in client.pfx -nodes -out client.pem
#.crt+key转p12【apache的cxf客户端支持jks和p12证书】
# openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
crt转jks【jks支持存放信任证书,而pkcs12不支持,所以tomcat环境下配置ca只能使用jks才能保证ca密钥不泄露】
keytool -import -v -trustcacerts -storepass defaultpwd -keypass defaultpwd -file ca.crt -keystore ca_only.jks
4、证书校验
# 证书验证
openssl verify ca.crt
# 基于CA的证书校验
openssl verify -CAfile ca.crt server.crt
5、文件签名
计算md5值:
# openssl dgst -md5 aa.log
# md5 aa.log #控制台命令
计算SHA1值:
# openssl dgst -sha1 aa.log
# shasum aa.log #控制台命令
证书(Certificate) - *.cer *.crt
私钥(Private Key) - *.key
证书签名请求(Certificate signing request) - *.csr
至于pem和der,是编码方式,以上三类均可以使用这两种编码方式,因此*.pem和*.der(少见)不一定是以上三种(Cert,Key,CSR)中的某一种
*.pem - base64编码
*.der - 二进制编码
网友评论