证书的创建依赖加密算法,请看http://yunweigou.blog.51cto.com/6299641/1637108
前言,随着网络的发展,由于使用http协议通信的双方数据是明码格式的,故容易被其他网络主机盗取或偷换数据,无法对数据的安全提供保障。为保证数据的保密性及完整性,SSL问世
SSL:Secure Sockets Layer 安全套接字层
可理解为传输层和应用层之间的半层,对数据进行加密和解密
是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。
更多详细信息,请查看http://fr.wikipedia.org/wiki/SSL
OPENSSL:开源界SSL
libcrypto# 加密、解密所使用的库文件 libssl#ssl协议的一种实现 openssl#多用途命令行工具,每种功能都能使用专用的子命令完成
Standard commands #标准命令
asn1parse ca ciphers cms
crl crl2pkcs7 dgst dh
dhparam dsa dsaparam ec
ecparam enc engine errstr
gendh gendsa genpkey genrsa
nseq ocsp passwd pkcs12
pkcs7 pkcs8 pkey pkeyparam
pkeyutl prime rand req
rsa rsautl s_client s_server
s_time sess_id smime speed
spkac ts verify version
x509
Message Digest commands (see the `dgst' command for more details)#消息摘要命令:单向加密算法
md2 md4 md5 rmd160
sha sha1
Cipher commands (see the `enc' command for more details) #加密解密相关的命令
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
aes-256-cbc aes-256-ecb base64 bf
bf-cbc bf-cfb bf-ecb bf-ofb
camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb
camellia-256-cbc camellia-256-ecb cast cast-cbc
cast5-cbc cast5-cfb cast5-ecb cast5-ofb
des des-cbc des-cfb des-ecb
des-ede des-ede-cbc des-ede-cfb des-ede-ofb
des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx idea
idea-cbc idea-cfb idea-ecb idea-ofb
rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
rc2-cfb rc2-ecb rc2-ofb rc4
rc4-40 seed seed-cbc seed-cfb
seed-ecb seed-ofb zlib
组成部分:
[root@chanlay3 pki]# tree CA CA ├── certs 证书文件存放的位置 ├── crl 证书吊销列表存放的位置 ├── newcerts 新创建的证书的存放位置 └── private CA私钥存放
生成私钥:
括号不可省略,相当于打开子shell进程运行的
# openssl genrsa -out testkey 2048
私钥一般只为自己可读可写须改其权限
# chmod 600 testkey
可改为:
# (umask 077;openssl genrsa -out testkey 2048)
openssl enc -e -des3 -a -salt -in fstab -out fstab.des3 #对文件加密(对称加密) openssl enc -d -des3 -a -salt -in fstab.des3 -out fstab.new #对文件解密(加解密同一密钥)
例如:
生成密钥对儿操作过程:
证书目录:/etc/pki/CA
使用openssl创建私有CA:
生成私钥
私钥用于签发证书时,向证书添加数字签名使用
发起证书签署请求并自签证书
每个通信方都导入此证书至“受信任的证书颁发机构”
-new:生成新的证书签署请求
-key:私钥文件路径,用于提取公钥
-days #:证书有效期,单位为天
-out:输出文件(证书)保存位置
-x509:直接输出自签署的证书,通常只有构建CA时用
至此CA构建完成。各通信方就可向该CA请求证书了
更多详情参考/etc/pki/tls/openssl.conf文件(须新建辅助文件,如下步骤)
提供必要的辅助文件
注:这里给大家示范错误例子,签名没问题,问题在于请求者与被请求者区域不一致
从生成证书签署请求那里错误就开始了,正确如下
至此,证书签署完毕!看着界面好舒服,有没有~
将会看到辅助文件的变化,如下:
将签署好的证书发还给请求者
证书的吊销:
获得吊销证书的序列号
实现证书的吊销
openssl crl -gencrl -out THISCA.crl
openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -serial -subject
openssl ca -revoke /etc/httpd/ssl/httpd.crt
echo 01 > /etc/pki/CA/crlnum
更新证书吊销列表
吊销证书
生成吊销证书的编号
至此完毕。