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

news2025/1/13 10:25:20

一,大致流程。


        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:///

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1240317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前缀和——DP35 【模板】二维前缀和

文章目录 🍎1. 题目🍒2. 算法原理🍅3. 代码实现 🍎1. 题目 题目链接:【模板】二维前缀和_牛客题霸_牛客网 (nowcoder.com) 描述 给你一个 n 行 m 列的矩阵 A ,下标从1开始。 接下来有 q 次查询&#xff0…

酷开科技OS——Coolita,让智能大屏走向国际

10月23日,2023中国—东盟视听传播论坛在南宁举行。作为第五届中国—东盟视听周重要活动之一,本次论坛以“共享新成果、共创新视听、共建新家园”为主题。来自中国和东盟的300余名专家学者、业界代表通过主旨演讲、主题发言、圆桌对话等方式进行深入探讨&…

python趣味编程-5分钟实现一个太空大战游戏(含源码、步骤讲解)

飞机战争游戏系统项目是使用Python编程语言开发的,是一个简单的桌面应用程序。 Python 中的飞机战争游戏使用pygame导入和随机导入。 Pygame 是一组跨平台的 Python 模块,专为编写视频游戏而设计。它包括设计用于 Python 编程语言的计算机图形和声音库。

飞桨——总结PPOCRLabel中遇到的坑

操作系统:win10 python环境:python3.9 paddleocr项目版本:2.7 1.报错:ModuleNotFoundError: No module named Polygon(已解决) 已解决所以没有复现报错内容 尝试方法一:直接使用pip命令安装&…

软件工程--软件建模--结构化方法通俗语言总结(暴肝超详解)(包含数据流图、数据字典、ER图、结构化设计和优化......)

目录 结构化分析 数据流图DFD 定义数据字典 实体关系图(E-R图) 结构化设计 变换映射 事务映射 优化结构设计 实例分析 详细设计(过程设计) 结构化方法是一种系统化开发软件的方法,该方法基于模块化的思想&am…

vue3项目中使用富文本编辑器

前言 适配 Vue3 的富文本插件不多,我看了很多插件官网,也有很多写的非常棒的,有UI非常优雅让人耳目一新的,也有功能非常全面的。 如: Quill,简单易用,功能全面。editorjs,UI极其优…

【OpenCV实现图像:使用OpenCV生成拼图效果】

文章目录 概要通用配置不考虑间隔代码实现考虑间隔代码实现小结 概要 概要: 拼图效果是一种将图像切割为相邻正方形并重新排列的艺术效果。在生成拼图效果时,可以考虑不同的模式,包括是否考虑间隔和如何处理不能整除的部分。 不考虑间隔&a…

〖大前端 - 基础入门三大核心之JS篇㊶〗- DOM事件传播和事件监听方法addEventListener()

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

华清远见嵌入式学习——网络编程——作业3

目录 作业要求&#xff1a;基于UDP的TFTP文件传输 代码 下载功能效果图​编辑 上传功能效果图 思维导图 模拟面试题和答案&#xff08;定期更新&#xff09; 作业要求&#xff1a;基于UDP的TFTP文件传输 完成文件的上传和下载功能 代码 #include<myhead.h>//实现…

CSS特效016:天窗扬起合上的效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

在PyCharm中正确设置Python项目

大家好&#xff0c;在Mac和Linux都支持Python&#xff0c;但许多开发者发现正确设置Python项目很困难。本文汇总了多平台中运行Python的方法&#xff0c;提高编程的效率&#xff0c;如下所示&#xff1a; 使用命令行运行Python。 在PyCharm&#xff08;免费社区版&#xff09;…

微信小程序蓝牙连接 uniApp蓝牙连接设备

蓝牙列表期待效果 代码 <template><view class"bluetooth-list"><view class"align-items option" style"justify-content: space-between;" v-for"item in bluetoothList" :key"item.deviceId"><vie…

java基础-集合

1、集合 在java中&#xff0c;集合&#xff08;Collection&#xff09;指的是一组数据容器&#xff0c;它可以存储多个对象&#xff0c;并且允许用户通过一些方法来访问与操作这些对象。j 集合的实现原理都基于数据结构和算法&#xff0c;如下&#xff1a; 数据结构&#xff1…

[ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务

本文收录于【#云计算入门与实践 - AWS】专栏中&#xff0c;收录 AWS 入门与实践相关博文。 本文同步于个人公众号&#xff1a;【云计算洞察】 更多关于云计算技术内容敬请关注&#xff1a;CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文&#xff1a; [ 云计算 | …

Redis-Redis缓存高可用集群

1、Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c;哨兵的配置略微复杂&#xff0c;并且性能和高可…

深度学习图像修复算法 - opencv python 机器视觉 计算机竞赛

文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步&#xff1a;将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…

Kubernetes(k8s)之Pod详解

文章目录 Kubernetes之Pod详解一、Pod介绍pod结构pod定义 二、Pod配置pod基本配置镜像拉取策略启动命令环境变量端口设置资源配额 三、Pod生命周期创建和终止初始化容器钩子函数容器探测重启策略 四、Pod调度定向调度NodeNameNodeSelector 亲和性调度NodeAffinityPodAffinityPo…

【11月比赛合集】48场可报名的数据挖掘大奖赛,任君挑选!

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 以下信息仅供参考&#xff0c;以比赛官网为准 目录 Kaggle&#xff08;9场比赛&#xff09;阿里天池&#xff08;…

Visual Studio连接unity编辑器_unity基础开发教程

Visual Studio连接unity编辑器 问题描述解决方法意外情况 问题描述 当我们在unity编辑器中打开C#脚本的时候发现Visual Studio没有连接unity编辑器&#xff0c;在编写代码的时候也没有unity关键字的提醒。 简单来说就是敲代码没有代码提示。 解决方法 这时候需要在unity中进行…

nodejs微信小程序+python+PHP-储能电站运营管理系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…