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

Centos9安装PostgreSQL centos9安装ssr_服务器

  • 备份openssl.cnf

Centos9安装PostgreSQL centos9安装ssr_apache_02

  • basicConstraints=CA:FALSE   # 把FALSE改成TRUE 把本机变成CA认证中心
cd /etc/pki/CA/private/
openssl genrsa -aes128 -out myCA.key 2048    //生成一个RSA算法 2048大小的私钥

Centos9安装PostgreSQL centos9安装ssr_apache_03

Openssl req -new -x509 -key /etc/pki/CA/private/myCA.key -out /etc/pki/CA/certs/myCA.crt -days 365     //用私钥来创建一个CA证书服务器

Centos9安装PostgreSQL centos9安装ssr_ssl_04


Centos9安装PostgreSQL centos9安装ssr_ssl_05

web服务器

yum instal -y httpd		//安装apache

Centos9安装PostgreSQL centos9安装ssr_https_06

systemctl start httpd.service		//启动apache
 systemctl enable httpd.service     //自启

Centos9安装PostgreSQL centos9安装ssr_服务器_07

firewall-cmd --add-service=http --zone=public --permanent
 firewall-cmd --add-service=https --zone=public --permanent
 firewall-cmd –reload

Centos9安装PostgreSQL centos9安装ssr_https_08

yum install -y mod_ssl      // 安装ssl模块  生成(/etc/httpd/conf.d/ssl.conf)

Centos9安装PostgreSQL centos9安装ssr_Centos9安装PostgreSQL_09


Centos9安装PostgreSQL centos9安装ssr_apache_10

web1生成私钥和CSR

openssl genrsa -out /etc/pki/tls/private/web.key 1024

Centos9安装PostgreSQL centos9安装ssr_服务器_11

openssl req -new -key /etc/pki/tls/private/web.key -out /etc/pki/CA/web.csr
生成证书

Centos9安装PostgreSQL centos9安装ssr_服务器_12

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

Centos9安装PostgreSQL centos9安装ssr_服务器_13


生成一个crt的web证书scp到web服务器

scp到web服务器上

Centos9安装PostgreSQL centos9安装ssr_服务器_14

Centos9安装PostgreSQL centos9安装ssr_apache_15

Centos9安装PostgreSQL centos9安装ssr_apache_16

回到ssl.conf配置证书和密钥
SSLCertificateFile web.crt
SSLCertificateKeyFile web.key

Centos9安装PostgreSQL centos9安装ssr_Centos9安装PostgreSQL_17

Centos9安装PostgreSQL centos9安装ssr_服务器_18


80端口

Centos9安装PostgreSQL centos9安装ssr_https_19

采用https时浏览器会警报(因为时我们自己发的证书,丝毫不影响我们安全传输)

Centos9安装PostgreSQL centos9安装ssr_Centos9安装PostgreSQL_20

Centos9安装PostgreSQL centos9安装ssr_https_21

安装证书即可正常访问

Centos9安装PostgreSQL centos9安装ssr_ssl_22