An open-source and free self-hosted SSL certificates ACME tool, automates the full-cycle of issuance, deployment, renewal, and monitoring visually. 完全开源免费的自托管 SSL 证书 ACME 工具,申请、部署、续期、监控全流程自动化可视化,支持各大主流云厂商。
This report summarizes scanner evidence for certimate-go/certimate, a Go project with 9,363 GitHub stars. SynthScan examined 196,224 lines of code across 2225 source files, recording 1634 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 7.0 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 31 finding(s).
Are imports declared and package/API names verified? 1600 finding(s).
Are wrappers, guards, and repeated structures necessary? 9 finding(s).
Which changes need focused human review? 1634 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1634 distinct pattern matches across 6 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/src/i18n/resources/zh/nls.login.json | 7 | "placeholder": "请输入用户名/邮箱" | CODE |
| LOW | ui/src/i18n/resources/zh/nls.login.json | 11 | "placeholder": "请输入密码" | CODE |
| LOW | ui/src/i18n/resources/zh/nls.certificate.json | 17 | "placeholder": "按证书名称或序列号搜索……" | CODE |
| LOW | ui/src/i18n/resources/zh/nls.certificate.json | 56 | "placeholder": "请输入 PFX 导出密码" | CODE |
| LOW | ui/src/i18n/resources/zh/nls.certificate.json | 60 | "placeholder": "请选择 PFX 编码器", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.certificate.json | 78 | "placeholder": "请输入 JKS 别名" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.certificate.json | 82 | "placeholder": "请输入 JKS 私钥访问口令" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.certificate.json | 86 | "placeholder": "请输入 JKS 密钥库存储口令" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.preset.json | 46 | "placeholder": "请输入模板名称", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.preset.json | 53 | "placeholder": "请输入通知主题" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.preset.json | 57 | "placeholder": "请输入通知内容" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.preset.json | 61 | "placeholder": "请输入脚本命令" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 71 | "placeholder": "请输入授权名称" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 75 | "placeholder": "请选择提供商", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 78 | "placeholder": "搜索提供商……" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 84 | "placeholder": "请输入 ACME EAB KID" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 88 | "placeholder": "请输入 ACME EAB HMAC Key" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 102 | "placeholder": "请输入 1Panel 服务地址", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 107 | "placeholder": "请选择 1Panel 版本" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 111 | "placeholder": "请输入 1Panel 接口密钥", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 116 | "placeholder": "请输入三五互联代理商用户名" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 120 | "placeholder": "请输入三五互联代理商 API 密码" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 127 | "placeholder": "请输入帝恩思 API Key", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 132 | "placeholder": "请输入帝恩思 API Secret", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 137 | "placeholder": "请输入服务端点", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 142 | "placeholder": "请输入 ACME EAB KID" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 146 | "placeholder": "请输入 ACME EAB HMAC Key" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 150 | "placeholder": "请输入 ACME-DNS 服务地址" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 154 | "placeholder": "请输入 ACME-DNS 凭证文件\r\n\r\n{\r\n \"allowfrom\": [\r\n \"192.168.100.1/24\",\r\n \"1.2.3.4/32\ | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 159 | "placeholder": "请输入服务端点", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 164 | "placeholder": "请选择模式", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 169 | "placeholder": "请输入 HTTP 基本认证用户名", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 174 | "placeholder": "请输入 HTTP 基本认证密码", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 182 | "placeholder": "请输入 Akamai API Host", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 187 | "placeholder": "请输入 Akamai ClientToken", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 192 | "placeholder": "请输入 Akamai ClientSecret", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 197 | "placeholder": "请输入 Akamai AccessToken", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 202 | "placeholder": "请输入阿里云 AccessKeyID", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 207 | "placeholder": "请输入阿里云 AccessKeySecret", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 212 | "placeholder": "请输入阿里云资源组 ID", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 217 | "placeholder": "请输入 APISIX 服务地址" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 221 | "placeholder": "请输入 APISIX Admin API Key", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 226 | "placeholder": "请输入 ArvanCloud API 密钥", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 231 | "placeholder": "请输入橙域网络网迹 CDN AccessKeyID" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 235 | "placeholder": "请输入橙域网络网迹 CDN AccessKeySecret" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 239 | "placeholder": "请选择 AWS API 认证方式", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 252 | "placeholder": "请输入 AWS AccessKeyID", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 257 | "placeholder": "请输入 AWS SecretAccessKey", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 262 | "placeholder": "请输入 AxisNow API 令牌", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 267 | "placeholder": "请输入 Azure 租户 ID", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 272 | "placeholder": "请输入 Azure 客户端 ID", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 277 | "placeholder": "请输入 Azure 客户端密码", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 282 | "placeholder": "请输入 Azure 订阅 ID", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 287 | "placeholder": "请输入 Azure 资源组名称", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 292 | "placeholder": "请输入 Azure 主权云环境(例如:public)", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 297 | "placeholder": "请输入百度智能云 AccessKeyID", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 302 | "placeholder": "请输入百度智能云 SecretAccessKey", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 307 | "placeholder": "请输入白山云 API Token" | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 311 | "placeholder": "请输入宝塔面板服务地址", | CODE |
| LOW⚡ | ui/src/i18n/resources/zh/nls.access.json | 316 | "placeholder": "请输入宝塔面板接口密钥", | CODE |
| 1520 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …g/core/deployer/providers-tester/samwaf/samwaf_test.go | 38 | --SAMWAF_APIKEY="your-api-key" \ | CODE |
| HIGH | …s-tester/baotapanel-console/baotapanel_console_test.go | 36 | --BAOTAPANELCONSOLE_APIKEY="your-api-key" | CODE |
| HIGH | …g/core/deployer/providers-tester/apisix/apisix_test.go | 38 | --APISIX_APIKEY="your-api-key" \ | CODE |
| HIGH | …providers-tester/1panel-console/1panel_console_test.go | 39 | --1PANELCONSOLE_APIKEY="your-api-key" | CODE |
| HIGH | …ers-tester/rainyun-sslcenter/rainyun_sslcenter_test.go | 33 | --RAINYUNRCDN_APIKEY="your-api-key" | CODE |
| HIGH | …ster/baotapanelgo-console/baotapanelgo_console_test.go | 36 | --BAOTAPANELGOCONSOLE_APIKEY="your-api-key" | CODE |
| HIGH | …r/providers-tester/wangsu-cdnpro/wangsu_cdnpro_test.go | 47 | --WANGSUCDNPRO_APIKEY="your-api-key" \ | CODE |
| HIGH | …yer/providers-tester/baotapanelgo/baotapanelgo_test.go | 40 | --BAOTAPANELGO_APIKEY="your-api-key" \ | CODE |
| HIGH | …yer/providers-tester/rainyun-rcdn/rainyun_rcdn_test.go | 37 | --RAINYUNRCDN_APIKEY="your-api-key" \ | CODE |
| HIGH | …g/core/deployer/providers-tester/1panel/1panel_test.go | 43 | --1PANEL_APIKEY="your-api-key" \ | CODE |
| HIGH | …eployer/providers-tester/baotapanel/baotapanel_test.go | 40 | --BAOTAPANEL_APIKEY="your-api-key" \ | CODE |
| HIGH | …providers-tester/samwaf-console/samwaf_console_test.go | 36 | --SAMWAFCONSOLE_APIKEY="your-api-key" \ | CODE |
| HIGH | …g/core/deployer/providers-tester/cdnfly/cdnfly_test.go | 40 | --CDNFLY_APIKEY="your-api-key" \ | CODE |
| HIGH | …re/deployer/providers-tester/baotawaf/baotawaf_test.go | 40 | --BAOTAWAF_APIKEY="your-api-key" \ | CODE |
| HIGH | …iders-tester/baotawaf-console/baotawaf_console_test.go | 38 | --BAOTAWAFCONSOLE_APIKEY="your-api-key" | CODE |
| HIGH | …/core/certmgr/providers-tester/dokploy/dokploy_test.go | 36 | --DOKPLOY_APIKEY="your-api-key" | CODE |
| HIGH | …ers-tester/rainyun-sslcenter/rainyun_sslcenter_test.go | 33 | --RAINYUNSSLCENTER_APIKEY="your-api-key" | CODE |
| HIGH | pkg/core/certmgr/providers-tester/1panel/1panel_test.go | 39 | --1PANEL_APIKEY="your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/src/components/workflow/designer/_util.ts | 21 | */ | COMMENT |
| LOW | pkg/core/deployer.go | 1 | package core | COMMENT |
| LOW | pkg/core/certmgr.go | 1 | package core | COMMENT |
| LOW | pkg/core/certmgr.go | 21 | // - err: 错误。 | COMMENT |
| LOW | pkg/core/notifier.go | 1 | package core | COMMENT |
| LOW | pkg/core/deployer/providers/ftp/ftp.go | 21 | // FTP 主机。 | COMMENT |
| LOW | pkg/core/deployer/providers/s3/s3.go | 21 | Endpoint string `json:"endpoint"` | COMMENT |
| LOW | pkg/core/deployer/providers/s3/s3.go | 41 | ObjectKeyForKey string `json:"objectKeyForKey,omitempty"` | COMMENT |
| LOW | …eployer/providers/tencentcloud-tse/tencentcloud_tse.go | 21 | SecretKey string `json:"secretKey"` | COMMENT |
| LOW | pkg/core/deployer/providers/local/local.go | 41 | // 选填。 | COMMENT |
| LOW | pkg/core/deployer/providers/ssh/ssh.go | 21 | type ServerConfig struct { | COMMENT |
| LOW | pkg/core/deployer/providers/ssh/ssh.go | 61 | FilePathForCrt string `json:"filePathForCrt,omitempty"` | COMMENT |
| LOW | pkg/core/deployer/providers/lecdn/lecdn.go | 21 | ) | COMMENT |
| LOW | pkg/core/notifier/providers/email/email.go | 21 | SmtpHost string `json:"smtpHost"` | COMMENT |
| LOW | pkg/utils/maps/get.go | 41 | COMMENT | |
| LOW | pkg/utils/maps/get.go | 61 | // - key: 键。 | COMMENT |
| LOW | pkg/utils/maps/get.go | 81 | // 出参: | COMMENT |
| LOW | pkg/utils/maps/get.go | 141 | return defaultValue | COMMENT |
| LOW | pkg/utils/maps/get.go | 281 | COMMENT | |
| LOW | pkg/utils/wait/until.go | 61 | // 出参: | COMMENT |
| LOW | pkg/utils/file/io.go | 41 | // 与 [Write] 类似,但写入的是字符串内容。 | COMMENT |
| LOW | pkg/utils/ssh/io.go | 21 | // - sshCli: SSH 客户端。 | COMMENT |
| LOW | pkg/utils/ssh/io.go | 41 | // - data: 文件数据字节数组。 | COMMENT |
| LOW | pkg/utils/cert/transformer.go | 61 | // 将 PEM 编码的证书字符串转换为 JKS 格式。 | COMMENT |
| LOW | pkg/utils/cert/parser.go | 21 | } | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/release_sync_gitee.py | 53 | def get_github_stable_release(): | CODE |
| LOW | .github/scripts/issue_quality/check_test.py | 14 | def test_latest_version_fails(self): | CODE |
| LOW⚡ | .github/scripts/issue_quality/check_test.py | 28 | def test_short_description_fails(self): | CODE |
| LOW⚡ | .github/scripts/issue_quality/check_test.py | 34 | def test_placeholder_steps_fails(self): | CODE |
| LOW⚡ | .github/scripts/issue_quality/check_test.py | 40 | def test_short_motivation_fails(self): | CODE |
| LOW⚡ | .github/scripts/issue_quality/check_test.py | 46 | def test_non_template_skipped(self): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/release_sync_gitee.py | 49 | except Exception as e: | CODE |
| LOW | .github/workflows/release_sync_gitee.py | 266 | except Exception as e: | CODE |
| MEDIUM | .github/workflows/release_sync_gitee.py | 224 | def main(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/issue_quality/check.py | 2 | CODE | |
| LOW | .github/scripts/issue_quality/rules.py | 1 | CODE |