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

Openssl建立CA,在组织内部基于ca的认证

2015-07-18 22:28 357 查看

Openssl建立CA,在组织内部基于ca的认证

1.给自己生成一对密钥

2.自签署证书

节点:1.生成密钥对 2.申城证书签署请求 3.把请求发送给CA
CA: 1.验证请求者信息 2.签署证书

一、建立CA服务器
/etc/pki/CA/private用于存放CA的私钥
1.(umask 077;openssl genrsa -out /etc/pki/private/cakey.pem 2048) 生成密钥
2.req -x509 自签署证书,常用于CA自己签署自己的证书
req -days # 有效天数

req -news 新请求

req -key /path/file 指定私钥文件
openssl -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655 ###最后文件最好保持一致,不然要修改配置文件;然后填写详细信息(可以改配置文件,修改默认配置)
生成的这个证书要给每个节点发一份

3.初始化工作环境:

#touch /etc/pik/CA{index.txt,serial}

#echo 001> /etc/pki/CA/serial

二、节点申请证书
A。节点要生成请求

生成密钥对,同上第一步中
生成证书签署请求
把签署的请求文件发给CA服务器
#scp httpd.csr 1.1.1.1:/etc/pki/CA/csr 要输入1.1.1.1的密码 然后到服务器上 openssl ca -in /etc/httpd/ssl/csr/httpd.csr -out /etc/httpd/ssl/httpd.crt -days 1000
#scp httpd.crt 2.2.2.2:/crt ca服务器发回证书给请求者
B。CA要签署证书

1.验证证书中的信息

2.签署证书 openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/httpd.crt -days 1000 然后验证y 并提示database updated 数据库已更新,签署后可以删除请求文件或者换个位置保存

3.发送给请求者

三、吊销证书
A。节点请求吊销证书,要告诉CA服务器自己的序号是多少

1.获取证书seral #openssl x509 -in /path/*.crt -noout -serial -subject
2.CA服务器验证节点提交信息查看是否一致

3.CA服务器吊销证书: ## openssl ca -revoke /etc/pki/CA/newcerts/序号.pem
4.生成证书吊销列表 #第一次吊销 echo 00 >/etc/pki/CA/crlnumber
5.跟新吊销列表文件 #cd /etc/pki/CA/crl
#openssl ca -gencrl -out /etc/pki/CA/crt/ca.crl -noout -text ####查看吊销证书 openssl crl -in /etc/pki/CA/crl/ca.crl

附:基础知识

OpenSSL:一种开源的,用于保证数据传输安全的一种实现方式
NIST:CIA

保密性:数据保密性,隐私性 C

完整性:数据完整性,系统完整性 I

可用性: A

真实性,可追溯性

OSI: x.800

安全攻击
主动攻击:伪装,重播,消息修改,拒绝服务

被动攻击:窃听

安全机制
加密,解密;数字签名;访问控制;数据完整性;认证交换;流量填充;路由控制;公证
安全服务
认证
访问控制:阻止非授权访问
数据保密性:连接保密性,无连接保密性,选择域保密性,流量保密性

数据完整性
不可否认性

密码算法和协议:
对称加密:加密和解密方使用同一密码
非对称加密:公钥 私钥 不通 ----加密速度慢;公钥是从私钥生成的
单项加密:(数据完整性加密)
认证协议:通信双方的身份验证
明文:clear text plain text
密钥
密文
加解密算法

对称加密:DES、3DES、AES(密钥长度远大于DES)、Blowfish、Twofish、IDEA、RC6、CAST5
加密解密使用统一口令;将明文分割成固定大小的块
对称加密缺点:密钥过多;密钥传输;密钥交换

公钥加密:非对称加密
密钥:public key、secret key

p/s public/secret

公钥主要用于:身份认证 并不能保证数据的安全性,仅仅是完成身份认证

单项加密:定长输出,雪崩效应,(md5,SHA1) a发给b({数据指纹(用a的私钥加密)及源数据}大括号内的数据用a生成的密钥进行加密,加密算法是对称加密,假设密码为secret;然后把secret密码用b的公钥进行加密后生成数据CCC)即CCC{用a私钥加密的数据指纹及源数据},b使用自己的私钥解密CCC得到对称加密的密钥secret,然后使用对称加密算法解密(密钥secret)数据和数据指纹(数据指纹用a的公钥解密),然后用生成指纹工具生成指纹和a发来的指纹对照 然后判断

PKI:公钥基础设施 Public key infrastructure
签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库:

常用加密算法:RSA DSA EIGamal
IKE 密钥交换

ITU-T: x.509 证书标准,证书结构和认证协议的标准

SSL Netscape公司发明的;secure socket Layer
ssl v1 v2 v3
TLS:transport Layer Security
TLSv1

gpg; openssl linux下的两种工具
rpm -ql openssl

openssl:多用途工具
libcrypto:公用加密库
libssl:ssl协议的实现

[root@comk ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

OpenSSL> help
openssl:Error: 'help' is an invalid command.

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

对称加密:
工具:gpg,openssl enc

openssl enc -e -des3 -a -salt -in messages -out messages.cipher 加密一个文件

openssl enc -d -des3 -a -salt -in messages.cipher -out messages 输入加密时的命令

单项机密:
工具:md5sum,sha1sum,openssl dgst,chsum
#openssl dgst -md5/-sha1 -out /path/to/filename /path/from/sourchfile

[root@comk tmp]# md5sum nmap.sh
45891ce6197042d633818ebc995c6b7a nmap.sh
[root@comk tmp]# openssl dgst -md5 nmap.sh
MD5(nmap.sh)= 45891ce6197042d633818ebc995c6b7a
MAC:消息摘要码,单向加密的一种延伸类应用
用于实现网络数据传输中保证数据完整性

机制:CBC-MAC

HMAC:使用的是md5或者sha1的算法

集群时传送消息时会用到,保证集群中主机的合法性
用户密码:
openssl passwd 命令 whatis passwd;man sslpasswd才能看到解释

openssl passwd -1 -salt 13589

[root@comk ~]# openssl passwd -1 -salt 880114Password: $1$880114$4qPBmNPziDG0Hss.fr3v31 两个$中间即880114 salt值
生成随机数:openssl rand -base64 4 或者openssl rand -hex 4 生成8位随机数
openssl passwd -1 -salt `openssl rand -hex 4` 用命令生成随机数

公钥加密:
算法:RSA,EIGamal

工具:gpg,openssl rsautl
数字签名:RSA EIGamal DSA
DSA:digital Gignature Algorithm 只能用于签名不能用于加密

DSS 数字签名标准

密钥交换:IKE
算法:公钥加密 DH

IKE:

DH:Diffie-hellman 地狱男爵

生成密钥对:gen??? whatis genrsa
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
openssl genrsa 2048 >mykey 默认644 修改为600权限

openssl genrsa 2048 -out /tmp/mykey

(umask 077;openssl genrsa 2048 -out /tmp/mykey) 一条命令获得上面红色的效果

提出公钥:

openssl rsa -in /tmp/mykey -pubout

x.509证书,持有者,公钥,,使用期限

B和a通信,则b向a要证书,避免都向CA要证书,使CA称为性能瓶颈
rpm -ql openssl 查看安装信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息