2019年12月16日 星期一 CQCEE
使用ssl来保证web通信安全
apache服务器与客户机采用明文通信
对HTTP传输加密的协议为HTTPS,是通过ssl进行http传输的协议,它通过公用密钥CA证书进行加密,保证传输的安全性。
x509证书一般会用到三类文,key,csr,crt
Key是私用密钥openssl格,通常是rsa算法
Csr是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。
crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。
实验环境:
CA服务器 web服务器 客户机(本机)
CA服务器 | web服务器 |
---|---|
centos7搭建ca服务 | centos7搭建apache服务 |
Ca服务器:
yum install -y openssl openssl-devel
- 备份openssl.cnf
- basicConstraints=CA:FALSE # 把FALSE改成TRUE 把本机变成CA认证中心
cd /etc/pki/CA/private/
openssl genrsa -aes128 -out myCA.key 2048 //生成一个RSA算法 2048大小的私钥
Openssl req -new -x509 -key /etc/pki/CA/private/myCA.key -out /etc/pki/CA/certs/myCA.crt -days 365 //用私钥来创建一个CA证书服务器
web服务器
yum instal -y httpd //安装apache
systemctl start httpd.service //启动apache
systemctl enable httpd.service //自启
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd –reload
yum install -y mod_ssl // 安装ssl模块 生成(/etc/httpd/conf.d/ssl.conf)
web1生成私钥和CSR
openssl genrsa -out /etc/pki/tls/private/web.key 1024
openssl req -new -key /etc/pki/tls/private/web.key -out /etc/pki/CA/web.csr
生成证书
scp web.csr root@ip:~/web.csr //scp到ca服务器上准备数字加密
CA服务器数字加密
ca服务器执行数字签名
openssl x509 -req -in web.csr \
-CA /etc/pki/CA/certs/myCA.crt \
-CAkey /etc/pki/CA/private/myCA.key \
-CAcreateserial \
-out web.crt \
-days 365
生成一个crt的web证书scp到web服务器
scp到web服务器上
回到ssl.conf配置证书和密钥
SSLCertificateFile web.crt
SSLCertificateKeyFile web.key
80端口
采用https时浏览器会警报(因为时我们自己发的证书,丝毫不影响我们安全传输)
安装证书即可正常访问