使用 openssl 查看证书内容
https://www.jianshu.com/p/f5f93c89155e
查看密钥 .key
openssl rsa -noout -text -in server.key
查看CSR信息
openssl req -noout -text -in server.csr
查看证书信息
openssl x509 -noout -text -in server.crt
验证证书
openssl verify server.crt
会显示 self signed certificate
如果使用 ca.crt
来签发 server.crt
证书,然后再使用 ca.crt
来验证 server.crt
,那么就会显示验证成功。
openssl verify -CAfile ca.crt server.crt
去掉key的密码保护
openssl rsa -in myserver.key -out server.key.insecure
不同格式的证书转换
- PEM转换为DER
openssl x509 -outform der -in myserver.crt -out myserver.der
- DER转换为PEM
openssl x509 -inform der -in myserver.cer -out myserver.pem
- PEM转换为PKCS
openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.crt -certfile ca.crt
- PKCS转换为PEM
openssl pkcs12 -in myserver.pfx -out myserver2.pem -nodes
测试证书
测试证书 Openssl提供了简单的client和server工具,可以用来模拟SSL连接,做测试使用。
# 连接到远程服务器
> openssl s_client -connect www.google.com.hk:443
# 模拟的HTTPS服务,可以返回Openssl相关信息
# -accept 用来指定监听的端口号
# -cert -key 用来指定提供服务的key和证书
> openssl s_server -accept 443 -cert myserver.crt -key myserver.key -www
# 可以将key和证书写到同一个文件中
> cat myserver.crt myserver.key > myserver.pem
# 使用的时候只提供一个参数就可以了
> openssl s_server -accept 443 -cert myserver.pem -www
# 可以将服务器的证书保存下来
> openssl s_client -connect www.google.com.hk:443 remoteserver.pem
# 转换成DER文件,就可以在Windows下直接查看了
> openssl x509 -outform der -in remoteserver.pem -out remoteserver.cer
计算MD5和SHA1
# MD5 digest
> openssl dgst -md5 filename
# SHA1 digest
> openssl dgst -sha1 filename