开发者学堂课程【网络安全攻防 - Web渗透测试:中间人攻击及防御_3】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/630/detail/9934
中间人攻击及防御_3
内容介绍
一、HTTPS 加密机制
二、wordpress 环境准备
三、SSL 证书申请流程
四、SSL 证书使用及测试
一、HTTPS 加密机制
Certificate Signed by a CA,首先需要在网站服务器提供这样的一个证书和私钥,采用非对称加密的方式。这个证书就是需要从数字发放证明的机构— ca 机构去申请。作为网站服务器,如果想要提供加密的服务,自己首先需要和生成一个私钥,通过私钥生成一个证书加密请求,最后由 ca 机构进行签名,之后就变成了数字证书。所以在网站服务器,无论是阿帕奇,nginx,还是前端代理服务器,就有两个最重要,一个是私钥,一个是数字证书,数字证书里面包含公钥,还有一些有效期,或者是谁签署的一些信息,是用 ca 自己的私钥签署的,所以只要客户在浏览器这边持有机构的公钥或者证书,就可以验证有机构的签名。公钥加密,私钥解密,相反,私钥签名,公钥验证签名,所以右边这台 web serve r有私钥,有数字证书由 ca 签名,ca 签名使用私钥,加密用的是公钥,客户端有 ca 的证书,就能验证ca 签名的内容,当服务器第一次采用 https 这种方式进行协商的时候,那么 web server 就会把它的证书丢给客户端,而客户端验证签名的合法性,之后客户端就会拿着 web serve 的公钥(公钥就是公开的),最后传输的时候就会让客户端公钥进行加密,要有对应的私钥才能解密。整个网站的安全环境当中,重要的环节之一就是使用加密的方式进行传输,这个加密需要第三方机构,就是证书签发机构才可以。
二、wordpress 环境准备
加密就需要第三方机构,也就是证书签发机构才可以,那么证书签发机构是怎么签发的呢?就需要搭建一个环境。
1、请先完成项目1 :基于云实现产品上线 wordpress; 如果 wordpress 网站环境已正常运行,请忽略。
2、请确保域名已申请并能够解析,本项目域名为 yangge . online。
三、SSL 证书申请流程
1、aliyun ssl 证书:
在阿里云上面购买一个证书,选择是 symantec,品牌是免费性 dv ssl,点击立即购买0元,支付0元,在证书里面就有一个证书,一年的有效期,需要填写域名的信息,输入要保护的域名。填写真实信息,不能乱写,乱写审核不给通过。最后要勾选证书绑定域名,系统就自动 csr,提交审核,几分钟后,证书状态变成已签发,下载这个证书和私钥。这边会有配置的方法。把证书的包传到服务器上。
2、安装证书文件说明:
(1)证书文件214792661050162.pem ,包含两段内容,请不要删除任何一段内容。
(2)如果是证书系统创建的 ICSR,还包含:证书私钥文件214792661050162.key,证书公钥文件 publc.pem,证书链文件 chan.pem。在 Apache 的安装日录下创建 cert 日录,并且将下载的全部文件拷贝到 cert 日录中。如果申请证书时是自己创建的 CSR 文件,请将对应的私钥文件放到 cert 日录下并且命名为214792661050162.key;打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉"#”:
#LodModule ss1. module modulcs/mod ss1.s0
(如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ss1 .conf
最后上传证书。
四、SSL 证书使用及测试
1、解压证书文件:
[ root@yangge ~]# ls
214792661050162.zip wordpress wordpress-4.9.4-zh_ _CN.tar.gz
[root@yangge ~]# yum -y install unzip
[root@yangge ~]# unzip 214792661050162.zip
Archive:214792661050162.zip
cert-key
inflating:214792661050162. pem
//公钥文件
inflating: 214792661050162. key
//私钥文件
inflating: public.pem
inflating: chain. Pem
2、复制到 Apache 目录:
[root@yangge ~]# cp -rf 214792661050162. key /etc/hftpd/
[root@yangge ~]# cp -rf 214792661050162. pem /etc/httpd/
拷贝到 Apache 的目录下面
[root@yangge ~]# ls /etc/httpd/
214792661050162. key conf conf . modules . d modules
214792661050162. pem conf.d logs
run
3、Apache 使用 ssl 证书:
[root@yangge ~]# yum -y install mod_ ssl
//安装支持 HTTS 模块
[root@yangge ~]# vim /etc/httpd/conf . d/ssl. conf
SSLCertificateFile /etc/httpd/214792661050162. pem
在 Apache 配置文件里面把前两项改成对应证书的位置,进行重启。
//前面准备的证书文件
SSLCertificateKeyFile /etc/httpd/214792661050162. key
//前面准备的私钥文件
[root@yangge ~]# systemctl restart httpd
[root@yangge ~]# ss -tnlp lgrep :80
LISTEN 0 128 *:80 *:* users:
[root@yangge ~]# ss -tnlp lgrep :443
LISTEN 0 128 *:443 *:* users:
4、测试 HTTP/HTTPS:
这是正常的方式访问 http://yangge.online
这是加密的方式访问 https://yangge.online
5、HTTP 跳转 HTTPS:
Apache 有跳转机制,在 Apache 里面新建了一个80的主机,用 yangge.online 开启了一个 RewriteEngine 的引擎,将所有的请求,直接到 https://www. yangge. online$1 [R=301,L],$1指的就是.*里的内容。301永久生效。
[ root@yangge ~]# vim /etc/httpd/conf . d/yangge . online . conf
<VirtualHost *:80>
ServerName www.yangge . online
ServerAlias yangge . online
RewriteEngine On
RewriteRule ^(.*)$
https://www. yangge. online$1
[R=301,L]
</VirtualHost>
[root@yangge ~]# systemctl restart httpd
总之,HTTPS 是一定要用的,无论是防御中间人的攻击还是数据的一些截取或被别人截获相对来说是安全的。