数字证书授权中心
CA,Certificate Authority
--被通信双方信任的、独立的第三方机构
--负责证书颁发、验证、撤销等管理

国内常见的CA机构
--中国金融认证中心(CFCA)
--中国电信安全认证中心(CTCA)
--北京数字证书认证中心(BJCA)

PKI公钥基础设施
Public Key Infrastructure
--一套标准的密钥管理平台
--通过公钥加密、数字证书技术确保信息安全

PKI体系的基本组成
--权威认证机构(CA)
--数字证书库、密钥备份及恢复系统
--证书作废系统、应用接口
#####################################################################
OpenSSL加密工具

实现SSL/TLS协议及各种加密应用

对称加密
-enc算法 -e -in 输入文件 -out 输出文件
-enc算法 -d -in 输入文件 -out 输出文件

验证口# vim f1.txt
aaaaaaaa
bbbbbbbbbbbb
ccccccccc
将f1.txt加密为f1.txt.enc

openssl enc -des3 -e -in f1.txt -out f1.txt.enc

设置口令

rm -rf f1.txt

openssl en将f1.txt.enc解密为f1.txt令c -des3 -d -in f1.txt.enc -out f1.txt

###################################################################

一、企业自有CA的建立

  1. 配置CA签署环境 192.168.4.17
    [root@pli ~]# cd /etc/pki/CA/
    [root@pli ~]# vim /etc/pki/tls/openssl.cnf
    [CA_default]
    dir = /etc/pki/CA //CA签署工作目录
    certs = $dir/certs //用户证书存放路径
    certificate = $dir/my-ca.crt //CA根证书文件
    private_key = $dir/private/my-ca.key //CA私钥文件
    ... ...
    [ req_distinguished_name ]
    countryName_default = CN
    stateOrProvinceName_default = xian
    localityName_default = xian
    0.organizationName_default = tarena

[root@pli CA]# ls
certs crl newcerts private
[root@pli CA]# touch index.txt
[root@pli CA]# chmod 600 index.txt 让管理员有读写权限
[root@pli CA]# echo 01 > serial 证书编号从。。。开始
[root@pli CA]# cat serial
01
[root@pli CA]# ls
certs crl index.txt newcerts private serial

  1. 为CA服务器生成私钥
    [root@pli CA]# cd private/
    [root@pli private]# pwd
    /etc/pki/CA/private
    [root@pli private]# openssl genrsa -des3 2048 > my-ca.key
    Generating RSA private key, 2048 bit long modulus
    ....................+++
    ...........+++
    e is 65537 (0x10001)
    Enter pass phrase: 设私钥口令
    Verifying - Enter pass phrase: 重复私钥口令
    [root@pli private]# ls
    my-ca.key
    [root@pli private]# chmod 600 my-ca.key
    [root@pli private]# ls -l my-ca.key
    -rw-------. 1 root root 1751 1月 4 04:37 my-ca.key

  2. 为CA服务器创建根证书
    [root@plj private]# openssl req -new -x509 -key my-ca.key -days 365 > ../my-ca.crt
    验证私钥口令

4.发布根证书文件
安装httpd
关闭防火墙,设定selinux
[root@pli CA]# ls
my-ca.crt
[root@pli CA]# mkdir /var/www/html/ca
[root@pli CA]# cp my-ca.crt /var/www/html/ca/
[root@ca CA]# systemctl start httpd
可通过访问192.168.4.17/ca下载证书

##################################################################

二、邮件TLS/SSL 192.168.4.18

邮件服务器的配置:192.168.4.18 mail.tedu.cn
1 systemctl start postfix 25 smtp
2 systemctl start dovecot 110 pop3 143 imap
995 pop3s 993 imaps
3 创建私钥文件
4 创建证书请求文件
5 上传证书请求文件给CA服务器
6 配置服务运行时调用私钥文件 数字证书文件
6.1 配置发邮件服务
6.2 配置收邮件服务
7 客户端在软件里设置连接邮件服务器时 是否加密协议

CA服务器的配置:192.168.4.17 plj.ca.com
1 审核证书请求文件 并签发数字证书:
2 下发数字证书文件给邮件服务器

