设为首页 收藏本站
查看: 957|回复: 0

[经验分享] Apache的安全方案与证书实施

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2018-11-23 09:10:42 | 显示全部楼层 |阅读模式
  Apache的安全方案与证书实施
  

  

  安装Apache服务,并保证正常启动,
  [root@localhost ~]# yum --disablerepo=\* -enablerepo=c6-media install httpd
   DSC0000.jpg
  

  

  对网站安全访问的控制
  

  安装好之后我们可以先做个静态的小页面测试一下;如图
  

DSC0001.jpg

  

   DSC0002.jpg

  此时,网段内的所有机器是都可以访问的,接下来我们要进行网站的安全控制
  对网站安全访问的控制
  

  首先我们要在以下目录下修改Apache的配置文件,
DSC0003.jpg

  

  之后去创建一个httpd的关于验证的说明文件(路径为/var/www/html/)内容如下:
DSC0004.jpg

  

  然后在www目录下用htpasswd -c 来创建一个用户账号 并用 .htpasswd指明文件存放路径
DSC0005.jpg

  重启Apache后,
  [root@localhost www]# service httpd restart
  Stopping httpd:                                            [  OK  ]
  Starting httpd:                                            [  OK  ]
  再此访问效果如下,需要账户和口令
DSC0006.jpg

  

  访问的来源控制 :
  修改/etc/dhcpd/conf/dhcpd.conf的相关控制字段
  在该文件的配置中这一语段表示允许与拒绝的字段,并用order对deny和prime的先后进行定义,然后我们要做如下修改,表示先比配allow后匹配deny,deny后可跟你要拒绝的主机ip或网段
  

  (注意,本例中对192.168.1.177的限制是无效的)
DSC0007.jpg

  

  

  在做证书管理之前,我们要先清除一下概念
  

  证书管理机构——CA
  CA是PKI系统中通信双方都信任的实体,被称为可信第三方(Trusted Third Party,简称TTP)。CA

  作为可信第三方的重要条件之一就是CA的行为具有非否认性。作为第三方而不是简单的上级,就必须

  能让信任者有追究自己责任的能力。CA通过证书证实他人的公钥信息,证书上有CA的签名。用户如果

  因为信任证书而导致了损失,证书可以作为有效的证据用于追究CA的法律责任。正是因为CA愿意给出

  承担责任的承诺,所以也被称为可信第三方。证书中绑定了公钥数据、和相应私钥拥有者的身份信息,并带有CA的数字签名。证书中也包含了CA的名称以便于依赖方找到CA的公钥、验证证书上的数字签名。

  验证证书的时候,需要得到CA的公钥。用户的公钥可以通过证书来证明,那CA的公钥如何获得呢?可
  以再让另一个CA来发证书,但最终总有一个CA的公钥的获得过程缺乏证明。PKI技术并不把这样一个

  循环问题留给自己,而是依赖其它的安全信道来解决。因为CA毕竟不多,可以通过广播、电视或报纸

  等公开的权威的媒介,甚至通过发布红头文件的方式来公告CA的公钥。

  公告CA的公钥可以有多种形式,为了兼容程序的处理,人们一般也以证书的形式发布CA的公钥。CA给
  自己签发一张证书,证明自己拥有这个公钥,这就是自签名证书(Self-Signed Certificate)。

  与末端实体的证书不一样,在尚未确定CA公钥时,CA自签名证书其实不是真正的数字证书,而仅仅是
  拥有证书形式的一个公钥。所以CA自签名证书必须从可信的途径获取。例如,任何人都可以产生一对

  公私密钥对,并声称自己就是LOIS CA,然后签发一张自签名证书、并通过网络随意传播。CA自签名

  证书可以通过权威媒体或面对面USB硬盘等进行传输。

  用户拥有CA自签名证书之后,就可以离线地验证所有其它末端用户证书的有效性,获得其它实体的公
  钥、进行安全通信。

  CA是负责确定公钥归属的组件,所以CA必须得到大家的信任才能充当这样的角色,其确定公钥归属的
  技术手段也必须是可靠的。CA通过证书方式为用户提供公钥的拥有证明,而这样的证明可以被用户接

  受。在PKI中,CA也具有自己的公私密钥对,对每一个“公钥证明的数据结构”进行数字签名,实现公钥获得的数据起源鉴别、数据完整性和非否认性。用于公钥证明的数据结构,就是数字证书。
  CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。
  

  

  实施步骤:
  在/etc/pki目录下查看公钥的基础设施是否存在,
  

  在CA的默认参数文件中,CA目录中所有的证书都保存在这个目录中,certs是保留那些正在发行的证书
  而从的配置文件中我们可以看到,我们还需要手动创建一些目录,
  

  而这一切的产生都需要依赖于openssl工具才行,但在openssl 的配置文档中(安装后在/etc/pki/tls/openssl.cnf),
  

DSC0008.jpg

  

