openssl 生成证书

来源:互联网 发布:ubuntu ssh安装 编辑:程序博客网 时间:2024/06/06 16:29
// 生成顶级CA的公钥证书和私钥文件,有效期10年(RSA 1024bits,默认
openssl req -new -x509 -days 3650 -keyout CARoot1024.key -out CARoot1024.crt
// 为顶级CA的私钥文件去除保护口令
openssl rsa -in CARoot1024.key -out CARoot1024.key 


// 生成顶级CA的公钥证书和私钥文件,有效期15年(RSA 2048bits,指定)
openssl req -newkey rsa:2048 -x509 -days 5480 -keyout CARoot2048.key -out CARoot2048.crt
// 为顶级CA的私钥文件去除保护口令
openssl rsa -in CARoot2048.key -out CARoot2048.key 


// 为应用证书/中级证书生成私钥文件

openssl genrsa -out app.key 2048
// 根据私钥文件,为应用证书/中级证书生成 csr 文件(证书请求文件)
openssl req -new -key app.key -out app.csr
// 使用CA的公私钥文件给 csr 文件签名,生成应用证书,有效期5年
openssl ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything
openssl ca -in app.csr -out app.crt -cert CARoot2048.crt -keyfile CARoot2048.key -days 1826 -policy policy_anything
// 使用CA的公私钥文件给 csr 文件签名,生成中级证书,有效期5年

openssl ca -extensions v3_ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything






生成ca的 rsa私钥,不带密码的 带密码就加-des等参数
openssl genrsa -out ca.key



自签名ca证书
openssl req -new -x509 -key ca.key -out ca.crt -days 365



生成客户rsa私钥,最后可以带上私钥位数,512,1024,2048,4096
openssl genrsa -out app.key

生成客户证书请求,发给ca
openssl req -new -key app.key -out app.csr

ca给客户证书请求颁发证书
openssl ca -in app.csr -out app.crt -keyfile ../ca/ca.key -cert ../ca/ca.crt



pfx文件是pkcs12格式的,为二进制,不可读,包含证书和私钥,可解析就是转换为pem格式,这样的pem可以既包含证书也包含私钥

其实也可以直接cat pem格式证书 pem格式私钥 > 合并文件,得到的效果和pfx导出的一样


X509转PFX:
openssl pkcs12 -export -inkey test.key -in test.cer -out test.pfx
 PFX转X509:
openssl pkcs12 -in test.pfx -nodes -out test.pem 
openssl rsa -in test..pem -out test.key
openssl x509 -in test..pem -out test.crt  
 
 

命令行生成数字签名 消息摘要算法md5 也可以选其他如sha1
 openssl dgst -md5 -sign ca.key -out sign.txt ../src.txt
 

验证数字签名,prverify参数用私钥验证,verify用公钥验证
 openssl dgst -md5 -prverify ca.key -signature sign.txt ../src.txt




原创粉丝点击