HTTPS+CA+ssl/tls

https的加密流程

客服端
1、clienthello:支持哪些版本、支持哪些加密算法,随机生成一组32字节数据random_c
3、clientkeyexchange:公钥加密数据pre_master
服务器
2、serverhello:确定版本、确定加密算法,随机生成一组32个字节得数据random_s
servercertificate:证书、公钥
4、data:服务端收到pre_master—私钥进行解密

最后得会话密钥:random_c+random_s+pre_master

openssl: 命令的选项

-x509 :生成自签名证书格式,专用于创建私有CA
-new :生成新证书的签署请求
-key :生成请求时用到的私钥文件路径
-out :生成后的文件存放路径,如果是自签名操作,将直接生成签署过的证书
-days :证书有效期 默认是365天

在DNS服务器上添加内容

vim /var/named/cy.com(正向解析中添加)
admins  IN    A  172.16.30.3
如果没有部署DNS服务器的,就把主机的/etc/hosts记录修改一下

设置时钟同步

第一台
[root@web ]# yum -y install chrony
[root@web ]# systemctl restart chronyd
[root@web ]# systemctl enable chronyd
[root@web ]# hwclock -w


第二台
[root@admins ]# yum -y install chrony
[root@admins ]# systemctl restart chronyd
[root@admins ]# systemctl enable chronyd
[root@admins ]# hwclock -w

搭建CA

(1)创建文件和目录

//配置文件的位置
[root@admins tls]# vim /etc/pki/tls/openssl.cnf 

[ CA_default ]
dir             = /etc/pki/CA           //CA的工作目录
certs           = $dir/certs           //证书位置     
crl_dir         = $dir/crl             //crl的工作目录
database        = $dir/index.txt  	   //数据库的文件位置
new_certs_dir   = $dir/newcerts 
certificate     = $dir/cacert.pem      //证书位置
serial          = $dir/serial          //序列号位置   
crlnumber       = $dir/crlnumber       
crl             = $dir/crl.pem         
private_key     = $dir/private/cakey.pem  //存放私钥的位置 

$调用变量

    
///etc/pki/CA 下创建CA、 certs、 crl、newcerts、private目录和index.txt、serial 文件 
[root@admins pki]# mkdir CA
[root@admins CA]# mkdir certs
[root@admins CA]# mkdir crl
[root@admins CA]# touch index.txt
[root@admins CA]# mkdir newcerts 
[root@admins CA]# touch serial
[root@admins CA]# mkdir private  //存放私钥二级目录
[root@admins CA]# ls
certs  crl  index.txt  newcerts  private  serial


(2)生成私钥

// 生成私钥、并设置私钥的权限为700
[root@admins CA]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)  

(3)生成自签名的证书

[root@admins CA]# openssl req -new -x509  -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365

Country Name (2 letter code) [XX]:CN               //国家名称
State or Province Name (full name) []:HUBEI  	  //省份名称
Locality Name (eg, city) [Default City]:WUHANG   //地区或者城市名称
Organization Name (eg, company) [Default Company Ltd]:HYZY  //组织名称 
Organizational Unit Name (eg, section) []:SRE  //组织单元名称
Common Name (eg, your name or your server's hostname) []: AAA //通用名称(服务器、自己的名字、完全合格域名、、、)
Email Address []:root.example.com  //邮箱

[root@admins CA]# echo 01 > serial //定义一个序列号

(4)web服务器的证书(签名之后的证书)

1、生成私钥和证书

/etc/httpd/下创建ssl目录,如果有不需要创建
[root@web ]# cd /etc/httpd/
[root@web httpd]# mkdir ssl

//生成私钥
[root@web ssl]# (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key)
//生成证书
[root@web ssl]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

Country Name (2 letter code) [XX]:CN  //和全面保持一致
State or Province Name (full name) []:HUBEI  //和全面保持一致
Locality Name (eg, city) [Default City]:WUHANG  //和全面保持一致
Organization Name (eg, company) [Default Company Ltd]:HYZY  //和全面保持一致
Organizational Unit Name (eg, section) []:SRE  //和全面保持一致
Common Name (eg, your name or your server's hostname) []:web.example.com  //web 服务器的名字
Email Address []:root.example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: //回车
An optional company name []:  //回车


2、发送到admins服务器中进行签名

[root@admins CA]# vim /etc/NetworkManager/system-connections/ens160.nmconnection 
[ethernet]

[ipv4]
address1=192.168.100.20/24,192.168.100.254
dns=192.168.100.10;  //改为服务器的IP地址
method=manual

[root@admins CA]# systemctl restart NetworkManager
[root@admins CA]# nmcli connection up ens160 

//将证书传输过去
[root@web ssl]# scp httpd.csr root@192.168.100.20:/etc/pki/CA/  
//给证书签名
[root@admins CA]# openssl ca -in /etc/pki/CA/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

//下载签名证书
[root@web ssl]# scp root@192.168.100.20:/etc/pki/CA/certs/httpd.crt . 

3、搭建https网站

安装软件包:
[root@web ssl]# yum -y install mod_ssl
[root@web ssl]# yum -y install httpd
修改配置文件
[root@web ssl]# vim /etc/httpd/conf.d/ssl.conf
Listen 443 https
SSLCertificateFile /etc/httpd/ssl/httpd.crt    //证书位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key //私钥位置

4、搭建https网页

//  虚拟主机位置
[root@web ~]# cd  /etc/httpd/
[root@web httpd]# ls
conf  conf.d  conf.modules.d  logs  modules  run  state
[root@web httpd]# 

//  虚拟主机配置模板
[root@web conf.d]# find  /  -name "*httpd*host*"
/usr/share/doc/httpd-core/httpd-vhosts.conf
网络页设置
<VirtualHost 192.168.100.10:443>
    DocumentRoot "/var/www/html"
    ServerName web.example.com
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/httpd.crt
    SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
</VirtualHost>

[root@web conf.d]# systemctl restart httpd
[root@web conf.d]# systemctl enable httpd

制作网页
[root@web html]# pwd
/var/www/html
[root@web html]# cat index.html 
welcome to  wuhang

5、客服端设置(可以用centOS7系统)

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
打开centOS7 配置IP设置DNS为服务器的ip
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.30
PREFIX=24
GATEWAY=192.168.100.254
DNS1=192.168.100.10
IPV6_PRIVACY=no
[root@localhost network-scripts]# systemctl restart network

下载证书
[root@localhost ~]# scp root@192.168.100.20:/etcpki/CA/cacert.pem .

在火狐浏览器----->选择设置(Preferences)----->选择安全与隐(Privacy$Security)
----->选择证书(Certificates)----->选择查看证书(View certificate)
----->选择证书(Authorities)----->选择导入(import----->选择下载的证书

结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值