由于信息在传输的过程中都采用明文 , 故是很不安全的做法 , 所以需要对数据进行加密 , 将明文数据转换为密文数据传输 . 因此采用OpenSSL生成自签名证书在服务端和移动端使用 , 但是查找了网上的很多的博客, 发现很多都介绍的不够详细 , 因此耗费了很多的时间 , 顾将自己的总结, 提供给大家 , 以便参考.
openssl 是一个开放源代码的实现了SSL及相关加密技术的软件包,其提供了一个通用、健壮、功能完备的工具套件,用于SSL/TLS 协议的加密工具。
官网 : https://www.openssl.org/source/
下载地址:http://slproweb.com/products/Win32OpenSSL.html
安装完成以后 , 找到安装的目录 , 然后在目录中找到bin , 新建文件夹为: myssl
2.运行
在bin目录中 以管理员的身份运行openssl.exe文件 , 弹出如下图的终端窗口
1.生成RSA私钥(无加密)
genrsa -out ssl/rsa_private.key 2048
2.生成RSA公钥
rsa -in ssl/rsa_privage.key -pubout -out ssl/rsa_public.key
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
根据提示输入证书拥有者信息
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的一些理解和总结 , 如果写的不对的地方 , 希望同行多多指教 .