首页 > 其他分享 >Basic认证与Digest认证在http服务的配置与测试

Basic认证与Digest认证在http服务的配置与测试

时间:2023-09-22 14:24:01浏览次数:39  
标签:httpd http Basic auth 认证 basic realm digest

一、Apache支持basic认证

1. 确定Apache服务器是否有这2种模块

服务器装的apche一般会默认带这两个模块:auth_basic_module modules/mod_auth_basic.so、auth_digest_module modules/mod_auth_digest.so

在http.conf中看能否找到 LoadModule auth_digest_module modules/mod_auth_digest.so

LoadModule auth_digest_module modules/mod_auth_digest.so,把digest注释掉

2.增加basic认证的用户的密码

htpasswd -c /etc/httpd/webpasswd user

第一次需加-c选项

3.在httpd.conf中找到 DocumentRoot,并在下面填上

<Directory /var/www/html> //html存放路径

AuthType Basic //示认证方式,这里是 basic 认证

AuthName Hello //表示弹出框给出的提示文字,可随机填写

AuthUserFile "/etc/httpd/webpasswd" //basic表示认证用户文件的路径

require user user //定义哪些用户或组才能被授权访问,valid-user文件所有用户都可以访问

</Directory>

 

4.可以通过浏览器来访问,查看是否配置正确

  1. basic认证的过程

当请求的资源需要 BASIC 认证时,服务器会随状态码 401 Authorization Required,返回 WWW-Authenticate 首部字段(响应头)的响应。该字段内包含认证的方式(BASIC)及Request-URI 安全域字符串(realm)

接收到状态码 401 的客户端为了通过 BASIC 认证,需要将用户ID及密码发送给服务器。发送的字符串内容是由用户名 ID 和密码构成,两者中间以冒号(:)连接后,再经过 Base64 编码处理。

注:测试仪在发送请求的时候已经带上了用户和密码,所以不存在返回401的情况

二、Apache支持digest认证

  1. 在httpd.conf文件中支持digest模块

LoadModule auth_digest_module modules/mod_auth_digest.so

注 要把basic认证的模块注释掉

2.增加digest认证的用户的密码

htdigest -c digest realm user1

在当前目录下增加一个digest的文件,里面用户是user1

3.在httpd.conf修改配置

注:AuthName要与realm相同

  1. 修改后重启httpd服务

Systemctl restart httpd

  1. 可以通过浏览器或测试仪来访问是否配置成功

注:第一次请求时一定回401

  1. 交互过程

(1)请求需认证的资源时,服务器会随着状态码 401Authorization Required,返回带WWW-Authenticate 首部字段的响应。该字段内包含质问响应方式认证所需的临时质询码(随机数,nonce)。首部字段 WWW-Authenticate 内必须包含realm 和nonce 这两个字段的信息。

 

(2)接收到401状态码的客户端,返回的响应中包含 DIGEST 认证必须的首部字段 Authorization 信息。首部字段 Authorization 内必须包含 username、realm、nonce、uri 和response的字段信息。其中,realm 和 nonce 就是之前从服务器接收到的响应中的字段。

 

(3)接收到包含首部字段 Authorization 请求的服务器,会确认认证信息的正确性。认证通过后则返回包含 Request-URI 资源的响应。并且这时会在首部字段 Authentication-Info 写入一些认证成功的相关信息

标签:httpd,http,Basic,auth,认证,basic,realm,digest
From: https://www.cnblogs.com/123456likun/p/17722174.html

相关文章

  • drf - 基于自定义表编写认证类、jwt源码剖析
    补充点翻译函数; 只要做了国际化处理,就会显示当前国家的语言fromdjango.utils.translationimportgettext_lazyas_msg=_('Signaturehasexpired.')#_是函数的别名,这个函数是翻译函数,只要做了国际化处理,它就是中文基于自定义表编写认证类classAuthAuthent......
  • COMP3322 notes P1 - Internet & WWW Basic
    选这门课完全是为了推进我博客美化的大业!希望学完之后updatelogs里的一部分issues能自己亲手解决。首先来到InternetandWWWbasic:这些基本的network知识对接下来的front-endframework学习大有裨益。Internet,Web,DNS,HTTP等「最熟悉的陌生人」在这一节得以祛......
  • COMP3322 notes P2 - HTML Basic
    用课程上介绍的HTMLvalidation网站W3CMarkupValidator检查了一下本站HTML文件的正确性,结果弹出了57个Error与Warning。我在魔改的时候到底做了些什么啊……不过从这也能看出HTML语言的permissive性质;宽松的语法与browser也是Web长盛不衰的原因之一。{%n......
  • HTTP安全响应头配置之Access-Control-Allow-Origin
    目的Access-Control-Allow-Origin是从CrossOriginResourceSharing(CORS)中分离出来的。这个header是决定哪些网站可以访问资源,通过定义一个通配符来决定是单一的网站还是所有网站可以访问我们的资源。需要注意的是,如果定义了通配符,那么Access-Control-Allow-Credentials选项就......
  • HTTP之下的TCP做了什么?抓包解释!
    理清HTTP之下的TCP流程,让你的HTTP水平更上一层(qq.com)首先,我们准备这样一段服务端代码:constexpress=require('express')constapp=express()app.get('/',function(req,res){res.setHeader('Connection','close')res.end('hell......
  • 上新!100%国产物料认证,米尔入门级国产核心板全志T113-i方案
    自米尔国产全志T113系列的核心板发布以来,这款高性价比、低成本、入门级、高性能的国产核心板咨询不断,配套的开发板已经成交量数百套,深受工程师们的青睐,为了集齐T113全系列的产品,这次米尔发布了基于全志T113-i处理器的核心板和开发板,让广大工程师有了更多的选择。接下来看看这款T113......
  • 上新!100%国产物料认证,米尔入门级国产核心板全志T113-i方案
    自米尔国产全志T113系列的核心板发布以来,这款高性价比、低成本、入门级、高性能的国产核心板咨询不断,配套的开发板已经成交量数百套,深受工程师们的青睐,为了集齐T113全系列的产品,这次米尔发布了基于全志T113-i处理器的核心板和开发板,让广大工程师有了更多的选择。接下来看看这款T11......
  • centos7 yum安装freeradius并配置到openldap进行简单认证
    1.yum安装freeradiusyum-yinstallfreeradiusfreeradius-utilsfreeradius-ldapvim2.编辑vim /etc/raddb/mods-available/ldap根据实际情况修改dc的值[root@localhost~]#cat/etc/raddb/mods-available/ldap|grep-v"#"|grep-v"^$"ldap{serv......
  • HttpClient HttpClientHandler WebRequestHandler Explained 处理https请求
    Framework4.8的HttpClientHandler有ServerCertificateCustomValidationCallback所以处理https请求做如下操作:varhandler=newHttpClientHandler();varbaseUri=newUri(url);if(baseUri.Scheme.ToLower()=="https"){......
  • 在 Net7.0 环境下使用 RestSharp 发送 Http(FromBody和FromForm)请求
    一、简介最近,在做一个数据传输的服务,我在一个WorkerService里面需要访问WebAPI接口,并传输数据,也可以提交数据。由于第一次使用RestSharp发送请求,也遇到了很多问题,不过最终把问题都解决了。什么东西都一样,第一次做都会才很多坑。今天,我就两个小的知识点,就是通......