当前位置: 首页 > news >正文

Linux上通过SSL/TLS和start tls连接到LDAP服务器

一,大致流程。


        1.首先在Linux上搭建一个LDAP服务器 2.在LDAP服务器上安装CA证书,服务器证书,因为SSL/TLS,start tls都属于机密通信,需要客户端和服务器都存在一个相同的证书认证双方的身份。3.安装phpldapadmin工具,为我们提供一个可视化操作的LDAP服务器界面,让我们能够方便去管理用户,组织。4.通过TLS和start tls和连接到LDAP服务器。

        2.提交了解,新手必看。首先你在执行下述安装LDAP搭建之前,创建一个新的ubuntu的作为你的服务器的载体。其次,你新建的这个ubuntu的IP地址就是你LDAP服务器的IP地址,默认服务器管理员账户名为admin。鬼知道我之前找IP地址和管理员账户在配置文件里面扒拉了多少时间。

二.搭建LDAP服务器

三.搭配CA证书,服务器证书

        二,三两个步骤我就不写了,这两个文章在这位大佬里面的博客写得非常详细,直接粘贴复制这位大佬的命令就行了。然后我会解决大佬文章中出现的一个错误,应该是版本更迭原因。

        大佬的文章做到"配置OpenLDAP以使用证书和密钥"这一步时,他在保存addcerts.ldif后直接执行了写入配置文件这条命令。

经过我多次测试,如果在执行这条命令前不执行重启Openldap服务:sudo service slapd force-reload这条命令的话,会报出ldap_modify: Other (e.g., implementation specific) error (80)这样的错误,当你保存addcerts.ldif这个文件之后,正确的执行命令应当是。

sudo service slapd force-reload

sudo ldapmodify -H ldapi:// -Y EXTERNAL -f addcerts.ldif

sudo service slapd force-reload

 修改配置文件,开启SSL\TLS和Start TLS认证

sudo vim /etc/default/slapd

SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///" //手动开始服务器支持TLS和SSL,前提是你的证书和私钥全部安装完毕;ldapi表示开启Start TLS认证,ldaps表示开启SSL\TLS认证

sudo vim /etc/ldap/ldap.conf

在文件中添加下面两行数据

TLS_REQCERT try //表示强制开启client验证服务器的证书,如果改为allow,可以通过IP连接到服务器

TLS_CACERT /etc/ldap/ca_certs.pem //指定证书的位置

四,安装phpldapadmin工具(不需要可视化界面的可以直接跳到第五步,不影响连接到LDAP服务器)

        搭载phpldapadmin,phpldapdamin,这是一个可视化的LDAP服务器操作页面,能够更好的管理LDAP服务器。

1.安装phpldapadmin工具包

sudo apt-get install -y phpldapadmin

2.安装成功之后检查对应的配置文件,红色为修改部分

sudo vim /etc/phpldapadmin/config.phphp    //打开配置文件

$servers->setValue('server'. 'host', '127.0.0.1') //第三个参数修改为本地环回地址,一般都是这个

$servers->setValue('server'. 'base', array('dc=example,dc=com')) //填写域名,我的是example.com

$servers->setValue('login', 'bind_id', 'cn=admin,dc=example,dc=com') //管理员名+域名 上诉步骤均没有指定管理员名,服务器的默认管理员名均为admin

保存退出

3. 配置文件修改之后配置防火漆:防火墙放行Apache2

Ubuntu命令行执行以下3条命令

ufw allow "Apache"

ufw allow "Apache Full"

ufw allow "Apache Secure"

 4 重启服务器

sudo /etc/init.d/apache2 restart

5.将http:///phpldapadmin 替换为LDAP服务器的IP地址,将这个放到任意一个游览器中运行,点击左侧登录会出现以下画面进行登录

 6.3.6 登录成功之后进入以下画面

 五,连接到AD服务器

 1.验证是否配置成功Strat TLS认证

        这里的ldap://ldap.example.com 必须使用域名,不可以使用IP地址,因为client验证服务器的证书使用的是域名而不是IP地址,如果形式变为ldap://192.168.45.xxx 的形式,就不能连接到服务器。除非你将TLS_REQCERT try改为TLS_REQCERT allow(表示不强制开启client验证服务器的证书)。

