Linux服务器之WEB服务器-https

HTTPS=http+ssl/tls
http:明文   80
https:数据加密  443


c
1、clienthello:支持哪些版本、支持哪些加密算法,随机生成一组32字节数据random_c
3、clientkeyexchange:公钥加密数据pre_master

s
2、serverhello:确定版本、确定加密算法,随机生成一组32个字节得数据random_s
servercertificate:证书、公钥
4、data:服务端收到pre_master---私钥进行解密
最后得会话密钥:random_c+random_s+pre_master

dir = /etc/pki/CA
$dir/certs --->/etc/pki/CA/certs
database = $dir/index.txt
/etc/pki/CA/index.txt

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

前提:在DNS服务器上的正向解析数据库中添加ca.example.com的解析内容
vim /var/named/example.com.zone
ca  IN    A  172.16.30.30

systemctl restart named


在RHEL8上没有/etc/pki/CA目录  需要手动新建
mkdir  -p  /etc/pki/CA/{certs,crl,newcerts,private}
1、在主机CA上为主机CA生成私钥
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)

2、在主机CA上为主机CA生成自签名证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
国家:CN
省份:HENAN
城市:SMX
组织名称:GL
组织单位名称:NETWORK
服务器主机名:ca.example.com
邮箱:root@example.com

web证书:web端生成私钥--web端生成签署请求文件--发送CA---CA签名---CA服务器端生成web证书--web端下载web证书
3、在主机CA上为CA提供所需的目录及文件
touch /etc/pki/CA/serial
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial

4、在主机WEB上为主机WEB生成私钥,并将私钥存放在/etc/httpd/ssl目录中
mkdir /etc/httpd/ssl
(umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key)

5、在主机WEB上为web.example.com站点生成签署请求文件
openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
国家:CN
省份:HENAN
城市:SMX
组织名称:GL
组织单位名称:NETWORK
服务器主机名:web.example.com
邮箱:root@example.com

6、在主机web上将签署请求文件通过可靠方式发送给CA服务器。
scp /etc/httpd/ssl/httpd.csr  root@ca.example.com:/etc/pki/CA/


7、在主机CA上 对签署请求进行数字签名,并指明所生成的Web证书的存放路径
openssl ca -in /etc/pki/CA/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

8、在主机WEB上将CA主机上已经数字签名后的Web证书下载下来
scp root@ca.example.com:/etc/pki/CA/certs/httpd.crt /etc/httpd/ssl/

9、在主机WEB上安装apche http扩展模块mod_ssl
yum  -y install mod_ssl
修改主配置文件vim  /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

10、部署https站点
vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost 172.16.30.20:443>
    DocumentRoot "/var/www/html"
    ServerName web.example.com
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/httpd.crt
    SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
</VirtualHost>

systemctl  restart httpd

11、设置防火墙
firewall-cmd  --add-service=https  --permanent
firewall-cmd --reload

12、在客户端上去下载CA服务器上的根证书
scp  root@ca.example.com:/etc/pki/CA/cacert.pem  /root

13、打开火狐浏览器,导入证书
设置--首选项--高级--证书--查看证书--导入--找到根证书,然后双击--把“信任使用此CA标识的网站”勾上--确定--确定

14、访问https://web.example.com

集成动态web内容
1、安装httpd  mod_wsgi
yum -y install httpd  mod_wsgi

2、上传动态web内容--Python语言编写
mkdir  /var/www/wsgi
cd  /var/www/wsgi   然后将Python编写的动态web内容上传到该目录下

3、部署虚拟主机
首先将httpd.conf里面的documentroot那一行注释掉
然后将虚拟主机配置文件模板复制到/etc/httpd/conf.d/这个目录下
cp -p httpd-vhosts.conf /etc/httpd/conf.d/

vim  /etc/httpd/conf.d/httpd-vhost.conf
<VirtualHost 172.16.30.20:80>
    DocumentRoot "/var/www/wsgi"
    WSGIScriptAlias  /   "/var/www/wsgi/webapp.py"
    ServerName py.example.com
</VirtualHost>

systemctl restart httpd


4、在DNS服务器的正向解析数据库中写入py.example.com对应的解析内容
vim /var/named/example.com.zone
py  IN   A  172.16.30.20

systemctl restart named


5、在web服务器上设置防火墙
firewall-cmd --add-service=http  --permanent
firewall-cmd --reload

6、验证
访问http://py.example.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值