DSC0009.jpg

  文件介绍:
  

  certs是保留那些正在发行的证书,而在crl_dir主要存放的是证书吊销列表,
  

  

  index。txt文件是一个CA作为发行机构,没发行一个证书就会在这个文件中记录下来,
  

  new_certs_dir   = $dir/newcerts 表示对那些新的未发行证书缺省的存储空间方式,可以理解为一些新的证书请求的存放处,
  

  certificate     = $dir/cacert.pem 中存放我们这个证书颁发机构自己的“证书”
  serial          = $dir/serial指当前发放的证书的序列号,这个目录是没有的所以我们要手工创建,并给于初始值01, 01表示16进制,并输入给serial
  crlnumber       = $dir/crlnumber表示证书吊销列表的序列号
  private_key     = $dir/private/cakey.pem表示证书公钥的所在文件
  

  而我们要一个证书机构能够工作,就必须要它有自己的“证书”,还要有自己的私钥
  

  我们要先了解它工作时的有关需要,所以要手工创建以下内容:
  

DSC00010.jpg

  

  接下来,利用openssl完成私钥的产生工作,openssl genrsa 1024 命令来产生私钥,命令表示,产生基于rsa算法的 1024长度私钥,但产生的结果比不会直接输出,而是经过base64编码之后的结果,如图
DSC00011.jpg

  但是这样做并不能产生我们需要的文件,所以我们要将他重新输出重定向到一个私钥文件中去
  

DSC00012.jpg

  作为证书的保存要找一个合适的目录,以安全存放,私钥必须严格保密
  

  

DSC00013.jpg

  所以,我们还要对私钥进行权限的改写,确保安全,如下
  

  [root@localhost CA]# ll ./private/
  total 4
  -rw-r--r--. 1 root root 887 Jan 19 03:07 cakey.pem
  [root@localhost CA]# chmod 600 ./private/cakey.pem
  [root@localhost CA]# ll ./private/
  total 4
  -rw-------. 1 root root 887 Jan 19 03:07 cakey.pem
  

  要产生一个新的证书要依赖证书上的公钥,所以命令的意思为,请求产生一个新的公钥,公钥从哪来?从私钥中提取,证书格式为-X509格式,-out输出这个证书,并命名为cacert.pem(注意这的证书名字要与配置文件中的一致),如图
  然后按提示输入,国家,省份,公司等信息(这些可以在配置文件的[ req_distinguished_name ]字段中进行缺省值的改写)邮件地址可以不填写
DSC00014.jpg

  

  web服务器要想获得证书,首先还要有请求文件,而且要留下公钥作为比对及发行的凭证,
  

  作为证书的保存要找一个合适的目录,以安全存放,私钥必须严格保密
  


  

  当我们作为一个证书的颁发机构成立后,接下就是接受符合我们规则的一些请求,但这些规则在初始时可能我们做一些修改,所以要修改策略,让请求能够进来
  

  

  改变CA的策略匹配,在CA的匹配策略文件中,有一些匹配的要求项目我们要做一些修该,否则可能申请不到证书,(我们作为证书的颁发机构,可能在颁发时有匹配要求),
  

DSC00015.jpg

  

  在这些完成之后就是证书的申请阶段,首先由申请方产生请求文件
  

DSC00016.jpg

  然后我们会在目录下看到一个请求文件
DSC00017.jpg

  

  然后在CA中我们处理请求文件(此时是同一台机器上),如图批准请求文件,由我们(CA)颁发(签署)证书;
  

DSC00018.jpg

  

  此时当我们签署证书后会在证书的发放文件中看到有关的记录,比如,证书编号。类型等
  

  [root@localhost etc]# cd ..
  [root@localhost /]# cd /etc/pki/CA
  [root@localhost CA]# cat index.txt
  V150118202443Z01unknown/C=cn/ST=beijing/O=cde/OU=tec/CN=www.cde.com
  

  得到证书后就是web服务器和证书的捆绑,(类似于发布),此时我们的HTTPd为了完成这一功能要调用一个模块,我们需要安装它
  

DSC00019.jpg

  

  安装完模块后,我们要让httpd能够去调用这些模块,所以要在模块的配置文件中进行修改
  ,主要是为HTTP指明证书的所在位置,公钥和私钥的具体存放路径;
  如图,打开模块加载功能,打开安全端口
DSC00020.jpg

  

  

  

  

  

  

  

  

  

  

  


  

  然后分解在地105行和112行指明我们具体cert文件和钥匙文件的存放目录
  

  

DSC00021.jpg

  

  修改完配置文件后,我们重启服务,并查看相应端口情况
DSC00022.jpg

  

  接下测试,找到一台主机的浏览器,首先可以看到我们的时间三个选项都不对,时间我们可以很方便在主机上修改,同样的其它两项也可以修改,
DSC00023.jpg

DSC00024.jpg

  

  之后我们要修改一个mod_ssl配置文件下一个叫chain的量,叫证书卷的概念,又叫机构证书,把他
  

  打开并把那行改为我们的证书卷存放目录,解决我们证书颁发机构的问题
DSC00025.jpg

  

DSC00026.jpg

  

  

  关于证书不信任的问题我们可以在浏览器中也可以手动安装我们的证书,
DSC00027.jpg

  

  

DSC00028.jpg

  

DSC00029.jpg

  

  之后的域名不匹配,当我们确认地址无误的时候我们可以点强制相信,完成正常访问,效果如图所示:
  

  

DSC00030.jpg

DSC00031.jpg

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638479-1-1.html 上篇帖子: Apache的站点安全技术 下篇帖子: Web服务基础四之Apache访问控制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表