您的位置:首页 > 运维架构 > Linux

14 Linux之openssl工具创建私有CA

2015-05-01 23:23 369 查看
证书的创建依赖加密算法,请看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文件(须新建辅助文件,如下步骤)
提供必要的辅助文件




向节点发证书
验证请求者信息

直接签署证书

生成私钥:

生成证书签署请求




把请求crt文件通过某方式发送给CA

节点发起证书申请

CA签发证书



注:这里给大家示范错误例子,签名没问题,问题在于请求者与被请求者区域不一致
从生成证书签署请求那里错误就开始了,正确如下







至此,证书签署完毕!看着界面好舒服,有没有~将会看到辅助文件的变化,如下:



将签署好的证书发还给请求者

证书的吊销:
获得吊销证书的序列号

实现证书的吊销

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

更新证书吊销列表

吊销证书

生成吊销证书的编号

至此完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux openssl 私有ca