Debian 10.x自签发CA证书与Apache建立HTTPS安全连接网站

环境概述

  • Debian 10.x
  • 安装apache服务
  • Client可供管理员使用,有三台服务器Rserver,Server01,Server04
  • Client:10.10.100.x(DHCP获取)
  • Rserver: CA签发方
  • Rserver
  • Server01:172.16.100.201 (CA使用方)
  • Server04:192.168.10.4 (CA使用方)

需求概述

 由Server01,04提供www.sdskills.com
 skills公司的门户网站;
 使用apache服务;
 网页文件放在/data/share/htdocs/skills;
 服务以用户webuser运行;
 首页内容为“This is the front page of sdskills’s website.”;
 网站使用https协议;
 SSL使用RServer颁发的证书, 颁发给:
C = org
ST = China
L = ShangDong
O = skills
OU = Operations Departments
org = *.skills.com
 Sever01,04的CA证书路径:/CA/cacert.pem
 签发数字证书,颁发者:
C = org;
O = Inc
OU = www.skills.com
org = shill Global Root CA
 客户端访问https时应无浏览器(含终端)安全警告信息;
 当用户使用http访问时自动跳转到https安全连接;
 当用户使用sdskills.com或any.sdskills.com(any代表任意网址前缀)访问时,自动跳转到www.sdskills.com。

实现流程

在这里插入图片描述

实施步骤

PS:IP地址跟环境概述略有不同,请随机应变

安装Apache:

apt install -y apache2

安装bind9 :

apt install -y bind9

配置dns

创建区域文件

nano /etc/bind/name.conf

zone “sdskills.com”{
	type master;
	file “/etc/bind/db.sdskills.com”;
};
zone “100.16.172.in-addr-arpa”{
	type master;
	file “/etc/bind/db.100.16.172”;
};

创建正反向解析文件
首先复制模板 正向模板:db.local 反向模板 db.127

cp -p db.local db.sdskills.com
cp -p db.127 db.100.16.172

nano /etc/bind/db.sdsills.com

在这里插入图片描述

nano /etc/bind/db.100.16.172

在这里插入图片描述
配置dns转发 nano /etc/bind/named.conf.options
在这里插入图片描述
修改主机dns nano /etc/resolv.conf
在这里插入图片描述
重启服务:

 systemctl restart bind9

测试:

apt install -y dnsu* 		
nslookup sdskills.com 	
nslookup 172.16.100.201

在这里插入图片描述
在这里插入图片描述
CA服务端:

apt install openssl

测试:openssl
修改CA证书路径:nano /etc/ssl/openssl.conf
在这里插入图片描述
创建CA目录 mkdir /CA
复制配置模板 cp -rf /etc/ssl/* /CA
进/CA目录创建索引 touch index.txt

echo 01 > serial

生成根密钥

openssl genrsa -out private/cakey.pem 2048   //生成一个2048位根密钥,放在/CA/private目录下

生成根证书

openssl req -new -x509 -key ./private/cakey.pem -out cacert.pem //利用根密钥生成一个根证书(不要放在private目录,此目录专门存放私钥)

在这里插入图片描述
查看证书

 openssl x509 -in cacert.pem -text -noout

web服务器端
生成私钥

openssl genrsa -out server01.key 2048

生成证书请求

openssl req -new -key server01.key -out server01.csr

传送请求到CA服务端 scp -P {对方ssh服务端端口号} server01.csr {对方服务器IP}:/CA
注意:传输过程中两边文件夹权限要一致!

CA服务器端

生成证书
openssl x509 -req -in server01.csr -CA /CA/cacert.pem -CAkey /CA/private/cakey.pem -CAcreateserial -out server01.crt -days 365
在这里插入图片描述传输证书 scp
在这里插入图片描述
web服务器端
创建web站点文件: mkdir /data/share/htdocs/skills
创建web页面:

echo “This is the front page of sdskills's website.” > /data/share/htdocs/skills/index.html
echo “Staff Information.” > /data/share/htdocs/skills/staff.html

注意:对文件创建相应权限!
修改apache2主配置文件

nano /etc/apache2/apache2.conf

在这里插入图片描述
在这里插入图片描述
修改apache2自带ssl配置文件 nano /etc/apache2/site-available/default-ssl-conf
在这里插入图片描述注意:暂时先不写servername 本机测试成功后再写

在这里插入图片描述
添加文件映射

ln /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/ssl-default.conf

激活ssl站点模块a2enmod ssl

重启服务 systemctl restart apache2
在浏览器输入域名或IP访问
在这里插入图片描述
配置虚拟主机文件 nano /etc/apache2/sites-enabled/000-default.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启apache2 systemctl restart apache2
web站点根目录创建.htaccess 并编写如下内容,开启https重定向
在站点虚拟主机配置文件000-default.conf 添加如下内容

RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://www.skills.com

开启https重定向 注意:最好也在.htaccess文件也添加

在这里插入图片描述
web站点根目录创建.htaccess 并编写如下内容,开启{any}.sdskills.com自动跳转到www.sdskills.com

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

在这里插入图片描述
修改apache.conf
在这里插入图片描述
在这里插入图片描述
启动rewrite模块 a2enmod rewrite
再启动ssl模块 a2enmod ssl
重启服务 systemctl restart apache2

创建webuser用户 使该用户运行apache2

useradd -G www-data webuser

修改apache2.conf配置文件 nano /etc/apache2/apache2.conf
在这里插入图片描述
注释前两行 添加后两行
重启服务
top查看
在这里插入图片描述

cp -p cacert.pem /usr/local/share/ca-certificates/cacert.crt #以crt方式添加到证书信
任列表
update-ca-certificates #更新证书列表

火狐导入pem证书文件到根证书颁发机构
在这里插入图片描述
在这里插入图片描述

视频教程:https://www.bilibili.com/video/BV1pg41177Ev?share_source=copy_web

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值