如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情
在运维工作中,加密和安全的作用是十分重要的,如果仅仅用http协议来对外展示我们的网站,过一段时间就会发现网站首页被人奇奇怪怪的篡改了,本来好好的博客论坛,被人篡改的五毒俱全,这个时候我们的网站就需要加密访问了,这个加密不是说要密码才可以查看网站,而是通过https协议进行加密访问,客户端进行访问的时候会进行加密和解密,防止我们的web服务被篡改,今天咱们介绍一下https加密访问~~~~
目录
一、http被劫持演示
1、配置WEB01服务器为正确的网站
编辑
2、配置WEB02服务器为劫持网站 类似黑客劫持
3、修改网页中的内容 配置劫持内容
二、https的优势
三、配置https
1、配置之前访问一下方便对比不同
编辑
解决无法识别https,css失效的问题
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!
一、http被劫持演示
1、配置WEB01服务器为正确的网站
[root@web01 conf.d]#vim static.conf
server {
listen 80;
server_name www.static.com;
location / {
root /code/test;
index index.html;
}
}
"static.conf" 9L, 107C written
[root@web01 conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 conf.d]#systemctl restart nginx
[root@web01 conf.d]#cat /code/test/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我是title</title>
</head>
<body>
<article>
<header>
<h1>小屁的博客</h1>
<p>创建时间:<time pubdate="pubdate">2020/5/20</time></p>
</header>
<p>
<b>Aticle</b>第一次用h5写文章,好他*的紧张...
</p>
<footer>
<p><small>版权所有!</small></p>
</footer>
</article>
</body>
</html>
2、配置WEB02服务器为劫持网站 类似黑客劫持
[root@web02 conf.d]#cat static.conf
server {
listen 80;
server_name www.static.com;
location / {
proxy_pass http://10.0.0.7;
proxy_set_header Host $http_host;
}
}
[root@web02 conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web02 conf.d]#systemctl restart nginx
3、修改网页中的内容 配置劫持内容
[root@web02 conf.d]#cat static.conf
server {
listen 80;
server_name www.static.com;
location / {
proxy_pass http://10.0.0.7;
proxy_set_header Host $http_host;
sub_filter '<h1>小屁的博客' '<h1>狗屁的博客 ';
sub_filter '<b>Aticle</b>第一次用h5写文章,好他*的紧张...' '<img src="https://bbsfiles.vivo.com.cn/vivobbs/attachment/forum/201601/06/113550pg0zwb1yhbewv774.jpg">';
sub_filter '<small>版权所有' ' <small>开源';
}
}
小屁为了文章可以过审修改的还是比较含蓄的,有些不法的公司改的特别离谱,五毒俱全
二、https的优势
https和http的区别以及https的优势
区别
协议名称及含义:
HTTP(超文本传输协议):是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器,它是一种无状态、无连接的应用层协议,默认使用端口 80。
HTTPS(超文本传输安全协议):是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性,默认使用端口 443。
数据传输安全性:
HTTP:数据传输是明文的,这意味着在客户端(如浏览器)和服务器之间传输的数据,比如登录密码、账户信息等敏感内容,很容易被第三方截获并解读,安全性较差。
HTTPS:采用了 SSL/TLS(安全套接层协议 / 传输层安全协议)加密技术,对传输的数据进行加密处理,即使数据被截取,第三方在没有解密密钥的情况下也无法获取其中的真实内容,极大地保障了数据的保密性和完整性。
身份认证方面:
HTTP:没有提供有效的身份认证机制,客户端难以确认与之通信的服务器是否是真正合法的目标服务器,容易遭受中间人攻击等安全威胁,攻击者可以伪装成服务器来获取用户信息。
HTTPS:在建立连接时,服务器会向客户端提供由权威证书颁发机构(CA)颁发的数字证书,通过验证该证书,客户端可以确认服务器的真实身份,确保是和合法的目标服务器进行通信,防止中间人冒充服务器的情况出现。
性能表现:
HTTP:由于不需要进行加密、解密以及证书验证等额外操作,在数据传输时相对来说性能开销较小,传输速度理论上可能更快一些,但在如今安全要求高的环境下,其安全性缺陷限制了它的使用场景。
HTTPS:加密和解密过程以及证书验证等操作会消耗一定的计算资源,导致其性能相比 HTTP 会稍低一点,比如会增加一定的响应时间、占用更多的服务器资源等,但随着计算机性能的提升以及相关技术的优化,这种性能影响在很多情况下是可以接受的。
HTTPS 的优势
安全性高:通过加密传输数据和身份认证,能有效防止数据被窃取、篡改以及中间人攻击等,保护用户的隐私信息(如账号、密码、交易记录等),特别适用于涉及敏感信息传输的场景,像网上银行、电子商务平台、在线支付等领域。
提升信任度:网站使用 HTTPS 协议,浏览器地址栏会显示安全锁图标等标识,让用户直观地感受到网站是安全可靠的,有助于提升用户对网站的信任程度,进而提高用户的留存率和参与度,对于商业网站来说这一点尤为重要。
符合搜索引擎优化(SEO)要求:主流搜索引擎(如谷歌、百度等)都更倾向于将采用 HTTPS 协议的网站排名靠前,这意味着网站使用 HTTPS 有助于提升在搜索引擎结果页面中的排名,从而获得更多的流量和曝光机会。
满足合规需求:在很多行业领域,如金融、医疗、政务等,有严格的安全法规和数据保护条例要求,使用 HTTPS 协议是满足这些合规性要求的必要条件之一,能避免因违反相关规定而面临的法律风险。
三、配置https
1、配置之前访问一下方便对比不同
1.生成证书
[root@web01 ~]#mkdir -p /etc/nginx/ssl_key
[root@web01 ~]#cd /etc/nginx/ssl_key
[root@web01 ssl_key]#
[root@web01 ssl_key]#openssl genrsa -idea -out server.key 2048
Generating RSA private key, 2048 bit long modulus
..................+++
................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:
# 输入1234
Verifying - Enter pass phrase for server.key: # 输入1234
2.配置证书
[root@web01 ssl_key]#openssl req -days 36500 -x509 \
> -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:bj
Organization Name (eg, company) [Default Company Ltd]:yunzhongzi
Organizational Unit Name (eg, section) []:etiantian
Common Name (eg, your name or your server's hostname) []:www.wp.com
Email Address []:123@qq.com
[root@web01 ssl_key]#pwd
/etc/nginx/ssl_key
[root@web01 ssl_key]#ll
total 8
-rw-r--r-- 1 root root 1379 Apr 25 10:08 server.crt
-rw-r--r-- 1 root root 1704 Apr 25 10:08 server.key
[root@web01 conf.d]#cat wp.conf
server {
listen 443 ssl;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
server_name www.wp.com;
root /code/wp;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name www.wp.com;
return 302 https://$server_name$request_uri;
}
[root@web01 conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 conf.d]#systemctl restart nginx
配置lb01
主机名 外网IP(NAT) 内网IP(LAN) 角色
lb01
10.0.0.5
web02
10.0.0.8
172.16.1.5 负载均衡
配置证书 https
172.16.1.8 web服务器 http
web03
10.0.0.9
172.16.1.9 web服务器 http
# 需要还原WEB01的https的配置为http
负载均衡配置:
[root@lb01 conf.d]#cat wp.conf
upstream web {
server 10.0.0.7;
server 10.0.0.8;
}
server {
listen 443 ssl;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
server_name www.wp.com;
location / {
proxy_pass http://web;
include proxy_params;
}
}
server {
listen 80;
server_name www.wp.com;
return 302 https://$server_name$request_uri;
}
[root@lb01 conf.d]#scp -r 172.16.1.7:/etc/nginx/ssl_key ../
[root@lb01 conf.d]#ll ../ssl_key/
total 8-rw-r--r-- 1 root root 1379 Apr 25 10:24 server.crt-rw-r--r-- 1 root root 1704 Apr 25 10:24 server.key
[root@lb01 conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 conf.d]#systemctl restart nginx
解决无法识别https,css失效的问题
[root@web02 conf.d]#vim wp.conf
server {
listen 80;
server_name www.wp.com;
root /code/wordpress;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTPS on;
}
}
#注:web01,web02都进行修改,然后nginx -t验证语法问题,systemctl restart nginx重启服务|nginx -s reload重载nginx
搞定lb01的代码之后,web01web02的代码重定向取消;代码恢复到原来
https配置成功~~~~
今天的https就介绍到这里,明天介绍keepalived高可用~~~
想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~