ldapwhoami -H ldap://ldap.example.com -x -ZZ   //-ZZ表示强制使用Strat TLS

如果成功,那么你将会看见

anonymous

如果失败,请检查以下

1. /etc/ldap/ldap.conf中指定的证书路径是否正确TLS_CACERT /etc/ldap/ca_certs.pem

2.证书内容是否在复制过程中,多了空格,换行,建议直接复制文件

3.服务器的/etc/default/slapd文件中的SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"字段是否有ldapi:///内容,如果没有则添加,修改完配置文件之后,重启服务

sudo service slapd force-reload 。

4.如果以上3步全部正确,依旧无法连上,尝试在client的/etc/hosts加上反向域名解析:

sudo vim /etc/hosts

#添加方向域名解析

127.0.1.1 ldap.example.com ldap

127.0.0.1 localhost

192.168.45.147 ldap.example.com

2.远程客户端通过SSL\TLS连接到服务器

 ldapwhoami -H ldaps://ldap.example.com -x

 如果成功

 anonymous

 失败的话请查看Strat TLS中提到的错误检查,如果Strat TLS已经成功了,而你的SSL\TLS失败了,就只有/etc/default/slapd文件中的SLAPD_SERVICES字段没有添加ldaps:///

相关文章:

Linux上通过SSL/TLS和start tls连接到LDAP服务器

一,大致流程。 1.首先在Linux上搭建一个LDAP服务器 2.在LDAP服务器上安装CA证书,服务器证书,因为SSL/TLS,start tls都属于机密通信,需要客户端和服务器都存在一个相同的证书认证双方的身份。3.安装phpldapadmin工具&am…...

【华为OD题库-034】字符串化繁为简-java

题目 给定一个输入字符串,字符串只可能由英文字母(a ~ z、A ~ Z)和左右小括号()组成。当字符里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母也可以不…...

斯坦福大学引入FlashFFTConv来优化机器学习中长序列的FFT卷积

斯坦福大学的FlashFFTConv优化了扩展序列的快速傅里叶变换(FFT)卷积。该方法引入Monarch分解,在FLOP和I/O成本之间取得平衡,提高模型质量和效率。并且优于PyTorch和FlashAttention-v2。它可以处理更长的序列,并在人工智能应用程序中打开新的可…...

信息系统项目管理师-干系人管理论文提纲

快速导航 1.信息系统项目管理师-项目整合管理 2.信息系统项目管理师-项目范围管理 3.信息系统项目管理师-项目进度管理 4.信息系统项目管理师-项目成本管理 5.信息系统项目管理师-项目质量管理 6.信息系统项目管理师-项目资源管理 7.信息系统项目管理师-项目沟通管理 8.信息系…...

Windmill:最快的自托管开源工作流引擎

我们对 Windmill 进行了基准测试,认为它是 Airflow、Prefect 甚至 Temporal 中最快的自托管通用工作流引擎。对于 Airflow,有速度快了 10 倍! 工作流引擎编排工作人员的有向无环图 (DAG) 中定义的作业,同时尊重依赖性。 主要优点…...

线性代数 - 几何原理

目录 序言向量的定义线性组合、张成空间与向量基线性变换和矩阵线性复合变换与矩阵乘法三维空间的线性变换行列式矩阵的秩和逆矩阵维度变换点乘叉乘基变换特征值和特征向量抽象向量空间 序言 欢迎阅读这篇关于线性代数的文章。在这里,我们将从一个全新的角度去探索线…...

火电厂电气部分设计

摘要 本文首先根据任务书上所给系统与线路及所有负荷的参数,分析负荷发展趋势。从负荷增长方面阐明了建站的必要性,然后通过对拟建变电站的概括以及出线方向来考虑,并通过对负荷资料的分析,安全,经济及可靠性方面考虑…...

界面组件DevExpress Reporting v23.1 - Web报表设计器功能升级

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表 界面组件DevExpress Reporting v23.1已经发布一段…...

