Apache httpd服务

Stella981
• 阅读 876

Apache httpd服务

https的实现

​ 1)CA服务器端,生成自签证书

[root@ca ~]# cd /etc/pki/CA/
[root@ca CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
[root@ca CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
[root@ca CA]# touch index.txt
[root@ca CA]# echo 01 > serial

​ 2)HTTP服务器端,生成签署请求

[root@www ~]# mkdir /etc/httpd/conf.d/ssl
[root@www ~]# cd /etc/httpd/conf.d/ssl
[root@www ssl]# (umask 077; openssl genrsa -out httpd.key 1024)
[root@www ssl]# openssl req -new -key httpd.key -out httpd.csr
[root@www ssl]# scp httpd.csr 192.168.0.2:/etc/pki/CA/

​ 3)CA服务器端,签署

[root@ca CA]# openssl ca -in httpd.csr -out certs/httpd.crt -days 350
[root@ca CA]# scp certs/httpd.crt cacert.pem 192.168.0.7:/etc/httpd/conf.d/ssl/

​ 4)HTTP服务器端,配置https

[root@www ssl]# ls -1
cacert.pem
httpd.crt
httpd.csr
httpd.key
[root@www ~]# yum install mod_ssl -y
[root@www ~]# vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem

测试访问:https://192.168.0.7 ,导入根证书即可信任此网站

​ 5)配置http重定向到https,将http请求转发至https的URL:俩种实现方式,推荐使用HSTS

  • Redirect [status] URL-PATH URL 这种方法不适合,会反复重定向

  • HSTS:HTTP Strict Transport Security

​ 服务器端配置支持HSTS后,会在给浏览器返回的HTTP首部中携带HSTS字段。浏览器获取到该信息后,会将所有HTTP访问请求在内部做307跳转到HTTPS。而无需任何网络过程

HSTS preload list:Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访问时,会自动转换成HTTPS。Firefox、Safari、Edge浏览器也会采用这个列表

[root@www ~]# vim /etc/httpd/conf.d/myhttpd.conf
Header always set Strict-Transport-Security "max-age=31536000"
RewriteEngine on
RewriteRule ^(/.*)$  https://%{HTTP_HOST}$1 [redirect=302]

测试访问http://会自动跳转到https://

http的反向代理功能

不推荐使用

启用反向代理:

特定URL反向代理:

web相关工具

1、curl命令

​ curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST、PUT等方法, FTP上传, kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证, 下载文件断点续传,上载文件断点续传, http代理服务器管道( proxy tunneling),还支持IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等,功能十分强大。

用法:curl [options][URL...]

选项:

  • -A string 设置用户代理(浏览器)发送给服务器
  • -e URL 伪装来源网站
  • --cacert file 指定使用ca证书
  • -k 允许忽略证书进行 SSL 连接
  • --compressed 要求返回是压缩的格式
  • -H 自定义首部信息传递给服务器
  • -i 显示页面内容,包括报文首部信息
  • -I 只显示响应报文首部信息
  • -D file 将url的header信息存放在指定文件中
  • --basic 使用HTTP基本认证
  • -u user:password 设置服务器的用户和密码
  • -L 如果有3xx响应码,重新发请求到新位置
  • -O 使用URL中默认的文件名保存文件到本地
  • -o file 将网络文件保存为指定的文件中
  • --limit-rate 限制传输速度
  • -0 数字0,使用HTTP/1.0协议
  • -v 显示详细信息
  • -C 选项可对文件使用断点续传功能
  • -c 将url中cookie存放在指定文件中
  • -x proxyhost:port 指定代理服务器地址
  • -X COMMAND 向服务器发送指定请求方法
  • -U user:password 代理服务器用户和密码
  • -T 选项可将指定的本地文件上传到FTP服务器上
  • -d 方式指定使用POST方式传递数据
  • -b name=data 从服务器响应set-cookie得到值,返回给服务器

2、htpasswd

basic认证基于文件实现时,用到的账号密码文件生成工具

用法:htpasswd [options] /PATH/HTTPD_PASSWD_FILE username

  • -c:自动创建文件,仅应该在文件不存在时使用

  • -p:明文密码

  • -d:CRYPT格式加密,默认

  • -m:md5格式加密

  • -s: sha格式加密

  • -D:删除指定用户

    htpasswd -mc /etc/httpd/conf.d/.htuser admin

3、apachectl

httpd自带的服务控制脚本,支持start、stop和restart等选项

4、rotatelogs:

日志滚动工具

5、ab命令

httpd的压力测试工具,来自httpd-tools包

用法:ab [options] URL

  • -n:总请求数
  • -c:模拟并发数
  • -k:以持久连接模式测试
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这