OpenSSL之自签名证书认证

前言

由于信息在传输的过程中都采用明文 , 故是很不安全的做法 , 所以需要对数据进行加密 , 将明文数据转换为密文数据传输 . 因此采用OpenSSL生成自签名证书在服务端和移动端使用 , 但是查找了网上的很多的博客, 发现很多都介绍的不够详细 , 因此耗费了很多的时间 , 顾将自己的总结, 提供给大家 , 以便参考.

OpenSSL认识

openssl 是一个开放源代码的实现了SSL及相关加密技术的软件包,其提供了一个通用、健壮、功能完备的工具套件,用SSL/TLS 协议的加密工具

官网 : https://www.openssl.org/source/

功能

  1. 密码算法库
  2. 密钥和证书封装管理功能
  3. SSL协议

用途

  1. 建立 RSA、DH、DSA key 参数
  2. 生成证书 , 即数字签名证书 , 它包含一个公有秘钥 ,可以用来单向的加密和解密数据 , 即,使用公钥加密的数据 , 只能使用私有秘钥解密
  3. 计算消息摘要
  4. SSL/TLS 客户端以及服务器的测试
  5. 处理S/MIME 标记和邮件的加密

下载

下载地址:http://slproweb.com/products/Win32OpenSSL.html

软件安装与运行

  1. 安装

安装完成以后 , 找到安装的目录 , 然后在目录中找到bin , 新建文件夹为: myssl

     2.运行

在bin目录中 以管理员的身份运行openssl.exe文件 , 弹出如下图的终端窗口

OpenSSL之自签名证书认证_第1张图片

使用

1.生成RSA私钥(无加密)

genrsa -out ssl/rsa_private.key 2048

OpenSSL之自签名证书认证_第2张图片

2.生成RSA公钥

rsa -in ssl/rsa_privage.key -pubout -out ssl/rsa_public.key

OpenSSL之自签名证书认证_第3张图片

3.生成RSA私钥(使用aes256加密)

genrsa -aes256 -passout pass:123456 -out ssl/aes_private.key 2048

4.根据第三步生成的私钥 , 生成公钥

rsa -in aes_private.key -passin pass:123456 -puout -out aes_public.key

5.生成自签名证书

生成RSA私钥和自签名证书

reg -newkey rsa:2048 -nodex -keyout ssl/rsa_privage.key -x509 -days3650 -out ssl/cert.crt

根据提示输入证书拥有者信息

OpenSSL之自签名证书认证_第4张图片

req 是证书请求的子命令 , -newkey rsa:2048 -keyout ssl/rsa_private.key 表示生成私钥(PKCS8格式), -nodes 表示私钥不加密 , -x509 表示输出证书 , -days 3650 为有效期.

如果执行自动输入 , 可使用-subj选项:

 reg -newkey rsa:2048 -nodex -keyout ssl/rsa_privage.key -x509 -days3650 -out ssl/subj_cert.crt  -subj “/C=CN/ST=GD/L=SZ/O=QUANZI/OU=DEV/CN=192.168.1.244/[email protected]

OpenSSL命令解释

  1. list-standard-commands(标准命令)
    1. Ca : 用于ca的管理
      • -in file   需要进行处理的PEM格式的证书
      • -out file 处理结束后输出的证书文件
      • -cert file 用于签发的根CA证书
      • -days arg 指定签发的证书的有效时间
      • -keyfile arg  CA的私钥证书文件
      • -keyform arg  CA的根私钥证书文件格式
        1. PEM
        2. ENGINE
    2. Req : x.509证书签发请求管理
    3. -inform arg  输入文件格式
      • Der
      • Pem
    4. -outform arg  输出文件格式
      • DER
      • PEM
    5. -in arg 待处理文件
    6. -out arg 待输出文件
    7. -passin  用于签名待生成的请求证书的私钥文件的解密密码
    8. -keyform arg
      • DER
      • NET
      • PEM
    9. -new 新的请求
    10. -x509 输出一个X509格式的证书
    11. -days x509证书的有效时间
    12. -newkey rsa:bits  生成一个bits长度的RSA私钥文件 , 用于签发
    13. -[digest]  HASH算法
      • Md5
      • Sha1
      • Md2
      • Mdc2
      • Md4
    14. -config file   指定openssl配置文件
    15. -text   text显示格式

还有很多, 这里就不作一一解释

总结

以上是个人对OpenSSL的一些理解和总结 , 如果写的不对的地方 , 希望同行多多指教 . 

你可能感兴趣的:(OpenSSL)