[PR #1159] [MERGED] Add Synology DSM certificate deployer integration #1158

Closed
opened 2026-03-03 01:07:58 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/certimate-go/certimate/pull/1159
Author: @Masterain98
Created: 1/13/2026
Status: Merged
Merged: 1/16/2026
Merged by: @fudiwei

Base: mainHead: dev


📝 Commits (10+)

📊 Changes

29 files changed (+1211 additions, -0 deletions)

View changed files

📝 go.mod (+2 -0)
📝 go.sum (+4 -0)
internal/certmgmt/deployers/sp_synologydsm.go (+30 -0)
📝 internal/domain/access.go (+8 -0)
📝 internal/domain/provider.go (+2 -0)
pkg/core/deployer/providers/synologydsm/synologydsm.go (+232 -0)
pkg/core/deployer/providers/synologydsm/synologydsm_test.go (+90 -0)
pkg/sdk3rd/synologydsm/api_auth_login.go (+91 -0)
pkg/sdk3rd/synologydsm/api_auth_logout.go (+44 -0)
pkg/sdk3rd/synologydsm/api_core_certificate_crt_list.go (+37 -0)
pkg/sdk3rd/synologydsm/api_core_certificate_import.go (+55 -0)
pkg/sdk3rd/synologydsm/api_core_certificate_service_set.go (+47 -0)
pkg/sdk3rd/synologydsm/api_info_query.go (+46 -0)
pkg/sdk3rd/synologydsm/client.go (+116 -0)
pkg/sdk3rd/synologydsm/types.go (+70 -0)
pkg/sdk3rd/synologydsm/utils.go (+46 -0)
pkg/utils/wait/wait.go (+88 -0)
ui/public/imgs/providers/synologydsm.png (+0 -0)
📝 ui/src/components/access/forms/AccessConfigFieldsProvider.tsx (+2 -0)
ui/src/components/access/forms/AccessConfigFieldsProviderSynologyDSM.tsx (+101 -0)

...and 9 more files

📄 Description

通过 HTTP/HTTPS Web API 部署 SSL 证书到群晖 DSM

  • 支持用户名/密码认证
  • 支持设置二步验证密钥,来让 Certimate 在执行任务时自动生成 TOTP 验证码 (引入了 pquerna/otp 库)
  • 支持导入新证书或通过名称或ID匹配来更新现有证书
  • 支持设置新证书为默认证书
  • 支持忽略当前 DSM 的过期或自签证书

截图

image image image image image

测试

在 DSM 6.2 中测试正常,部署证书成功。 DSM 7 没有测试环境,所以没测。但 API 是通用的,理论上没问题。


resolve #922


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/certimate-go/certimate/pull/1159 **Author:** [@Masterain98](https://github.com/Masterain98) **Created:** 1/13/2026 **Status:** ✅ Merged **Merged:** 1/16/2026 **Merged by:** [@fudiwei](https://github.com/fudiwei) **Base:** `main` ← **Head:** `dev` --- ### 📝 Commits (10+) - [`35fb146`](https://github.com/certimate-go/certimate/commit/35fb14687d08fbdb36dd8f532fdeadc014c388ce) Add Synology DSM certificate deployer integration (#1) - [`be2a379`](https://github.com/certimate-go/certimate/commit/be2a3793967e078388f0ab25ddab3fe7f5b372c7) code style - [`cc66e13`](https://github.com/certimate-go/certimate/commit/cc66e138cf71a3a1aafcb3a7cafaeadb67e6c6ee) remove unused fields - [`4d17a0d`](https://github.com/certimate-go/certimate/commit/4d17a0d4dc714bb76b9e7356060161b9974cf6ab) refactor - [`ab72208`](https://github.com/certimate-go/certimate/commit/ab722083585cc69a22875d73ae1d84fbcbdf7b6b) refactor - [`04288f5`](https://github.com/certimate-go/certimate/commit/04288f5f2ab60d4f2c2073f6d05e07865d352bf0) refactor - [`787b126`](https://github.com/certimate-go/certimate/commit/787b126f1d668ac24cab24122fbda3f8044a5391) Fix broken API endpoint path - [`eec4626`](https://github.com/certimate-go/certimate/commit/eec46261f9d508d237415be5bd2b2106a7fd2dd3) refactor - [`5a53383`](https://github.com/certimate-go/certimate/commit/5a53383cb96974f72a6f8372ec55925e257e0785) refactor - [`72ab76c`](https://github.com/certimate-go/certimate/commit/72ab76c1d9c3ca683df50c508fc0f7e3ebe8f786) Add 'create if not exists' option for Synology DSM deployer ### 📊 Changes **29 files changed** (+1211 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `go.mod` (+2 -0) 📝 `go.sum` (+4 -0) ➕ `internal/certmgmt/deployers/sp_synologydsm.go` (+30 -0) 📝 `internal/domain/access.go` (+8 -0) 📝 `internal/domain/provider.go` (+2 -0) ➕ `pkg/core/deployer/providers/synologydsm/synologydsm.go` (+232 -0) ➕ `pkg/core/deployer/providers/synologydsm/synologydsm_test.go` (+90 -0) ➕ `pkg/sdk3rd/synologydsm/api_auth_login.go` (+91 -0) ➕ `pkg/sdk3rd/synologydsm/api_auth_logout.go` (+44 -0) ➕ `pkg/sdk3rd/synologydsm/api_core_certificate_crt_list.go` (+37 -0) ➕ `pkg/sdk3rd/synologydsm/api_core_certificate_import.go` (+55 -0) ➕ `pkg/sdk3rd/synologydsm/api_core_certificate_service_set.go` (+47 -0) ➕ `pkg/sdk3rd/synologydsm/api_info_query.go` (+46 -0) ➕ `pkg/sdk3rd/synologydsm/client.go` (+116 -0) ➕ `pkg/sdk3rd/synologydsm/types.go` (+70 -0) ➕ `pkg/sdk3rd/synologydsm/utils.go` (+46 -0) ➕ `pkg/utils/wait/wait.go` (+88 -0) ➕ `ui/public/imgs/providers/synologydsm.png` (+0 -0) 📝 `ui/src/components/access/forms/AccessConfigFieldsProvider.tsx` (+2 -0) ➕ `ui/src/components/access/forms/AccessConfigFieldsProviderSynologyDSM.tsx` (+101 -0) _...and 9 more files_ </details> ### 📄 Description ### 通过 HTTP/HTTPS Web API 部署 SSL 证书到群晖 DSM - 支持用户名/密码认证 - 支持设置二步验证密钥,来让 Certimate 在执行任务时自动生成 TOTP 验证码 (引入了 pquerna/otp 库) - 支持导入新证书或通过名称或ID匹配来更新现有证书 - 支持设置新证书为默认证书 - 支持忽略当前 DSM 的过期或自签证书 ### 截图 <img width="1145" height="504" alt="image" src="https://github.com/user-attachments/assets/4c84355d-aa8e-480d-8ee0-83d434e23d2d" /> <img width="1128" height="1326" alt="image" src="https://github.com/user-attachments/assets/b99b7094-a447-4004-911a-8bc9c51d82e4" /> <img width="1089" height="1383" alt="image" src="https://github.com/user-attachments/assets/acfccd87-c1fd-462f-abf7-3cf2190d0f4a" /> <img width="1074" height="1011" alt="image" src="https://github.com/user-attachments/assets/75422e50-a278-45ab-b3f4-4cae334fcb61" /> <img width="1114" height="534" alt="image" src="https://github.com/user-attachments/assets/a403ae66-23a5-4d40-a017-f23519b68231" /> ### 测试 在 DSM 6.2 中测试正常,部署证书成功。 DSM 7 没有测试环境,所以没测。但 API 是通用的,理论上没问题。 --- resolve #922 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-03 01:07:58 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/certimate#1158
No description provided.