小程序Canvas 2D问题解决,如安卓drawImage不执行、动态高度设置、高度1365(或4096)限制等

我的最新版小程序想在绘制时使用自定义字体,需要将旧版canvas升级到2d新版,发现了许多问题,下面记录一下并提供解决思路,仅供参考,欢迎提供新思路。 一、开发工具和安卓上drawImage不执行,绘制出来是空白&…...

人工智能对网络安全的影响越来越大

如果问当前IT行业最热门的话题是什么,很少有人会回答除了人工智能(AI)之外的任何话题。 在不到 12 个月的时间里,人工智能已经从一项只有 IT 专业人员才能理解的技术发展成为从小学生到作家、程序员和艺术家的每个人都使用的工具…...

JavaEE(SpringMVC)期末复习

文章目录 JavaEE期末复习一、单选题: JavaEE期末复习 一、单选题: 1.Spring的核⼼技术是( A )? A依赖注入 B.JdbcTmplate C.声明式事务 D.资源访问 Spring的核心技术包括依赖注入(Dependency Injection&am…...

微服务保护 Sentinel

1.初识Sentinel 文章目录 1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制2.1.簇点链…...

【无标题】文本超过一行隐藏,鼠标经过显示提示框

创建一个组件专门用来出来文字的 <template><div class"tooltip-wrap"><el-tooltipref"tlp":content"text"effect"dark":disabled"!tooltipFlag":placement"placement"popper-class"tooltip…...

成为独立开发者有多难

首先自我介绍&#xff1a;我是一名前端开发工程师&#xff0c;7年的前端开发经验。CSDN 九段刀客_js,vue,ReactNative-CSDN博客,80多万的访问量&#xff0c;1万多的粉丝。 相信80%的程序员的终极梦想都是成为一名独立开发者&#xff0c;不用找工作有自己的产品可以有睡后收入。…...

C++ 正则表达式使用

C 11 以后有了正则表达式,对于处理字符串还是很方便的.由于我也再学习.所以下面的内容有可能描述的不准确,这些都是我自己代码中使用的,或者demo测试的. 首先使用正则表达式先要添加头文件 #include <regex> 然后编写自己的正则表达式: 例如我想匹配字符串中表示数字…...

VSCode任务tasks.json中的问题匹配器problemMatcher的问题匹配模式ProblemPattern详解

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、简介 在 VS Code 中&#xff0c;tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题&#xff08;错误、警告等&#xff09;。 problemMatcher有三种配置方式&#xff0c;具体可…...

CSS 实现文本框签名

<div class"textarea-prepend"><textarea rows"6" placeholder"请输入消息内容"></textarea></div>.textarea-prepend {position: relative;}.textarea-prepend textarea {width: 300px;}.textarea-prepend::before {ba…...

Spring 定时任务如何到达某一指定时间点后,触发任务机制

在Spring框架中&#xff0c;可以使用Spring Task来实现定时任务。以下是使用Spring Task触发定时任务的步骤&#xff1a; 添加依赖&#xff1a;首先&#xff0c;在你的项目中添加Spring Task的依赖。如果使用Maven管理项目&#xff0c;可以在pom.xml文件中添加以下依赖项&#…...

PDF Reader Pro 3.0.1.0(pdf阅读器)

PDF Reader Pro是一款功能强大的PDF阅读、注释、填写表单&签名、转换、OCR、合并拆分PDF页面、编辑PDF等软件。 它支持多种颜色的高亮、下划线&#xff0c;可以按需选择&#xff0c;没有空白处可以进行注释&#xff0c;这时候便签是你最佳的选择&#xff0c;不点开时自动隐…...

【rust:tauri-app踩坑记录】dangerousRemoteDomainIpcAccess 不适用于IP地址,临时解决方案

找到一个临时解决方案&#xff1a; 修改依赖包的源代码 找到 C:\Users%USER_HOME%.cargo\registry\src\index.crates.io-6f17d22bba15001f\tauri-1.4.1\src\scope\ipc.rs 修改 函数 remote_access_for 将 155 行中的 matches_domain 删除掉&#xff0c;去掉校验 if matches_w…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...