
OpenSSL是一个安全的套接字层密码库,它包括主要的加密算法,常用的密钥和证书包管理功能以及SSL协议,并提供了大量用于测试或其他目的的应用程序.
SSL是安全套接字层(Secure Sockets Layer Protocol,Secure Sockets Layer Protocol)的缩写,可以通过Internet提供秘密传输. Netscape在启动第一个Web浏览器时引入了SSL协议标准. 其目标是确保两个应用程序之间通信的机密性和可靠性,这可以同时支持服务器和用户. 已成为Internet上安全通信的行业标准.
SSL可以防止攻击者用户/服务器应用程序的通信,并始终对服务器进行身份验证. 您还可以选择对用户进行身份验证. SSL协议必须建立在可靠的传输层协议(TCP)上. SSL协议的优点是它独立于应用程序层协议. 可以在SSL协议上透明地构建高级应用程序层协议(例如HTTP,FTP,TELNET等). 在应用层协议进行通信之前,SSL协议已完成加密算法,通信密钥协商和服务器身份验证. 之后,将对应用层协议传输的数据进行加密,以确保通信的私密性.
数据隐私
信息加密是通过加密算法将纯编码的输入文件转换为加密文件,以实现数据机密性. 加密过程需要密钥来加密数据然后解密. 没有密钥,加密的数据将无法解锁. 数据加密后,仅密钥以安全方式传输. 加密的数据可以公开传输.
数据完整性
加密还可以保证数据的一致性. 例如,消息验证码(MAC)可以验证用户提供的加密信息. 接收者可以使用MAC来验证加密的数据,以确保在传输过程中数据未被篡改.
安全验证
加密的另一个目的是用作个人身份. 用户的密钥可以用作其安全验证身份. SSL是一种公开密钥加密技术(RSA),用于在传输机密信息时用作客户端与服务器之间的加密通信协议.
OpenSSL包含一个命令行工具,可以执行OpenSSL库中的所有功能. 更好的是,它可能已经安装在您的系统上.
OpenSSL是一个强大的安全套接字层密码库. Apache使用它来加密HTTPS,而OpenSSH使用它来加密SSH. 但是,您不应仅将其用作库. 它也是该平台的,交叉加密工具. [1]
整个OpenSSL软件包可以大致分为三个主要功能部分: SSL协议库,应用程序和加密算法库. 自然,围绕这三个功能部分计划了OpenSSL的目录结构.
作为基于密码术的安全开发工具包,OpenSSL提供了非常强大而全面的功能,包括主要的密码算法,常用的密钥和证书包管理功能以及SSL协议,并提供了大量用于测试或其他目的.

密钥和证书管理是PKI的重要组成部分. OpenSSL为此提供了丰富的功能,并支持多种标准.
首先,OpenSSL实现ASN.1的证书和密钥相关标准,并为证书,公共密钥,私钥,证书请求和数据对象(例如CRL)提供DER,PEM和BASE64编码和解码功能. OpenSSL提供了用于生成各种公共密钥对和对称密钥的方法,函数和应用程序. 它还为公用密钥和专用密钥提供DER编码和解码功能. 并实现私钥PKCS#12和PKCS#8的编码和解码功能. OpenSSL为标准中的私钥提供了加密保护,因此可以安全地存储和分发密钥.
在此基础上,OpenSSL实施证书的X.509标准编码和解码,PKCS#12格式编码和解码以及PKCS#7编码和解码功能. 它还提供了一个文本,该支持证书管理功能,包括证书密钥生成,请求生成,证书签名,吊销和验证.
实际上openssl证书转换工具,OpenSSL提供的CA应用程序是一个小型的证书管理中心(CA),它实现了证书颁发的整个过程以及大多数证书管理机制.
OpenSSL总共提供8种对称加密算法,其中7种是块加密算法,唯一的流加密算法是R. 七个块加密算法为AESopenssl证书转换工具,DES,Blowfish,CAST,IDEA,RC2和RC5. 它们都支持电子密码本模式(ECB),加密块链接模式(CBC),加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的块密码加密模式. 其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)的数据包长度为128位,其他算法使用64位. 实际上,DES算法不仅是常用的DES算法,而且还支持3键和2键3DES算法.
OpenSSL总共实现了4种非对称加密算法,包括DH算法,RSA算法,DSA算法和椭圆曲线算法(EC). DH算法通常用于密钥交换. RSA算法可用于密钥交换和数字签名. 当然,如果可以忍受它的慢速,它也可以用于数据加密. DSA算法通常仅用于数字签名.
OpenSSL实现5种消息摘要算法,即MD2,MD5,MDC2,SHA(SHA1)和RIPEMD. SHA算法实际上包括两个信息摘要算法SHA和SHA1. 此外,OpenSSL还实现了DSS标准中指定的两种消息摘要算法DSS和DSS1.
语法格式:
openssl命令[command_opts] [command_args]
常用命令:
版本用于查看版本信息
enc用于加密和解密
密码列表密码套件

