From b7b5d1c3f553c202e1b7f6a8aaef8a178ee9ac95 Mon Sep 17 00:00:00 2001 From: eryajf Date: Fri, 5 Apr 2024 20:20:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=96=87=E6=A1=A3=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30\350\264\271\346\234\215\345\212\241.md" | 27 + ...13\350\257\225\347\216\257\345\242\203.md" | 290 ++++---- ...50\347\275\262\346\265\201\347\250\213.md" | 96 +-- ...\345\256\211\350\243\205 Go-Ldap-Admin.md" | 633 ------------------ ...61\345\256\232\344\271\211\347\232\204.md" | 35 +- ...30\351\222\245\345\257\271\345\204\277.md" | 32 +- docs/index.md | 2 +- 7 files changed, 218 insertions(+), 897 deletions(-) create mode 100644 "docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/01.\344\272\247\345\223\201\346\246\202\350\277\260/04.\344\273\230\350\264\271\346\234\215\345\212\241.md" delete mode 100644 "docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/06.centos\345\256\211\350\243\205 Go-Ldap-Admin.md" diff --git "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/01.\344\272\247\345\223\201\346\246\202\350\277\260/04.\344\273\230\350\264\271\346\234\215\345\212\241.md" "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/01.\344\272\247\345\223\201\346\246\202\350\277\260/04.\344\273\230\350\264\271\346\234\215\345\212\241.md" new file mode 100644 index 0000000..666ece6 --- /dev/null +++ "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/01.\344\272\247\345\223\201\346\246\202\350\277\260/04.\344\273\230\350\264\271\346\234\215\345\212\241.md" @@ -0,0 +1,27 @@ +--- +title: 付费服务 +date: 2024-04-05 19:45:28 +permalink: /pages/7eab1c/ +--- + +项目为开源软件,严格遵照GPL协议,你可以免费部署使用。 + +如果部署或者使用过程遇到问题,我这边提供了付费咨询或安装服务,收费信息如下: + +| 类型 | 方式 | 费用 | +| :-----------: | :----: | :--------: | +| 问题咨询 | 远程 | 50元/次 | +| Docker 安装 | 远程 | 100元/次 | +| 原生安装 | 远程 | 200元/次 | +| 定制开发 | 远程 | 单独沟通 | + +通过支持微信和支付宝付款。 + +| 支付宝|微信| +|:--------: |:--------: | +|![](https://t.eryajf.net/imgs/2023/01/fc21022aadd292ca.png)| ![](https://t.eryajf.net/imgs/2023/01/834f12107ebc432a.png) | + +付款成功后请添加我微信并备注 `付款方式 - 服务类型`。 + +![](https://t.eryajf.net/imgs/2024/04/1712319409338.png) + diff --git "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/01.docker-compose\345\234\250\346\234\254\345\234\260\345\277\253\351\200\237\346\213\211\350\265\267\346\265\213\350\257\225\347\216\257\345\242\203.md" "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/01.docker-compose\345\234\250\346\234\254\345\234\260\345\277\253\351\200\237\346\213\211\350\265\267\346\265\213\350\257\225\347\216\257\345\242\203.md" index f5eb5ef..0cabff7 100644 --- "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/01.docker-compose\345\234\250\346\234\254\345\234\260\345\277\253\351\200\237\346\213\211\350\265\267\346\265\213\350\257\225\347\216\257\345\242\203.md" +++ "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/01.docker-compose\345\234\250\346\234\254\345\234\260\345\277\253\351\200\237\346\213\211\350\265\267\346\265\213\350\257\225\347\216\257\345\242\203.md" @@ -6,20 +6,14 @@ permalink: /pages/f081dc/ ## 前言 -::: warning -如果你对docker-compose不怎么熟悉,那么可以选择[生产环境部署流程](/pages/5769c4/)的方式进行部署。 -如需在生产环境使用docker-compose进行部署,请自行调整compose文件内容进行部署。 -::: - 你可以通过docker-compose在本地快速拉起进行体验。 快速拉起的容器包括: -- MySQL-5.7 +- MySQL-8.3 - openLDAP-1.4.0 - phpldapadmin-0.9.0 - go-ldap-admin-server -- go-ldap-admin-ui ## 端口列表 @@ -31,100 +25,144 @@ permalink: /pages/f081dc/ | MySQL | `3307:3306` | | openLDAP | `389:389` | | phpldapadmin | `8091:80` | -| go-ldap-admin | `8090:80`,`8888:8888` | +| go-ldap-admin | `8888:8888` | 拉起之前确认是否有与本地端口冲突的情况。 -## 执行拉起 - -```sh -$ git clone https://github.com/eryajf/go-ldap-admin.git +## 使用 sqlite 存储数据 -$ cd docs/docker-compose +在你合适的目录中创建`go-ldap-admin`文件夹,然后创建`docker-compose.yaml`文件,内容如下: -$ docker-compose up -d -``` - -当看到容器都正常运行之后,可以在本地进行访问:http://localhost:8090,用户名/密码:`admin`/`123456` - -如果想要访问PhpLdapAdmin,则可访问:http://localhost:8091,用户名/密码:`cn=admin,dc=eryajf,dc=net`/`123456` +```yaml +version: '3' +networks: + go-ldap-admin: + driver: bridge +services: + go-ldap-admin: + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/go-ldap-admin + container_name: go-ldap-admin + hostname: go-ldap-admin + restart: always + environment: + WAIT_HOSTS: openldap:389 + DB_DRIVER: sqlite3 + ports: + - 8888:8888 + volumes: + - ./data/go-ldap-admin:/app/data + depends_on: + - openldap + links: + - openldap:go-ldap-admin-openldap + networks: + - go-ldap-admin -> 如果并非通过localhost本机部署,则使用对应主机的IP加端口进行访问即可,例如你部署在 192.168.10.10 这台主机,则前端访问地址应该为:http://192.168.10.10:8090 + openldap: + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/openldap:1.4.1 + container_name: go-ldap-admin-openldap + hostname: go-ldap-admin-openldap + restart: always + environment: + TZ: Asia/Shanghai + LDAP_ORGANISATION: "eryajf.net" + LDAP_DOMAIN: "eryajf.net" + LDAP_ADMIN_PASSWORD: "123456" + command: [ '--copy-service' ] + volumes: + - ./data/openldap/database:/var/lib/ldap + - ./data/openldap/config:/etc/ldap/slapd.d + ports: + - 388:389 + networks: + - go-ldap-admin -## 服务验证 + phpldapadmin: + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/phpldapadmin:0.9.0 + container_name: go-ldap-admin-phpldapadmin + hostname: go-ldap-admin-phpldapadmin + restart: always + environment: + TZ: Asia/Shanghai + PHPLDAPADMIN_HTTPS: "false" + PHPLDAPADMIN_LDAP_HOSTS: go-ldap-admin-openldap + ports: + - 8091:80 + volumes: + - ./data/phpadmin:/var/www/phpldapadmin + depends_on: + - openldap + links: + - openldap:go-ldap-admin-openldap + networks: + - go-ldap-admin +``` -项目拉起之后,可通过如下命令验证各容器启动状态: +执行如下命令使容器后台启动: ```sh -$ docker-compose ps - Name Command State Ports --------------------------------------------------------------------------------------------------------------------------------- -go-ldap-admin-mysql /entrypoint.sh --default-a ... Up (healthy) 0.0.0.0:3307->3306/tcp,:::3307->3306/tcp, 33060/tcp -go-ldap-admin-openldap /container/tool/run --copy ... Up 0.0.0.0:388->389/tcp,:::388->389/tcp, 636/tcp -go-ldap-admin-phpldapadmin /container/tool/run Up 443/tcp, 0.0.0.0:8091->80/tcp,:::8091->80/tcp -go-ldap-admin-server /bin/sh -c ./wait && ./go- ... Up 0.0.0.0:8888->8888/tcp,:::8888->8888/tcp -go-ldap-admin-ui /bin/sh -c nginx -g "daemo ... Up 0.0.0.0:8090->80/tcp,:::8090->80/tcp +$ docker-compose up -d ``` -通过如下命令,可以验证后端服务是否正常: +应用启动之后,默认会创建对应的初始化数据,通过日志可以查看数据是否正常初始化,如果没有正常初始化,则下边的登陆可能无法正常进行。 -```sh -$ curl -s localhost:8888/api/base/ping | jq -{ - "code": 200, - "data": "pong", - "msg": "ok" -} -``` +当看到容器都正常运行之后,可以在本地进行访问:http://localhost:8888,用户名/密码:`admin`/`123456` -## 配置说明 +如果想要访问PhpLdapAdmin,则可访问:http://localhost:8091,用户名/密码:`cn=admin,dc=eryajf,dc=net`/`123456` -进入到docker-compose目录之后,目录层级与内容如下: +> 如果并非通过localhost本机部署,则使用对应主机的IP加端口进行访问即可,例如你部署在 192.168.10.10 这台主机,则前端访问地址应该为:http://192.168.10.10:8888 -```sh -$ tree -N docker-compose -docker-compose -├── config -│ ├── init.ldif -│ └── my.cnf -└── docker-compose.yaml - -1 directory, 3 files -``` +## 使用 MySQL 存储数据 + +### docker-compose集成MySQL -先来看主配置文件`docker-compose.yaml`: +在你合适的目录中创建`go-ldap-admin`文件夹,然后创建`docker-compose.yaml`文件,内容如下: ```yaml version: '3' - networks: go-ldap-admin: driver: bridge - services: + go-ldap-admin: + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/go-ldap-admin + container_name: go-ldap-admin + hostname: go-ldap-admin + restart: always + environment: + WAIT_HOSTS: mysql:3306, openldap:389 + ports: + - 8888:8888 + volumes: + - ./data/go-ldap-admin:/app/data + depends_on: + - mysql + - openldap + links: + - mysql:go-ldap-admin-mysql + - openldap:go-ldap-admin-openldap + networks: + - go-ldap-admin + mysql: - image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/mysql-server:5.7 - container_name: go-ldap-admin-mysql # 指定容器名称,如果不设置此参数,则由系统自动生成 + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/mysql:8.3 + container_name: go-ldap-admin-mysql hostname: go-ldap-admin-mysql - restart: always # 设置容器自启模式 + restart: always ports: - '3307:3306' environment: - TZ: Asia/Shanghai # 设置容器时区与宿主机保持一致 - MYSQL_ROOT_PASSWORD: 123456 # 设置root密码 + TZ: Asia/Shanghai + MYSQL_ROOT_PASSWORD: 123456 MYSQL_ROOT_HOST: "%" MYSQL_DATABASE: go_ldap_admin volumes: - # 数据挂载目录自行修改哦! - - /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致 - - ./data/mysql:/var/lib/mysql/data # 映射数据库保存目录到宿主机,防止数据丢失 - - ./config/my.cnf:/etc/mysql/my.cnf # 映射数据库配置文件 - command: --default-authentication-plugin=mysql_native_password #解决外部无法访问 + - ./data/mysql:/var/lib/mysql networks: - go-ldap-admin openldap: - image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/openldap:1.4.0 + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/openldap:1.4.1 container_name: go-ldap-admin-openldap hostname: go-ldap-admin-openldap restart: always @@ -137,7 +175,6 @@ services: volumes: - ./data/openldap/database:/var/lib/ldap - ./data/openldap/config:/etc/ldap/slapd.d - - ./config/init.ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom/init.ldif ports: - 388:389 networks: @@ -149,9 +186,9 @@ services: hostname: go-ldap-admin-phpldapadmin restart: always environment: - TZ: Asia/Shanghai # 设置容器时区与宿主机保持一致 - PHPLDAPADMIN_HTTPS: "false" # 是否使用https - PHPLDAPADMIN_LDAP_HOSTS: go-ldap-admin-openldap # 指定LDAP容器名称 + TZ: Asia/Shanghai + PHPLDAPADMIN_HTTPS: "false" + PHPLDAPADMIN_LDAP_HOSTS: go-ldap-admin-openldap ports: - 8091:80 volumes: @@ -159,81 +196,86 @@ services: depends_on: - openldap links: - - openldap:go-ldap-admin-openldap # ldap容器的 service_name:container_name + - openldap:go-ldap-admin-openldap networks: - go-ldap-admin +``` + +### 使用外置MySQL + +在你合适的目录中创建`go-ldap-admin`文件夹,然后创建`docker-compose.yaml`文件,内容如下: - go-ldap-admin-server: - image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/go-ldap-admin-server - container_name: go-ldap-admin-server - hostname: go-ldap-admin-server +> **`📢 注意`**:需提前创建数据库及用户,并修改如下配置信息,注意go-ldap-admin容器要能够连上`MYSQL_HOST`。 + +```yaml +version: '3' +networks: + go-ldap-admin: + driver: bridge +services: + go-ldap-admin: + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/go-ldap-admin + container_name: go-ldap-admin + hostname: go-ldap-admin restart: always environment: - TZ: Asia/Shanghai - WAIT_HOSTS: mysql:3306, openldap:389 + WAIT_HOSTS: openldap:389 + DB_DRIVER: mysql + # 请修改下面的 MySql 配置,需自行创建数据库和用户 + MYSQL_HOST: example + MYSQL_PORT: 3306 + MYSQL_USERNAME: root + MYSQL_PASSWORD: 123456 + MYSQL_DATABASE: go_ldap_admin ports: - 8888:8888 - # volumes: # 可按需打开此配置,将配置文件挂载到本地 可在服务运行之后,执行 docker cp go-ldap-admin-server:/app/config.yml ./config 然后再取消该行注释 - # - ./config/config.yml:/app/config.yml + volumes: + - ./data/go-ldap-admin:/app/data depends_on: - - mysql - openldap links: - - mysql:go-ldap-admin-mysql # ldap容器的 service_name:container_name - - openldap:go-ldap-admin-openldap # ldap容器的 service_name:container_name + - openldap:go-ldap-admin-openldap + networks: + - go-ldap-admin + + openldap: + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/openldap:1.4.1 + container_name: go-ldap-admin-openldap + hostname: go-ldap-admin-openldap + restart: always + environment: + TZ: Asia/Shanghai + LDAP_ORGANISATION: "eryajf.net" + LDAP_DOMAIN: "eryajf.net" + LDAP_ADMIN_PASSWORD: "123456" + command: [ '--copy-service' ] + volumes: + - ./data/openldap/database:/var/lib/ldap + - ./data/openldap/config:/etc/ldap/slapd.d + ports: + - 388:389 networks: - go-ldap-admin - go-ldap-admin-ui: - image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/go-ldap-admin-ui - container_name: go-ldap-admin-ui - hostname: go-ldap-admin-ui + phpldapadmin: + image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/phpldapadmin:0.9.0 + container_name: go-ldap-admin-phpldapadmin + hostname: go-ldap-admin-phpldapadmin restart: always environment: TZ: Asia/Shanghai + PHPLDAPADMIN_HTTPS: "false" + PHPLDAPADMIN_LDAP_HOSTS: go-ldap-admin-openldap ports: - - 8090:80 + - 8091:80 + volumes: + - ./data/phpadmin:/var/www/phpldapadmin depends_on: - - go-ldap-admin-server + - openldap links: - - go-ldap-admin-server:go-ldap-admin-server + - openldap:go-ldap-admin-openldap networks: - go-ldap-admin ``` -说明: - -- MySQL已经初始化创建了go_ldap_admin库,并且授权允许远程访问。 - -- openLDAP通过配置挂载的方式,已初始化了部分dn,以辅助平台功能演示,具体内容如下: - - ```sh - dn: ou=people,dc=eryajf,dc=net - ou: people - description: 用户根目录 - objectClass: organizationalUnit - - dn: ou=dingtalkroot,dc=eryajf,dc=net - ou: dingtalkroot - description: 钉钉根部门 - objectClass: top - objectClass: organizationalUnit - - dn: ou=wecomroot,dc=eryajf,dc=net - ou: wecomroot - description: 企业微信根部门 - objectClass: top - objectClass: organizationalUnit - - dn: ou=feishuroot,dc=eryajf,dc=net - ou: feishuroot - description: 飞书根部门 - objectClass: top - objectClass: organizationalUnit - ``` - -- 此compose文件中的镜像均已支持AMD与ARM架构,目前在M1版Mac电脑,Inter版CentOS7系统中测试通过。如果你在部署过程中遇到架构兼容问题,请在项目[issue](https://github.com/eryajf/go-ldap-admin/issues/new)中反馈。 - -- 考虑到大多数开发者在国内拉取dockerhub镜像并不顺畅,因此默认添加了上海交通大学的加速代理,详情参考这个项目:[Thanks-Mirror](https://github.com/eryajf/Thanks-Mirror)。 - -- 两个服务镜像:`eryajf/go-ldap-admin-server`,`eryajf/go-ldap-admin-ui`均使用latest标签,将会在每次项目主分支被合并之后自动构建,如果你想要升级项目,请先将本地镜像删除,然后重新拉取最新镜像。 +配置之后启动命令及访问方式同上。 \ No newline at end of file diff --git "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/02.\347\224\237\344\272\247\347\216\257\345\242\203\345\216\237\347\224\237\351\203\250\347\275\262\346\265\201\347\250\213.md" "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/02.\347\224\237\344\272\247\347\216\257\345\242\203\345\216\237\347\224\237\351\203\250\347\275\262\346\265\201\347\250\213.md" index 436554d..9515b64 100644 --- "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/02.\347\224\237\344\272\247\347\216\257\345\242\203\345\216\237\347\224\237\351\203\250\347\275\262\346\265\201\347\250\213.md" +++ "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/02.\347\224\237\344\272\247\347\216\257\345\242\203\345\216\237\347\224\237\351\203\250\347\275\262\346\265\201\347\250\213.md" @@ -20,7 +20,9 @@ permalink: /pages/5769c4/ 以下文档为旧版,其中制品的获取是通过下载源码之后,编译得来,现在已经对前后端增加了自动构建制品的能力,因此下边编译项目的步骤你可以忽略,参考这里的步骤,直接通过下载release中的制品即可获得。 -### 后端 +现在后端已经把前端embed,因此只需要启动后端二进制即可。 + +### 下载二进制 你可以在[这里](https://github.com/eryajf/go-ldap-admin/releases)找到最新版本: @@ -38,65 +40,13 @@ $ tree -N ├── README.md ├── config.yml ├── go-ldap-admin -├── go-ldap-admin-priv.pem -├── go-ldap-admin-pub.pem -├── go-ldap-admin-v0.5.9-linux-amd64.tar.gz -└── rbac_model.conf +└── go-ldap-admin-v0.5.9-linux-amd64.tar.gz -0 directories, 8 files -``` - -### 前端 - -你可以在[这里](https://github.com/eryajf/go-ldap-admin-ui/releases)找到最新版本: - -```sh -$ wget https://github.com/eryajf/go-ldap-admin-ui/releases/download/v0.5.12/go-ldap-admin-ui-v0.5.12.tar.gz -$ tar xf go-ldap-admin-ui-v0.5.12.tar.gz -``` - -前端制品解压之后,包含内容如下: - -```sh -$ tree -N go-ldap-admin-ui -go-ldap-admin-ui -├── LICENSE -├── README.md -├── default.conf -└── dist - ├── favicon.ico - ├── goldapadmin.ico - ├── index.html - └── static - ├── css - │   ├── app.002b83d7.css - │   ├── 等等========等等 - │   └── chunk-libs.3dfb7769.css - ├── fonts - │   ├── element-icons.535877f5.woff - │   └── element-icons.732389de.ttf - ├── img - │   ├── 401.089007e7.gif - │   ├── 404.a57b6f31.png - │   ├── 404_cloud.0f4bc32b.png - │   ├── goldapadmin.ecbc528a.png - │   └── login.e49a1d4c.jpeg - └── js - ├── app.2b71e8e0.js - ├── 等等========等等 - └── chunk-libs.43b732db.js - -6 directories, 39 files +0 directories, 5 files ``` ## 部署后端 -### 编译项目 - -```sh -$ make build-linux -``` - ### 更改配置 根据实际情况调整配置文件内容。 @@ -144,32 +94,6 @@ $ curl -s localhost:8888/api/base/ping | jq } ``` -## 部署前端 - -前端通过OpenResty代理的方式进行部署,同样,关于OpenResty的部署这里就不再赘述,感兴趣的同学可以参考:[https://wiki.eryajf.net/pages/296104/](https://wiki.eryajf.net/pages/296104/)。 - -### 修改配置 - -编译项目之前,需要将`.env.production`中的`VUE_APP_BASE_API`配置项,更改为正式部署环境的域名。 - -```sh -$ vim .env.production -VUE_APP_BASE_API = 'http://demo-go-ldap-admin.eryajf.net/' -``` - -### 编译项目 - -```sh -# 一些直接从GitHub拉取的依赖需要进行如下配置 -$ git config --global url."https://".insteadOf git:// - -$ npm install --registry=http://registry.npmmirror.com - -$ yarn build:prod -``` - -编译完成之后,会在本地生成dist目录,需将其同步到服务器。 - ### OpenResty配置 在OpenResty中添加如下配置,代理本项目: @@ -181,14 +105,7 @@ server { listen 80; server_name demo-go-ldap-admin.eryajf.net; - root /data/www/go-ldap-admin.eryajf.net/dist; - location / { - try_files $uri $uri/ /index.html; - add_header Cache-Control 'no-store'; - } - - location /api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -200,6 +117,3 @@ server { 配置重载之后,即可在浏览器通过[http://demo-go-ldap-admin.eryajf.net](http://demo-go-ldap-admin.eryajf.net)进行访问。 -## 数据备份 - -待补充,理论上仅备份MySQL的go_ldap_admin库即可,平台将提供数据一键灌入的能力。 \ No newline at end of file diff --git "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/06.centos\345\256\211\350\243\205 Go-Ldap-Admin.md" "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/06.centos\345\256\211\350\243\205 Go-Ldap-Admin.md" deleted file mode 100644 index fc217cc..0000000 --- "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/11.\345\256\211\350\243\205\345\205\245\351\227\250/06.centos\345\256\211\350\243\205 Go-Ldap-Admin.md" +++ /dev/null @@ -1,633 +0,0 @@ ---- -title: CentOS7 安装 Go-Ldap-Admin -date: 2022-08-13 16:59:32 -permalink: /pages/866885/ -author: - name: maliang366359 - link: https://github.com/maliang366359 ---- - -**本文由[maliang366359](https://github.com/maliang366359)同学贡献,再次表示感谢。!** - -> `📢 注意:`此文档仅作为一种部署方式的选择,但因为原生部署步骤比较繁复,反而增加了openLDAP的使用难度。因此并不推荐使用这种方式进行部署,大量实践证明,直接使用docker拉起的openLDAP足够企业内部使用。 - - -::: danger - -再一次,认真提醒,本篇文档需对ldap非常熟悉才可参考,否则非常不建议参考本篇文档进行部署,只建议参考docker-compose快速拉起进行部署。项目issue已经有不少人反馈参照此文档部署的难度以及最后的结果不符合预期。 - -请勿舍近求远。切记。 - -(因此文档是社区提交过来的,不想做删除,请知悉。) - -::: - -首先准备一台干净的服务器,配置最好不低于2C4G,当然如果MySQL不在本机部署,那可以将配置降为1C2G。 - -## 安装数据库 - -### 安装MySQL:5.7数据库 - -一、安装YUM Repo - -1、由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。 - -官网地址是:https://dev.mysql.com/downloads/repo/yum/ - -最新的源下载命令: - -```sh -wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm -``` - - -2、然后进行repo的安装: - -```sh -rpm -ivh mysql80-community-release-el7-5.noarch.rpm -``` - -执行完成后会可以查看本机可用数据库版本 - -```sh -yum repolist all | grep mysql -``` - -可以根据自己的需要,关闭,或者开启想要的版本 - -```sh -# 关闭8.0 -yum-config-manager --disable mysql80-community - -# 开启5.7 -yum-config-manager --enable mysql57-community -``` - -二、使用yum命令即可完成安装 - -1、安装命令: - -```sh -yum install mysql-server -``` - -2、启动msyql: - -```sh -systemctl start mysqld -``` - -3、获取安装时的临时密码(在第一次登录时就是用这个密码): - -```sh -grep 'temporary password' /var/log/mysqld.log -``` - - 登录之后,必须要改一次密码,密码必须设置强密码 - -```sh -alter user 'root'@'localhost' identified by 'Eryajf@123'; -``` - - -4、倘若没有获取临时密码,则删除原来安装过的mysql残留的数据 - -```sh -rm -rf /var/lib/mysql -``` - -5、再启动mysql - -```sh -systemctl start mysqld #启动MySQL -``` - -6、创建数据库 - -```sh -CREATE USER 'ldap'@'localhost' IDENTIFIED BY 'Eryajf@123'; - -CREATE DATABASE IF NOT EXISTS `go_ldap_admin` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - -GRANT ALL PRIVILEGES on `go_ldap_admin`.* to 'ldap'@'localhost'; - -FLUSH privileges; -``` - -### 安装openLDAP - -1:使用yum方式安装 - -```sh -yum install openldap openldap-clients openldap-servers -``` - -2:复制一个默认配置到指定目录下,并授权,这一步一定要做,然后再启动服务,不然生产密码时会报错 - -```sh -cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG -``` - -3:授权给ldap用户,此用户yum安装时便会自动创建 - -```sh -chown -R ldap /var/lib/ldap/DB_CONFIG -``` - -4:启动服务,先启动服务,配置后面再进行修改 - -```sh -systemctl start slapd - -systemctl enable slapd -``` - -查看状态,正常启动则ok - -```sh -systemctl status slapd -``` - -5:修改openldap配置 - -这里就是重点中的重点了,从openldap2.4.23版本开始,所有配置都保存在`/etc/openldap/slapd.d`目录下的`cn=config`文件夹内,不再使用`slapd.conf`作为配置文件。配置文件的后缀为 `ldif`,且每个配置文件都是通过命令自动生成的,任意打开一个配置文件,在开头都会有一行注释,说明此为自动生成的文件,请勿编辑,使用ldapmodify命令进行修改 - ---- - -6:安装openldap后,会有三个命令用于修改配置文件,分别为ldapadd, ldapmodify, ldapdelete,顾名思义就是添加,修改和删除。而需要修改或增加配置时,则需要先写一个ldif后缀的配置文件,然后通过命令将写的配置更新到slapd.d目录下的配置文件中去 - ---- - -7:初始化配置 - -生成管理员密码,记录下这个密码,{SSHA}这一串,后面需要用到 - -```sh -slappasswd -s 123456 - -{SSHA}LSgYPTUW4zjGtIVtuZ8cRUqqFRv1tWpE -``` - -新增修改密码文件,ldif为后缀,文件名随意,不要在/etc/openldap/slapd.d/目录下创建类似文件 -生成的文件为需要通过命令去动态修改ldap现有配置,如下,我在家目录下,创建文件 - -```sh -cd ~ - -vim changepwd.ldif - -dn: olcDatabase={0}config,cn=config -changetype: modify -add: olcRootPW -olcRootPW: {SSHA}LSgYPTUW4zjGtIVtuZ8cRUqqFRv1tWpE - - -# 这里解释一下这个文件的内容: -# 第一行执行配置文件,这里就表示指定为 cn=config/olcDatabase={0}config 文件。 -# 你到/etc/openldap/slapd.d/目录下就能找到此文件 -# 第二行 changetype 指定类型为修改 -# 第三行 add 表示添加 olcRootPW 配置项 -# 第四行指定 olcRootPW 配置项的值 -# 在执行下面的命令前,你可以先查看原本的olcDatabase={0}config文件, -# 里面是没有olcRootPW这个项的,执行命令后,你再看就会新增了olcRootPW项, -# 而且内容是我们文件中指定的值加密后的字符串 -``` - -执行命令,修改ldap配置,通过-f执行文件 - -```sh -ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif -``` - - -查看`olcDatabase={0}config`内容,新增了一个`olcRootPW`项。 - -```sh -cat /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif -``` - -**切记不能直接修改/etc/openldap/slapd.d/目录下的配置。** - ---- - -我们需要向 LDAP 中导入一些基本的 Schema。这些 Schema 文件位于`/etc/openldap/schema/`目录中,schema控制着条目拥有哪些对象类和属性,可以自行选择需要的进行导入, - -```sh -依次执行下面的命令,导入基础的一些配置,我这里将所有的都导入一下, -其中core.ldif是默认已经加载了的,不用导入 - -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif - -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif - -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif -ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif -``` - -#### 修改域名,新增con.ldif, -这里我自定义的域名为 eryajf.net,管理员用户账号为admin。 -如果要修改,则修改文件中相应的dc=eryajf,dc=net为自己的域名,密码切记改成上面重新生成的哪个。 - -```sh -$ vim con.ldif - -dn: olcDatabase={1}monitor,cn=config -changetype: modify -replace: olcAccess -olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=eryajf,dc=net" read by * none - -dn: olcDatabase={2}hdb,cn=config -changetype: modify -replace: olcSuffix -olcSuffix: dc=eryajf,dc=net - -dn: olcDatabase={2}hdb,cn=config -changetype: modify -replace: olcRootDN -olcRootDN: cn=admin,dc=eryajf,dc=net - -dn: olcDatabase={2}hdb,cn=config -changetype: modify -replace: olcRootPW -olcRootPW: {SSHA}LSgYPTUW4zjGtIVtuZ8cRUqqFRv1tWpE - -dn: olcDatabase={2}hdb,cn=config -changetype: modify -add: olcAccess -olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=eryajf,dc=net" write by anonymous auth by self write by * none -olcAccess: {1}to dn.base="" by * read -olcAccess: {2}to * by dn="cn=admin,dc=eryajf,dc=net" write by * read -``` - -执行命令,修改配置 - -```sh -ldapmodify -Y EXTERNAL -H ldapi:/// -f con.ldif -``` - -最后这里有5个修改,所以执行会输出5行表示成功。 - -然后,启用memberof功能 - -新增add-memberof.ldif, #开启memberof支持并新增用户支持memberof配置 - -```sh -# 新增add-memberof.ldif, #开启memberof支持并新增用户支持memberof配置 -$ vim add-memberof.ldif - -dn: cn=module{0},cn=config -cn: modulle{0} -objectClass: olcModuleList -objectclass: top -olcModuleload: memberof.la -olcModulePath: /usr/lib64/openldap - -dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config -objectClass: olcConfig -objectClass: olcMemberOf -objectClass: olcOverlayConfig -objectClass: top -olcOverlay: memberof -olcMemberOfDangling: ignore -olcMemberOfRefInt: TRUE -olcMemberOfGroupOC: groupOfUniqueNames -olcMemberOfMemberAD: uniqueMember -olcMemberOfMemberOfAD: memberOf -``` -------------------------------------------------------------- -```sh -# 新增refint1.ldif文件 -$ vim refint1.ldif - -dn: cn=module{0},cn=config -add: olcmoduleload -olcmoduleload: refint -``` -------------------------------------------------------------- -```sh -# 新增refint2.ldif文件 -$ vim refint2.ldif - -dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config -objectClass: olcConfig -objectClass: olcOverlayConfig -objectClass: olcRefintConfig -objectClass: top -olcOverlay: refint -olcRefintAttribute: memberof uniqueMember manager owner -``` -------------------------------------------------------------- - -**依次执行下面命令,加载配置,顺序不能错** - -```sh -ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add-memberof.ldif -``` ---- - -```sh -ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif -``` ---- - -```sh -ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif -``` ---- - -**创建一个组织** - -到此,配置修改完了,在上述基础上,我们来创建一个叫做 eryajf company 的组织,并在其下创建一个 admin 的组织角色(该组织角色内的用户具有管理整个 LDAP 的权限)和 一些初始化必须的组织: - ----------------------------------------------------------- -```sh -# 新增配置文件 -$ vim base.ldif - -dn: dc=eryajf,dc=net -objectClass: top -objectClass: dcObject -objectClass: organization -o: Eryajf Company -dc: eryajf - -dn: cn=admin,dc=eryajf,dc=net -objectClass: organizationalRole -cn: admin - -dn: ou=people,dc=eryajf,dc=net -ou: people -description: 用户根目录 -objectClass: organizationalUnit - -dn: ou=dingtalkroot,dc=eryajf,dc=net -ou: dingtalkroot -description: 钉钉根部门 -objectClass: top -objectClass: organizationalUnit - -dn: ou=wecomroot,dc=eryajf,dc=net -ou: wecomroot -description: 企业微信根部门 -objectClass: top -objectClass: organizationalUnit - -dn: ou=feishuroot,dc=eryajf,dc=net -ou: feishuroot -description: 飞书根部门 -objectClass: top -objectClass: organizationalUnit -``` ----------------------------------------------------------- - -这里注意,可以把eryajf和net改成自己的 - - 执行命令,添加配置, 这里要注意修改域名为自己配置的域名,然后需要输入上面我们生成的密码`123456` - -```sh -ldapadd -x -D cn=admin,dc=yaobili,dc=com -W -f base.ldif -``` - -## 安装OpenResty - -配置阿里和openresty的yum源: - -```sh -$ yum -y install yum-utils - -$ yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo - -$ yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo -``` - - -安装 - -```sh -yum install openresty -``` - -创建一些软链,便于维护或者规范 - -```sh -ln -snf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx - -ln -snf /usr/local/openresty/nginx/conf /etc/nginx -``` - -启动服务 - -```sh -systemctl start openresty - -systemctl status openresty -``` - -## 下载前后端制品 - - -### 后端 - -你可以在[这里](https://github.com/eryajf/go-ldap-admin/releases)找到最新版本: - -```sh -$ wget https://github.com/eryajf/go-ldap-admin/releases/download/v0.5.9/go-ldap-admin-v0.5.9-linux-amd64.tar.gz -$ tar xf go-ldap-admin-v0.5.9-linux-amd64.tar.gz -``` - -其中后端制品解压之后,包含内容如下: - -```sh -$ tree -N -. -├── LICENSE -├── README.md -├── config.yml -├── go-ldap-admin -├── go-ldap-admin-priv.pem -├── go-ldap-admin-pub.pem -├── go-ldap-admin-v0.5.9-linux-amd64.tar.gz -└── rbac_model.conf - -0 directories, 8 files -``` - -### 前端 - -你可以在[这里](https://github.com/eryajf/go-ldap-admin-ui/releases)找到最新版本: - -```sh -$ wget https://github.com/eryajf/go-ldap-admin-ui/releases/download/v0.5.12/go-ldap-admin-ui-v0.5.12.tar.gz -$ tar xf go-ldap-admin-ui-v0.5.12.tar.gz -``` - -前端制品解压之后,包含内容如下: - -```sh -$ tree -N go-ldap-admin-ui -go-ldap-admin-ui -├── LICENSE -├── README.md -├── default.conf -└── dist - ├── favicon.ico - ├── goldapadmin.ico - ├── index.html - └── static - ├── css - │ ├── app.002b83d7.css - │ ├── 等等========等等 - │ └── chunk-libs.3dfb7769.css - ├── fonts - │ ├── element-icons.535877f5.woff - │ └── element-icons.732389de.ttf - ├── img - │ ├── 401.089007e7.gif - │ ├── 404.a57b6f31.png - │ ├── 404_cloud.0f4bc32b.png - │ ├── goldapadmin.ecbc528a.png - │ └── login.e49a1d4c.jpeg - └── js - ├── app.2b71e8e0.js - ├── 等等========等等 - └── chunk-libs.43b732db.js - -6 directories, 39 files -``` - -## 部署后端 - -将制品放置到项目运行目录: - -```sh -mv go-ldap-admin /data/www -``` - -更改配置,根据实际情况调整配置文件内容 - -```sh -vim config.yml -``` - -修改数据库信息和LDAP连接信息。 - - -systemd管理,基于systemd进行管理 - ---- -```sh -$ cat /usr/lib/systemd/system/go-ldap-admin.service - -[Unit] -Description=Go Ldap Admin Service - -[Service] -WorkingDirectory=/data/www/go-ldap-admin/ -ExecStart=/data/www/go-ldap-admin/go-ldap-admin -Restart=always -RestartSec=10s -StartLimitInterval=65s -StartLimitBurst=6 - -[Install] -WantedBy=multi-user.target -``` - - -启动项目 - -```sh -$ systemctl daemon-reload - -$ systemctl start go-ldap-admin - -$ systemctl status go-ldap-admin -``` - -## 部署前端 - -将前端制品放置到静态目录下: - -```sh -mv go-ldap-admin-ui /data/www//demo-go-ldap-admin.eryajf.net -``` - -前端通过OpenResty代理的方式进行部署。 - -**在OpenResty中添加如下配置,代理本项目** - - ---- -```nginx -$ cat /etc/nginx/conf/nginx.conf - -worker_processes 1; -events { -worker_connections 1024; -} - -http { -include mime.types; -default_type application/octet-stream; -sendfile on; - -keepalive_timeout 65; - server { - listen 80; - server_name demo-go-ldap-admin.eryajf.net; - root /data/www//demo-go-ldap-admin.eryajf.net/dist; - location / { - try_files $uri $uri/ /index.html; - add_header Cache-Control 'no-store'; - } - - location /api/ { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_pass http://127.0.0.1:8888; - } - } -} -``` - -检查一下几个服务是否都开启 - -`数据库` - -```sh -systemctl status mysqld -``` - -`LDAP` - -```sh -systemctl status slapd -``` - -`后端` - -```sh -systemctl status go-ldap-admin -``` - -`代理` - -```sh -systemctl status openresty -``` - -都启动之后,就可以打开web管理页面 - -`http:ip:端口` - -默认用户名:admin,默认密码是LDAP设置的密码。 diff --git "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/02.\345\246\202\344\275\225\345\260\206ldap\344\270\255\347\232\204basedn\346\233\264\346\224\271\344\270\272\350\207\252\345\267\261\345\256\232\344\271\211\347\232\204.md" "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/02.\345\246\202\344\275\225\345\260\206ldap\344\270\255\347\232\204basedn\346\233\264\346\224\271\344\270\272\350\207\252\345\267\261\345\256\232\344\271\211\347\232\204.md" index bd5870d..cf61f3d 100644 --- "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/02.\345\246\202\344\275\225\345\260\206ldap\344\270\255\347\232\204basedn\346\233\264\346\224\271\344\270\272\350\207\252\345\267\261\345\256\232\344\271\211\347\232\204.md" +++ "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/02.\345\246\202\344\275\225\345\260\206ldap\344\270\255\347\232\204basedn\346\233\264\346\224\271\344\270\272\350\207\252\345\267\261\345\256\232\344\271\211\347\232\204.md" @@ -8,21 +8,7 @@ permalink: /pages/adb742/ 在整个go-ldap-admin项目中,通过docker-compose拉起的测试环境时,默认的`Base Dn`都是 `dc=eryajf,dc=net`,大家想要用在自己的生产环境,自然就需要更改,本文就来讲一下更改这个配置项需要注意的一些问题。 -首先我们看下要实现这一需求,所需要准备的文件以及目录分布: - -```sh -$ tree -N docker-compose/ -docker-compose/ -├── config -│   ├── config.yml -│   ├── init.ldif -│   └── my.cnf -└── docker-compose.yml - -1 directory, 4 files -``` - -其中的文件均取自与项目的默认配置: +核心点在于如下两个配置文件: - config.yml取自:[config.yml](https://github.com/eryajf/go-ldap-admin/blob/main/config.yml)。 - docker-compose目录取自:[docker-compose](https://github.com/eryajf/go-ldap-admin/tree/main/docs/docker-compose)。 @@ -37,12 +23,6 @@ docker-compose/ - 在`config.yml`中搜索`dc=eryajf,dc=net`,然后全文替换为`dc=liql,dc=com`。 - 通常你的`admin密码`应该也不是`123456`,那么需要修改`admin-pass:`对应字段的值。 -- 还需要调整连接MySQL与openLDAP的地址:这一步的操作,与Dockerfile中的定义是一致的。 - -``` -sed -i 's@localhost:389@openldap:389@g' config/config.yml \ - && sed -i 's@host: localhost@host: mysql@g' config/config.yml -``` 这是因为docker-compose内,go-ldap-admin-server通过另外两个容器的名字进行连接。 @@ -50,21 +30,10 @@ sed -i 's@localhost:389@openldap:389@g' config/config.yml \ - 在 `docker-compose.yml` 中搜索 `eryajf.net` ,然后全文替换为 `liql.com`。 - 如果`admin`的密码有修改,也要注意与之对应,需要改这行:`LDAP_ADMIN_PASSWORD: "123456"`。 -- 还需要取消掉server的volume的注释:即取消如下两行注释。 - -```yml - volumes: - - ./config/config.yml:/app/config.yml -``` 取消注释之后,要注意遵守yml格式的缩进,否则会解析失败。 - -### 第三步: 调整init.ldif - -在 `config/init.ldif` 中搜索 `dc=eryajf,dc=net` ,然后全文替换为 `dc=liql,dc=com`。这里的内容是ldap拉起时`初始化`的一些信息。 - -### 第四步: 启动 +### 第三步: 启动 `docker-compose up -d` 启动项目,即可在平台进行登陆。 diff --git "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/03.\345\246\202\344\275\225\350\207\252\345\256\232\344\271\211\347\247\230\351\222\245\345\257\271\345\204\277.md" "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/03.\345\246\202\344\275\225\350\207\252\345\256\232\344\271\211\347\247\230\351\222\245\345\257\271\345\204\277.md" index 089e064..62af58c 100644 --- "a/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/03.\345\246\202\344\275\225\350\207\252\345\256\232\344\271\211\347\247\230\351\222\245\345\257\271\345\204\277.md" +++ "b/docs/01.\351\241\271\347\233\256\347\233\270\345\205\263/41.\345\270\270\350\247\201\351\227\256\351\242\230/03.\345\246\202\344\275\225\350\207\252\345\256\232\344\271\211\347\247\230\351\222\245\345\257\271\345\204\277.md" @@ -4,7 +4,7 @@ date: 2022-12-13 22:11:06 permalink: /pages/119ea3/ --- -`先说:`强烈建议各位都自定义生成一个秘钥对儿,不要使用项目默认的秘钥对儿。 +一般来说,这种管理平台都是内网部署,因此不建议你折腾秘钥对儿这个事儿,会比较折腾。 有朋友在部署项目的时候,想要自定义加密认证的秘钥对,本来来讲下如何配置。 @@ -14,19 +14,6 @@ permalink: /pages/119ea3/ 要想自定义秘钥对,首先我们需要知道哪里用到了,这样正确地配置自定义的秘钥,从而正常使用。 -### 后端 - -在后端的配置文件`config.yml`中,我们看到这两个配置项: - -``` - # rsa公钥文件路径(config.yml相对路径, 也可以填绝对路径) - rsa-public-key: go-ldap-admin-pub.pem - # rsa私钥文件路径(config.yml相对路径, 也可以填绝对路径) - rsa-private-key: go-ldap-admin-priv.pem -``` - -那么新的秘钥对就要替换如上两个文件的内容。 - ### 前端 有的同学只替换了后端,导致请求的时候,用户密码验证失败,其实前端也用到了,用到了公钥,从而用户在登陆的时候,前端发给后端的请求中,能够将用户密码加密传输,而非明文传输。 @@ -41,6 +28,21 @@ VUE_APP_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ **`注意:`**如上配置存储的是公钥内容,可以将公钥内容合并成单行作为一个字符串,放到配置文件当中。 +### 后端 + +在后端中,默认读取如下两个配置文件: + +``` + config/go-ldap-admin-pub.pem + config/go-ldap-admin-priv.pem +``` + +那么新的秘钥对就要替换如上两个文件的内容。 + +> 要注意这两个文件不是静态读取,而是会被编译进二进制,因此你需要在项目源码中,替换这两个文件内容,然后重新编译项目,才能把新的内容编译到二进制当中。另外,因为要重新编译后端,那么前端的dist文件也需要重新构建,因此需要先完成前端的配置,再进行后端的调整。 + + + ## 如何自定义 通过如下两条命令可以生成自定义的秘钥对: @@ -50,7 +52,7 @@ $ openssl genrsa -out go-ldap-admin-priv.pem 1024 $ openssl rsa -in go-ldap-admin-priv.pem -pubout -out go-ldap-admin-pub.pem ``` -然后把生成的两个文件放到后端的二进制同级目录下,把公钥的内容,配置到前端的配置文件中,然后重新部署项目。 +然后把生成的两个文件替换后端的两个配置文件,把公钥的内容,配置到前端的配置文件中,然后重新部署项目。 ## 注意事项 diff --git a/docs/index.md b/docs/index.md index ada6207..b18c9c6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -49,7 +49,6 @@ postList: none 在线环境可能不稳,如果遇到访问异常,或者数据错乱,请联系我进行修复。 -> 注:因服务器资源有限,固不再提供demo环境,请自行通过docker-compose一键拉起体验。(20240330) ## 👨‍💻 代码托管 @@ -145,3 +144,4 @@ postList: none 在使用过程中有任何问题和想法,请提 [Issue](https://github.com/eryajf/go-ldap-admin/issues)。 你也可以在 Issue 查看别人提的问题和给出解决方案。 +也可以选择[付费](/pages/7eab1c/)服务。