常用的openssl命令
证书
查看证书信息
openssl x509 -noout -text -in ca.crt
验证CA签发的证书
openssl verify -CAfile ca.crt myserver.crt
验证自签名证书
openssl verify selfsign.crt
查看Key信息
openssl rsa -noout -text -in myserver.key
加密的Key变成明文的Key
openssl rsa -in server.key -out server.key
计算摘要
计算MD5摘要
openssl dgst -md5 filename
计算SHA1摘要
openssl dgst -sha1 filename
CMS
签发CMS
$ openssl cms -sign -signer cert.pem -inkey key.pem -outform PEM -nosmimecap -nodetach -nocerts -noattr -md sha256 -passin pass:xxx -in dd.txt
校验CMS
$ openssl cms -verify -certfile cert.pem -CAfile ca.pem -inform PEM -nosmimecap -nodetach -nocerts -noattr -in aa.txt
签发CA根证书
生成CA私钥(.key)–>生成CA证书请求(.csr)–>自签名得到根证书(.pem)(CA给自已颁发的证书)。
# Generate CA private key
$ openssl genrsa -out ca.key 2048
# Generate CSR
$ openssl req -new -key ca.key -out ca.csr
# Generate Self Signed certificate(CA 根证书)
$ openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.pem
签发身份证书
生成私钥(.key)–>生成证书请求(.csr)–>用CA根证书签名得到证书(.pem)
# private key,如果需要加密,可以增加-des3或者-aes128等加密算法参数
$ openssl genrsa -out server.key 1024
# generate csr
$ openssl req -new -key server.key -out server.csr
# generate certificate
$ openssl ca -in server.csr -out server.pem -cert ca.crt -keyfile ca.key
最后一步可能碰到错误,我是在windows上运行:
Using configuration from C:\OpenSSL-Win64\bin\openssl.cfg
ca: ./demoCA/newcerts is not a directory
./demoCA/newcerts: No such file or directory
解决办法是在当前操作目录新建demoCA/newcerts两级目录。然后在demoCA文件夹下新建一个空的index.txt文件,再新建一个serial文件,没有后缀,里面填入01。
查看证书请求
# openssl req -in my.csr -noout -text
PFX证书格式处理
查看证书内容
# openssl pkcs12 -info -in server.pfx