环境概述

  • Debian 10.x
  • 安装apache服务
  • Client可供管理员使用,有三台服务器Rserver,Server01,Server04
  • Client:10.10.100.x(DHCP获取)
  • Rserver: CA签发方
  • 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

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

  1. 使用自签发CA证书为EMQX开启双向认证

    文章目录 背景信息 1.CA证书信任模型 2.创建证书 2.1 Root CA 证书创建 2.2 emqx 服务端证书签发 2.3 中间CA证书签发 2.4 设备证书签发 3.配置EMQX服务端证书 ...

  2. Octavia 的 HTTPS 与自建、签发 CA 证书

    目录 文章目录 目录 Octavia 为什么需要自建 CA 证书? GenerateServerPEMTask CertComputeCreate Amphora Agent AmphoraAPICl ...

  3. 浏览器获取服务器CA证书与认证流程-HTTPS

    证书的签发过程 服务方 S 向第三方机构CA提交公钥.组织信息.个人信息(域名)等信息并申请认证: CA 通过线上.线下等多种手段验证申请者提供信息的真实性,如组织是否存在.企业是否合法,是否拥有域名 ...

  4. ROOT证书、CA证书和使用CA签发的X.509证书

    简介 日常开发中,我们程序员不怎么会接触证书相关的问题,对信息安全领域相关的内容知之甚少.因为平时主要实现的业务很少要直接面向底层的通信,也就很少关注这证书这样的知识.在一般情况下,我们仅仅只是在使用 ...

  5. rhel6.3下使用openssl来生成CA证书并颁发证书实例解析

    一.配置OPENSSL [root@test1 /]# rpm -qa|grep openssl openssl-1.0.0-20.el6_2.5.i686 [root@test1 /]# cd /e ...

  6. rhel6.3下使用openssl来生成CA证书并颁发证书实例解

    •     一.配置OPENSSL [root@test1 /]#rpm -qa|grep openssl openssl-1.0.0-20.el6_2.5.i686 [root@test1 /]# ...

  7. fiddler证书生成ca证书命令及抓包配置

    fiddler证书生成ca证书命令 下载OpenSSL fiddler配置https fiddler导出证书 将文件直接放到openssl的bin目录下 执行cmd命令生成ca证书 将证书放到andr ...

  8. vCenter Server CA证书下载

    CA 证书下载地址 : https://vcenter.domain.com/certs/download.zip 参见

  9. 获取安卓系统自带CA证书

    以下代码是获取安卓系统自带CA证书,可以用于Https通信 //将目标证书序列号转为BigInteger,方便判断val serialNumber: BigInteger = BigInteger(& ...

最新文章

  1. vim编辑器----常用命令
  2. Recover it!
  3. 单列集合Set的实现类HashSet
  4. python基础for循环和while循环(十)
  5. windows和Linux下西部数据C1门解决方法
  6. WIN2008R2 激活
  7. 文件上传2-搭建uploads靶场
  8. 树莓派外接扩展板的的测试
  9. 拉伯证券|社会消费复苏将是2023年主旋律
  10. 科研日志--python大文件打开内存溢出
  11. 常用英语口语1000句
  12. 北纬三十度“神命谷”旅游策划方案
  13. CANFiber是什么?
  14. Pr安装完BCC插件后出现“找不到引入口”的窗口,从而使用不了Pr怎么办------如何卸载BCC,重新启用P
  15. [R]提高R语言速度
  16. Python 批量翻译图片 附详细代码
  17. javascript原生—悬浮导航栏
  18. jGestures: jQuery的手势事件插件
  19. 个人常用提高办公效率软件
  20. 关于博客转型de说明

热门文章

  1. 组合电路传播延时计算,Logical effort, electrical effort, gate effort 定义以及计算
  2. 悼念 Aaron Swartz
  3. WinAPI透明窗体SetLayeredWindowAttributes(转载)
  4. 计算Jaccard相似性
  5. vue 数组对象提取_vue中使用对象数组的最佳实践
  6. linux和unix区别
  7. RT-Thread 动态内存管理(学习笔记)
  8. 曙光i840服务器用户手册,曙光IPMI配置手册范本.doc
  9. 《失业的程序员》(十三):平衡
  10. java玩gbc,GB/GBC游戏能玩?