您的位置:首页 > 运维架构

openssl如何制作自签名的CA证书,及利用CA签发证书

2016-01-28 18:52 706 查看

openssl如何制作自签名的CA证书,及利用CA签发证书

生成服务器证书及私钥(key)

openssl genrsa -des3 -out server.key 1024


去掉key口令

openssl rsa -in server.key -out server.key


生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书

openssl req -new -key server.key -out server.csr -config openssl.cnf

以同样的方式生成client.key及client.csr文件,(CN)comment name不能一样,否则CA签名


时会出错:

failed to update database

TXT_DB error number 2

生成自签名的CA证书

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf


用上面生成的CA证书给服务器,客服端证书签名

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf


从证书中提取公钥(pubkey)

openssl x509 -in ca.crt -inform PEM -out ca.der -outform DER
显示公钥跟证书信息:
openssl x509 -in ca.crt -pubkey

生成rsa密钥
openssl genrsa -des3 -out prikey.pem
去除掉密钥文件保护密码
openssl rsa -in prikey.pem -out prikey.pem
分离出公钥
openssl rsa -in prikey.pem -pubout -out pubkey.pem(获取证书中的公钥 openssl req -in myreq.pem  -out -pubkey.pem)
对文件进行签名
open rsautl -sign -inkey prikey.pem -in a.txt -out sig.dat
验证签名
openssl rsautl -verify -inkey prikey.pem -in sig.dat
用公钥对文件加密
openssl rsautl -encrypt -pubin -inkey pubkey.pem -in a.text -out b.text
用私钥解密
openssl rsautl -decrypt -inkey prikey.pem -in b.text
用证书中的公钥加密
opensll rsautl -encrypt -certin -inkey cert1.pem -in a.txt

或者
生成一个没有加密的ca私钥
openssl genrsa -out ca.key.pem 1024
生成ca对应的csr文件
openssl req -new -key ca.key.pem -out ca.csr
自签名
openssl x509 -in ca.csr -out ca.cer -req -signkey ca.key.pem -days 7300 -extensions v3_ca
生成DER格式的私钥
openssl pkcs8 -topk8 -inform PEM -outform DER -in ca.key.pem -out ca.private.der -nocrypt
读取证书的内容,显示在屏幕上
openssl x509 -in server.cer -noout -subject  -nameopt RFC2253
将der格式的证书转成pem格式
openssl  x509  -inform PEM  -outform DER -in server.der -out server.pem


其他:

crt文件和.key可以合并到一个文件里面


How to debugging SSL refer to:

查看SSL加密通信过程
ssldump -a -A -H -i en0
-A -H 显示SSL记录层头,-a显示TCP连接状态

openssl客服端:
openssl s_client -connect mail.prefetch.net:443 -state -nbio

参考: http://prefetch.net/articles/debuggingssl.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: