SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。网景
Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
安全套接层协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性.
SSL协议具有三个特性:
数据的保密性,数据的完整性,安全验证
OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能。
密码的算法有以下几种:
1、对称加密 2、公钥加密
3、单向加密 3、认证协议
对称加密算法有DES 3DES AES(128,192,256等)blowfish twofish IDEA…… 其特点是加密解密使用同一口令;将明文分隔成固定大小的块,逐个进行加密。也具有密钥过多,传输等风险。
公钥加密:也叫非对称(密钥)加密,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。
常见算法有RSA,DSA,等。
单向加密:非可逆加密,不可解密。
Linux下的加密工具OpenSSL
OpenSSL:多用途命令工具,各功能分别使用子命令实现。libcrypto,公共加密库,libssl,SSL协
议的实现。
对称加密:
# openssl enc -des3 -a -salt -in /path/from/somefile -out /path/to/somecipherfile
enc 加密工具 -des3 加密算法 -in 输出文件 -out加密后的文件位置
单向加密
# openssl dgst [-md5|-sha1] [-out /path/to/filename] /path/from/somefile
生成随机数:openssl rand -base64|-hex num(位数)
生成密钥: # (umask 077; openssl genrsa -out /path/to/keyfile NUMBEROFBITS )
提出公钥:# openssl rsa -in /path/from/private_key_file -pubout
如何自建一个CA服务器
一、建立CA服务器
1、生成密钥
2、自签证书
req: 生成证书签署请求
-news: 新请求 -key /path/to/keyfile: 指定私钥文件 -out /path/to/somefile: 输出文件 -x509: 生成自签署证书 -days n: 有效天数
Country Name (2 letter code)[XX]:cn--------国家
State or Province Name (full name)[]:ning---------省份
Locality Name (eg, city) [DefaultCity]:ning--------------地区名字
Organization Name (eg, company)[Default Company Ltd]:ning------公司名
Organizational Unit Name (eg,section) []:ning-----部门
Common Name (eg, your name or yourserver‘s hostname) []:wukui----CA主机名
Email Address []:---------邮箱
3、初始化工作环境
二、节点申请证书
1、生成密钥对
2、生成证书签署请求
3、把签署请求文件发送给CA服务
SSL协议与CA服务器的自建