原文链接:https://www.jianshu.com/p/f5f93c89155e
443 端口 debug
1
| $ openssl s_client -connect localhost:443 -state -debug
|
查看证书
查看 KEY 信息
1
| $ openssl rsa -noout -text -in myserver.key
|
查看 CSR 信息
1
| $ openssl req -noout -text -in myserver.csr
|
查看证书信息
1
| $ openssl x509 -noout -text -in ca.crt
|
验证证书
会提示 self signed
1
| $ openssl verify selfsign.crt
|
因为 myserver.crt 是幅 ca.crt 发布的,所以会验证成功
1
| $ openssl verify -CAfile ca.crt myserver.crt
|
去掉 key 的密码保护
有时候每次都要输入密码太繁琐了,可以把 Key 的保护密码去掉
1
| $ openssl rsa -in myserver.key -out server.key.insecure
|
不同格式证书的转换
一般证书有三种格式:
PEM(.pem) 前面命令生成的都是这种格式,
DER(.cer .der) Windows 上常见
PKCS#12 文件(.pfx .p12) Mac 上常见
PEM 转换为 DER
1
| $ openssl x509 -outform der -in myserver.crt -out myserver.der
|
DER 转换为 PEM
1
| $ openssl x509 -inform der -in myserver.cer -out myserver.pem
|
PEM 转换为 PKCS
1
| $ openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.crt -certfile ca.crt
|
PKCS 转换为 PEM
1
| $ openssl pkcs12 -in myserver.pfx -out myserver2.pem -nodes
|
测试证书
Openssl 提供了简单的 client 和 server 工具,可以用来模拟 SSL 连接,做测试使用。
连接到远程服务器
1
| $ openssl s_client -connect www.google.com.hk:443
|
模拟的 HTTPS 服务,可以返回 Openssl 相关信息
-accept 用来指定监听的端口号
-cert -key 用来指定提供服务的 key 和证书
1
| $ openssl s_server -accept 443 -cert myserver.crt -key myserver.key -www
|
可以将 key 和证书写到同一个文件中
1
| $ cat myserver.crt myserver.key $ myserver.pem
|
使用的时候只提供一个参数就可以了
1
| $ openssl s_server -accept 443 -cert myserver.pem -www
|
可以将服务器的证书保存下来
1
| $ openssl s_client -connect www.google.com.hk:443 remoteserver.pem
|
转换成 DER 文件,就可以在 Windows 下直接查看了
1
| $ openssl x509 -outform der -in remoteserver.pem -out remoteserver.cer
|
计算 MD5 和 SHA1
MD5 digest
1
| $ openssl dgst -md5 filename
|
SHA1 digest
1
| $ openssl dgst -sha1 filename
|