genrsa用于生成私钥
rsa RSA密钥管理(例如,从私钥中提取公钥)
要求生成证书签名请求(CSR)
Crl证书吊销列表(CRL)管理
ca CA管理(例如签署证书)
dgst生成消息摘要
rsautl用于RSA签名,验证,加密和解密功能.
passwd生成哈希密码
rand生成伪随机数
speed用于测试加密和解密的速度
s_client通用SSL / TLS客户端测试工具
X509 X.509证书管理
验证X.509证书验证

pkcs7 PKCS#7协议数据管理
(1)客户端证书密钥的构造(默认为私钥): 使用openssl的desc3加密算法创建RSA密钥,生成的des3密钥长度为1024
#genrsa -des3 -out private_test.key 1024

(2)生成证书请求,通过私钥和配置文件生成公钥,公钥的有效期为10年(3650天数)
#req -new -x509 -key private_test.key -days 3650 -out public_test.crt -config D: \ software \ openssl \ openssl \ openssl.cnf

(3)格式转换: 转换为格式编码为pkcs12的私钥
#pkcs12 -export -name epayment2017 -in public_test.crt -inkey private_test.key -out private_test.pfx

(4)从生成的商家证书中提取公钥字符串
#x509 -outform PEM -in public_test.crt -pubkey -out server.pubkey


(1)生成rsa原始私钥
#genrsa -out rsa_private_key.pem 1024
这时,我们可以在bin文件夹中看到一个名为rsa_private_key.pem的文件. 在记事本模式下打开它,您会看到----- BEGIN RSA PRIVATE KEY -----开头,----- END RSA PRIVATEKEY -----字符串的结尾,没有换行符,这是原始私钥.
(2)RSA私钥转换为PKCS8格式
# pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -ouform PEM -nocrypt
(3)生成公钥
# rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem # PKCS转换为PEM
> openssl pkcs12 -in myserver.pfx -out myserver.pem -nodes
# PEM转换为DER
> openssl x509 -outform der -in myserver.pem -out myserver.[der|crt]
# PEM提取KEY
> openssl RSA -in myserver.pem -out myserver.key
# DER转换为PEM
> openssl x509 -inform der -in myserver.[cer|crt] -out myserver.pem
# PEM转换为PKCS
> openssl pkcs12 -export -inkey myserver.key -in myserver.pem -out myserver.pfx -certfile ca.crt
> openssl pkcs12 -export -inkey www.mysite.com.key -in www.mysite.com.pem -passin pass:123456 -passout pass:123456 -out www.mysite.com.p12
# 查看KEY信息
$ openssl rsa -noout -text -in myserver.key
# 查看CSR信息
$ openssl req -noout -text -in myserver.csr
# 查看证书信息
$ openssl x509 -noout -text -in ca.pem
# 查看证书公钥对应的RSA模
$ openssl x509 -in mysite.pem -noout -modulus
# 查看证书subject项
$ openssl x509 -in mysite.pem -noout -subject -nameopt multiline
# 查看证书issuer项
$ openssl x509 -in mysite.pem -noout -issuer -nameopt multiline
# 检查证书用途
$ openssl x509 -purpose -noout -in 192.168.200.7.cer
1. Windows用户开发人员可以从OpenSSL官方网站下载Windows的OpenSSL安装软件包以进行安装. 下载路径:
2. 简单安装包的下载地址:
(1)双击bin目录中的openssl.exe可执行文件
转载
1
2
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-145695-1.html
不要大意