OpenSSL 笔记

2014-11-17

准备知识
  • 私钥/公钥签名算法 之后要说的RSA、ECC(椭圆曲线加密算法)都是其中的一种。
  • 迪菲-赫尔曼密钥交换 简写就是DH
  • ECDH 椭圆曲线DH 使用椭圆曲线签名算法用来进行密钥交换
  • SHA 1-N 、MD5 都是摘要算法,运算出的值进行校验
  • AES DES 3DES RC4 都是加密算法,用来加密传输用的数据

所以ECDH-ECDSA-AES256-GCM-SHA384 意思是: 使用ECDH协议交换以ECDSA为加密算法的公钥,
AES256-GCM加密算法加密传输数据 SHA算法384位强度进行校验

证书制作流程

一般流程是:

  1. 生成自己的私钥
  2. 用私钥生成csr(Certificate Signing Request 验证签名申请)
  3. 将csr提交CA(Certificate authority 验证管理局)
  4. CA发回一个crt(Certificate 验证文件)
  5. 将CA发回的crt和CA公开的crt进行叠加(先后顺序不能颠倒)
  6. 在应用程序中设置keyfile为自己的私钥
  7. 在应用程序中设置certfile为叠加后的crt文件

+-----+ +-----+
| You | | CA |
+-----+ +-----+
-------------------------------\ | |
| Generate private key and CSR |-| |
|------------------------------| | |
| |
| give CSR |
|------------>|
| | ------------\
| |-| check CSR |
| | |-----------|
| |
| give CRT |
|< ------------|
-------------------------------\ | |
| Set your CRT and private key |-| |
|------------------------------| | |
| |

自签名流程:

  1. 生成自己的私钥
  2. 用自己的私钥生成CA crt
  3. 如果需要自签署其他csr,需要执行命令
命令cheatsheat

生成RSA私钥:

openssl genrsa -out myrsa.key 2048

解释: genrsa (generate rsa), 2048是位数 生成ECC私钥:

openssl ecparam -name secp256k1 -genkey -noout -out myecdsa.private.key

解释: secp256k1是曲线的名称 可以用openssl ecparam -list_curves找想要的曲线 生成csr文件:

openssl req -new -sha256 -key [私钥地址] -out [想要csr的地址]

解释: sha256是之前说的摘要算法,默认的sha1已经不再安全了 生成自签名crt文件:

openssl req -new -nodes -x509 -key [私钥地址] -out [想要的crt的地址] -days [想要的天数]

自签名csr文件:

openssl x509 -req -in [CSR地址] -signkey [签署用的私钥] -out [想要的CRT地址] -days [想要的天数]

验证签名文件信息:

openssl x509 -in [CRT文件] -text -noout

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据