一.自签名证书
-
创建私钥
openssl genrsa -out ssl.key 1024 -
创建证书签名请求(根据私钥生成证书签名请求 一般是生成请求以后发送给CA,然后CA会给你签名并发回证书)
openssl req -new -key ssl.key -out ssl.csr
必须填写服务器的IP地址或域名 Common Name (e.g. server FQDN or YOUR name) []:
-
创建自签名证书(根据私钥和公钥生成自签名证书,对上一步生成的证书签名请求进行签名)
openssl x509 -req -in ssl.csr -signkey ssl.key -out server.crt
确保你的私钥的安全性 因为该证书无法被吊销
二.私有CA签名证书
1.创建CA私钥
openssl genrsa -des3 -out ca.key 4096
2.生成CA的自签名证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt 其CA证书就是一个自签名证书
3.生成服务端私钥
openssl genrsa -des3 -out server.key 4096
4.需要签名的对象(服务端)生成证书签名请求
openssl req -new -key server.key -out server.csr
这里注意证书签名请求当中的Common Name必须区别与CA的证书里面的Common Name
5.用步骤2创建的CA证书给步骤4生成的签名请求进行签名
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
三.查看信息
openssl rsa -noout -text -in server.key 查看私钥信息
openssl req -noout -text -in server.csr 查看签名请求信息
openssl rsa -noout -text -in ca.key 查看ca的私钥信息
openssl x509 -noout -text -in ca.crt 查看证书信息
openssl crl -text -in xx.crl 查看一个证书吊销列表信息
openssl x509 -purpose -in cacert.pem 查看一个证书的额外信息
openssl rsa -in key.pem -pubout -out pubkey.pem 从一个私钥里面提取出公钥
openssl rsa -noout -text -pubin -in apache.pub 查看一个公钥的信息
openssl verify -CAfile 指定CA文件路径 apache.crt 验证一个证书是否是某一个CA签发
openssl s_client -connect 192.168.20.51:443 模拟一个ssl客户端访问ssl服务器 如果服务端要求客户端提供证书 则在加上 -cert 和-key参数 比如 openssl s_client -connect 192.168.20.51:443 -cert client.crt -key client.key
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys 从p12文件里面提取证书openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes 从p12文件里面提取私钥