[root@mail ~]# cd /etc/pki/tls/private/
[root@mail private]# openssl genrsa 2048 > mail.key //创建私钥
[root@mail private]# openssl req -new -key mail.key > ~/mail.csr //csr证书请求文件
国家/省/公司名必须与根证书保持一致
[root@mail private]# cat ~/mail.csr
[root@mail private]# scp ~/mail.csr 192.168.4.17:/tmp/
[root@plj]# ls /tmp
mail.csr
[root@plj]# cd /etc/pki/CA/certs/
[root@plj certs]# openssl ca -in /tmp/mail.csr > mail.crt
验证私钥口令
y
y
Write out database with 1 new entries
Data Base Updated
[root@plj certs]# ls
mail.crt
[root@plj certs]# scp mail.crt 192.168.4.18:/root/ 下发数字证书
[root@mail ~]# ls
mail.crt
[root@mail ~]# vim /etc/dovecot/conf.d/10-ssl.conf //配置收邮件服务,修改配置文件的14行和15行
14 ssl_cert = 15 ssl_key = [root@mail ~]# cp /etc/pki/tls/private/mail.key /etc/pki/dovecot/private/
[root@mail ~]# cp /root/mail.crt /etc/pki/dovecot/certs/
[root@mail ~]# systemctl restart dovecot
[root@mail ~]# vim /etc/postfix/main.cf 调整postfix发信服务
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/tls/private/mail.key
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt
[root@mail ~]# cp /root/mail.crt /etc/pki/tls/certs/
[root@mail ~]# ls /etc/pki/tls/private/
mail.key
[root@mail ~]# ls /etc/pki/tls/certs/
ca-bundle.crt mail.crt Makefile
ca-bundle.trust.crt make-dummy-cert renew-dummy-cert
[root@mail ~]# systemctl restart postfix

################################################################
三、http_ssl(https) 192.168.4.19
1 运行网站服务 并编写网页文件test.html
2 netstat -ntplua |grep
3 创建私钥文件
4 创建证书请求文件
5 上传证书请求文件给CA服务器
6 配置服务运行时调用私钥文件 数字证书文件

CA服务器的配置:192.168.4.17 plj.ca.com
1 审核证书请求文件 并签发数字证书:
2 下发数字证书文件给邮件服务器

[root@www ~]# yum -y install httpd
[root@www ~]# echo "192.168.4.19 www.tarena.com" >> /etc/hosts
[root@www ~]# echo www.tarena.com > /var/www/html/test.html
[root@www ~]# systemctl restart httpd
可正常访问www.tarena.com/test.html
[root@www ~]# cd /etc/pki/tls/private/
[root@www private]# openssl genrsa 2048 > web.key
[root@www private]# ls
web.key
[root@www private]# cat web.key
[root@www private]# openssl req -new -key web.key > /root/web.csr
[root@www private]# ls /root
web.csr
[root@www private]# cat /root/web.csr
[root@www private]# scp /root/web.csr 192.168.4.17:/root/
[root@plj certs]# pwd
/etc/pki/CA/certs
[root@plj certs]# openssl ca -in /root/web.csr > web.crt
[root@plj certs]# ls
web.crt
[root@plj certs]# cat web.crt
[root@plj certs]# scp web.crt 192.168.4.19:/tmp/
[root@www private]# yum -y install mod_ssl
[root@www private]# vim /etc/httpd/conf.d/ssl.conf
100 SSLCertificateFile /etc/pki/tls/certs/web.crt
107 SSLCertificateKeyFile /etc/pki/tls/private/web.key
[root@www private]# cp /tmp/web.crt /etc/pki/tls/certs/
https://www.tarena.com/test.html

客户端访问网站服务器
1 下载根证书并安装
2 vim /etc/hosts
192.168.4.19 www.tarena.com
3 访问网页
80 http://www.tarena.com/test.html
443 http://www.tarena.com/test.html
4 配置网站服务器把接受到的访问80端口请求 转给本机的443端口
4.1 修改主配置文件 做地址重写
vim /etc/httpd/conf/httpd.conf //最后添加7行

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

RewriteEngine on
RewriteEngine %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]

4.2 重启httpd服务
systemctl restart httpd

4.3 验证,客户端访问
echo www.9527.com > /var/www/html/test3.html
systemctl restart httpd
访问 http://www.tarena.com/test3.html
自动跳转 https://www.tarena.com/test3.html