小c学Linux(25)--HTTP服务配置(三)

本文详细介绍了HTTPS协议原理及其配置步骤,包括SSL/TLS协议的作用、数据加密过程、证书的生成与验证方法,以及如何在服务器上部署HTTPS服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于上两篇小c学Linux(21)–HTTP服务配置(一)小c学Linux(21)–HTTP服务配置(二)

16)https协议

https协议

超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
历史上,HTTPS连接经常用于万维网上的交易支付和企业信息系统中敏感信息的传输。在2000年代晚期和2010年代早期,HTTPS开始广泛使用于保护所有类型网站上的网页真实性,保护账户和保持用户通信,身份和网络浏览的私密性。 —-维基百科

TLS协议

传输层安全性协议(英语:Transport Layer Security,缩写作 TLS),及其前身安全套接层(Secure Sockets Layer,缩写作 SSL)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器,网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布第一版TLS标准文件。随后又公布RFC 5246 (2008年8月)与 RFC 6176 (2011年3月)。在浏览器、电子邮件、即时通信、VoIP、网络传真等应用程序中,广泛支持这个协议。主要的网站,如Google、Facebook等也以这个协议来创建安全连接,发送数据。目前已成为互联网上保密通信的工业标准。
SSL包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。 —–维基百科

所以https = http + TLS, 通俗的说就是加密了的http,http是明文发送数据,容易被网络上黑客劫持,而https就是将数据加密后再发送数据。

这里写图片描述

图片来源

由上图可以看整个数据加密过程:

SSL握手完成的工作

- 交换协议版本号
- 选择双方都支持的加密方式
- 对两端实现身份验证
- 密钥交换

客户端验证服务器证书时

- 日期检测,检测日期是否在有效期内
- 证书颁发者的可信度
- 证书的签名检测
- 持有者的身份检测

详解参考博客:http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html

http 默认监听 80 端口
https 默认监听 443 端口

pki(Public key Infrastructure)包含,位置/etc/pki/:

- 端实体(申请者)
- 注册机构(RC)
- 签证机构(CA)
- 证书撤销列表(CRC):存储与发布机构存取库

httpd:基于mod_ssl模块实现对ssl的支持

1)准备好服务器的私钥和证书

#由于CA认证机构实际签署证书需要大量的费用,自己制作一个CA认证机构,给自己颁发证书

#(一)准备自签CA
cd /etc/pki/CA

#1.生成密钥对儿
(umask 077; openssl genrsa 2048 > private/cakey.pem)

#2.修改其默认值,如国家,地区,省份,公司等信息
vim /etc/pki/tls/openssl.cnf
#在【 req_distinguished_name 】中
#*—default 
#如countryName_default             = CN

#3.自己给签署自己证书,CA认证机构
openssl req -new -key private/cakey.pem -out cacert.pem -days 3655

#4.创建CA基础文件
touch index.txt serial crlnumber
echo 01 > serial

#(二)准备服务器私钥和证书
cd /etc/httpd/conf/
mkdir ssl
cd ssl

#1.生成密钥对儿
(umask 077; openssl genrsa 1024 > httpd.key)

#2.生成证书
openssl req -new -key httpd.key -out httpd.csr

#3.CA签署证书
openssl ca -in httpd.csr -out httpd.crt

2)安装mod_ssl模块

#1.先检测是否已经安装
rpm -q mod_ssl

#2.安装mod_ssl
yum -y install mod_ssl

#3.查看mod_ssl配置文件位置
rpm -qc mod_ssl

#4.修改`/etc/httpd/conf.d/ssl.conf`
DocumentRoot “/var/www/html” 
ServerName www.xiaoc.com
SSLEngine on

#配置已签证书
SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt

#配置密钥对儿
SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key

#5.重启httpd服务
service httpd restart

#6.测试
#前提:客户端安装cacerts.pem证书,修改服务器hosts文件对应的FQDN
#命令行测试
openssl s_client -connet www.xiaoc.com:443 -CAFile /etc/pki/CA/cacert.pem
17)服务器的status页面

内生的status,次信息可以通过web予以显示

基于URL访问属性


#1.配置用户控制
<Location /server-status>
  SetHandler sever-status
  AuthType Basic
  AuthName "Sever Status"
  AuthUserFile "/etc/httpd/conf/.htpasswd"
  Require valid-user
  Order deny,allow
  Allow from all
</Location>

#2.生成用户密码
htpasswd -c /etc/httpd/conf/.passwd_file UserName 

#3.访问172.16.36.207/server-status页面,输入用户名密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值