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
相关文章推荐
- linux bridge 的 vxlan 试验
- openstack运维实战系列(十七)之glance与ceph结合
- Tomacat7启动报错-org.apache.catalina.deploy.WebXml addFilter
- centos下动态gif图和视频的录制
- 几个adb shell的命令,放到批处理文件里面,方便好用
- 如何安装nginx_lua_module模块,升级nginx
- [转]nginx+fastcgi+c/c++搭建高性能Web框架
- Linux C Socket编程原理及简单实例
- linux设置开机服务自动启动/关闭自动启动命令
- SecureCRT上传bash: rz: command not found
- NTP(时间)服务器安装&配置&初体验(CentOS)
- Shell数组:shell数组的定义、数组长度
- Shell字符串
- Shell注释
- Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
- Shell替换:Shell变量替换,命令替换,转义字符
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
- Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- 第一个Shell脚本
- PHP如何让apache支持.htaccess 解决Internal Server Error The server …错误