Linux初学者学习笔记

20170909 加密和安全(二)

2017-09-18  本文已影响59人  哈喽别样

CA和证书
安全协议(SSL/TLS)
OpenSSH

一、CA和证书

(一) PKI(Public Key Infrastructure) 公钥基础设施

(二)证书获取的方法:

二、安全协议(SSL/TLS):

(一)协议历史、功能

(二)协议工作原理

(三)OpenSSL

(四)OpenSSL实现创建CA并申请、管理证书

dir             = /etc/pki/CA          //存储目录
certs           = $dir/certs           //颁发的证书存储路径
crl_dir         = $dir/crl             //证书吊销列表存储路径
database        = $dir/index.txt       //数据库文件存储路径

new_certs_dir   = $dir/newcerts        //新证书存放路径,与证书存储路径中的内容相同,但名称不同

certificate     = $dir/cacert.pem      //CA自签发或由上级签发的证书路径,名称必须为"cacert.pem"
serial          = $dir/serial          //下一个签发证书的序号,一般从16位数字00开始
crlnumber       = $dir/crlnumber       //下一个证书吊销列表的序号,一般从16位数字00开始
                                  
crl             = $dir/crl.pem         //证书吊销列表的存放路径
private_key     = $dir/private/cakey.pem      //私钥的存放路径

countryName             = match        //国家信息必须匹配
stateOrProvinceName     = match        //州或省信息必须匹配
organizationName        = match        //域名信息必须匹配
organizationalUnitName  = optional     //部门名称
commonName              = supplied     //申请证书的主机名称
emailAddress            = optional     //邮箱

第1步:建立根CA,根CA签发自身证书(根CA上操作)
建立证书索引库文件index.txt,指定证书序列号
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial

生成私钥文件cakey.pem,存储在/etc/pki/CA/private目录下
(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem -des3 2048)

自已签发自己的证书cacert.pem,存储在/etc/pki/CA目录下,过程中设置:countryName, stateOrProvinceName, organizationName, organizationalUnitName, commonName, emailAddress等信息,前三项一定要注意,之后签发的证书信息务必要与本次设置的信息相同
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 7300

第2步,建立子CA,子CA向根CA申请证书,根CA签发证书(子CA上操作)
建立证书索引库文件index.txt,指定证书序列号
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial

生成私钥
(umak 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem -des3 2048)

生成证书申请文件
openssl req -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.csr

将证书申请文件传送给根CA,根CA签发证书并将证书传送回子CA,存储至子CA的/etc/pki/CA目录下
scp /etc/pki/CA/cacert.csr 192.168.136.230:/tmp 发送证书申请文件至根CA

openssl ca -in /tmp/cacert.csr -out /etc/pki/CA/certs/cacert.pem -days 3650
根CA签发证书(此命令在根CA上操作)

查看签发的证书内容,可以看到证书序列号按照/etc/pki/CA/serial文件中的01编号,根CA和子CA的关键信息相同(此命令在根CA上操作)

使用openssl x509 -in /etc/pki/CA/certs/cacert.pem -noout -text|issuer|suject|serial|dates命令查看证书信息,红框中可以看到时间期限确实为签发证书指定的约10年(-days 3650)(此命令在根CA上操作)

使用openssl ca -status 01命令,查看指定编号的证书状态(此命令在根CA上操作)

scp /etc/pki/CA/certs/cacert.pem 192.168.136.229:/etc/pki/CA/
发送签发的证书至子CA(此命令在根CA上操作)

第3步,申请主机向子CA发起证书签发申请,子CA签发证书(申请主机上操作)
生成密钥
(umask 066; openssl genrsa -out /etc/pki/tls/private/hello.key -des3 2048)

生成证书申请文件
openssl req -new -key /etc/pki/tls/private/hello.key -out /etc/pki/tls/hello.csr

将证书申请文件传送给子CA,子CA签发证书并将证书传送回申请主机,存储至申请主机的/etc/pki/tls目录下
scp /etc/pki/tls/hello.csr 192.168.136.229:/tmp 发送证书申请文件至子CA

openssl ca -in /tmp/hello.csr -out /etc/pki/CA/certs/hello.crt -days 730
子CA签发证书(此命令在子CA上操作)

scp /etc/pki/CA/certs/hello.crt 192.168.136.224:/etc/pki/tls/
发送签发的证书至子CA(此命令在子CA上操作)

将根CA证书、子CA证书、申请主机证书都传至windows,可以在证书页面看到清晰的证书继承关系

第4步,吊销子CA给申请主机的证书,创建证书吊销列表(子CA上操作)
环境设置:在子CA上再签发两个证书
修改/etc/pki/CA/index.txt.attr文件,内容改为"unique_subject = no",这样可以为相同证书申请签发多次证书
openssl ca -in /tmp/hello.csr -out /etc/pki/CA/certs/hello1.crt -days 300
openssl ca -in /tmp/hello.csr -out /etc/pki/CA/certs/hello2.crt -days 500

查看想要吊销证书的序列号,查看目前所有证书的状态,V表示可用状态
openssl x509 -in /etc/pki/CA/certs/hello1.crt -noout -serial -subject
openssl x509 -in /etc/pki/CA/certs/hello2.crt -noout -serial -subject
cat /etc/pki/CA/index.txt
``

吊销序列号为02和03的两个证书:
openssl ca -revoke /etc/pki/CA/newcerts/02.pem
openssl ca -revoke /etc/pki/CA/newcerts/03.pem
cat /etc/pki/CA/index.txt 查看索引数据库,发现被吊销的证书状态为R

生成证书吊销列表
echo 01 > /etc/pki/CA/crlnumber 指定首个证书吊销列表的序列号
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem 生成证书吊销列表

查看证书吊销列表内容
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text

三、OpenSSH

(一)SSH协议

(二)OpenSSH

(三)OpenSSH远程验证

(四)加密文件传输工具:scp, rsysc, sftp, pssh

(1)scp工具
(2)rsync工具
(3)sftp工具
(4)pssh工具

(五)SSH端口转发(又名“隧道”):

(1)SSH 端口转发的功能
(2)SSH本地转发
(3)SSH远程转发
(4)SSH端口转发

(六)SSH的X协议转发:

上一篇下一篇

猜你喜欢

热点阅读