Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Suggestion] DNS-01 challenge in 'Get free cert' / 申请泛域名免费证书 / 用 dns 验证方式申请免费证书 #563

Open
xu5343 opened this issue Jan 2, 2024 · 32 comments
Labels
enhancement New feature or request

Comments

@xu5343
Copy link

xu5343 commented Jan 2, 2024

背景与遇到的问题

希望可以增加泛解析域名证书功能和dns验证方式,不然太不方便,在被的地方签完在上传,这有点多余,希望可以支持

建议的解决方案

No response

@yrluke
Copy link
Contributor

yrluke commented Jan 2, 2024

“在被的地方”是啥意思

@yrluke
Copy link
Contributor

yrluke commented Jan 2, 2024

是指申请免费证书这个功能,还是上传证书,证书管理模块下含多个功能,不太清楚指的是那个

@yrluke yrluke added enhancement New feature or request need more information labels Jan 2, 2024
@cmradix
Copy link

cmradix commented Jan 13, 2024

是指申请免费证书这个功能,还是上传证书,证书管理模块下含多个功能,不太清楚指的是那个

他应该是打的错别字,在主机上签完再上传是挺麻烦的,let's encrypt支持泛解析,但只能通过DNS认证获得

@Lorna0 Lorna0 changed the title [建议] 希望可以增加泛解析域名证书功能和dns验证方式 [建议] 支持申请泛域名免费证书 / 支持用 dns 验证方式申请免费证书 Jan 17, 2024
@AlexMa2011
Copy link

我真的很需要dns-01认证,可以看看https://nginxproxymanager.com,其中就有dns验证,可以借鉴一下。Certbot的插件也很丰富,并且很容易添加支持

@peng2289
Copy link

希望增加dns解析,增加了dns了就能增加泛域名,某些场景下没有开放80端口,但是需要签发ssl证书,acne.sh 本身支持功能的,https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E

要是需要sh脚本,可能下载这个的脚本分析下,https://lnmp.org/faq/letsencrypt-wildcard-ssl.html都是成熟的

@podywu
Copy link

podywu commented Apr 7, 2024

强烈支持增加!http01的方式申请证书成功率太低了,用dns的方式成功率高

@simin-in-tw
Copy link

同样有 DNS 申请证书的需求,家庭宽带封锁了 80 端口无法通过 HTTP 文件验证的方式申请证书,虽然不是付费用户但还是厚脸皮请求支持😊😊😊

@JasonFeng02
Copy link

有需求+1,多个站点没用80/443端口,需要dns-01校验

@hargen11
Copy link

强烈需要DNS验证模式

1 similar comment
@igangtaan
Copy link

强烈需要DNS验证模式

@cddqssc
Copy link

cddqssc commented Apr 26, 2024

+++++1

@ifwwww
Copy link

ifwwww commented Apr 28, 2024

同样的需求,无论是dns验证还是云服务商api验证都可以,只要可以实现泛域名申请就可以,挨个申请真的很麻烦

@cli-r
Copy link

cli-r commented May 5, 2024

dns验证的话很必须,毕竟http验证对于一些环境很不方便,例如国内拦截http流量或者强制https等环境。

如果可以的话可以支持更多的申请平台,如zerossl等。

@capfhz
Copy link

capfhz commented May 14, 2024

一直在使用Nginx Proxy Manager的SSL证书,用Tencent Cloud的DNS认证,自动续签,希望加上这功能

@Lorna0
Copy link
Collaborator

Lorna0 commented May 23, 2024

由于 issue 列表无法判断评论内容,回复 “+1” 其实并不能体现 issue 的受欢迎程度,反而容易把讨论内容刷掉,变成单纯的水内容。建议大家点击 issue 的 👍 来表示支持,感谢。

@linzyjx
Copy link

linzyjx commented Jun 2, 2024

对于我这边的情况,是单独有个实例去使用acme.sh申请证书并使用一些脚本自动部署到相应服务上的。希望雷池能开一个这个接口能支持脚本自动上传和更新证书

@xy3xy3
Copy link

xy3xy3 commented Jun 4, 2024

希望能加入

@dislazy
Copy link

dislazy commented Jun 13, 2024

这个功能非常需要,希望官方能支持,感谢各位大佬

@ghost
Copy link

ghost commented Jul 2, 2024

建议参考1Panel这种方式去实现, 这个体验下来最丝滑
1

@ghost
Copy link

ghost commented Jul 2, 2024

可以自动续签

@cmradix
Copy link

cmradix commented Jul 2, 2024

可以自动续签

1panel又不能往WAF写证书,签了还得手工换

@ghost
Copy link

ghost commented Jul 2, 2024

可以自动续签

1panel又不能往WAF写证书,签了还得手工换

我指的是建议雷池参考1panel这种去实现, 比较方便,

@ghost
Copy link

ghost commented Jul 2, 2024

那你们现在都是怎么续签ssl, 雷池前面再加个反向代理吗?

@ifwwww
Copy link

ifwwww commented Jul 2, 2024

那你们现在都是怎么续签ssl,雷池前面再加个反向代理吗?

不用,直接换其他反代工具

@NaZawsze
Copy link

NaZawsze commented Jul 8, 2024

确实需要这个功能,现在才发现证书厂商的免费证书就都只有3个月了。

@Lorna0 Lorna0 changed the title [建议] 支持申请泛域名免费证书 / 支持用 dns 验证方式申请免费证书 [Suggestion] DNS-01 challenge in 'Get free cert' / 申请泛域名免费证书 / 用 dns 验证方式申请免费证书 Jul 10, 2024
@AlexMa2011
Copy link

什么时候有啊

@smartwang
Copy link

在官方不提供api支持的情况下(see #196 ),可以使用类似这样的python脚本来自动上传证书,结合acme或者lego申请到的证书,配个cronjob,每天renew一下,应该可以缓解不少人的痛点 :p

#!/usr/bin/env python3
import json
import requests


ENDPOINT="https://YOUR_ADDRESS:9443"  # FIXME
ADMIN_PASSWORD="YOUPASSWORD"  # FIXME
CERT_ID=YOUR_ID # int # FIXME
CRT_FILE="/path/to/your.crt" # FIXME
KEY_FILE="/path/to/your.key" # FIXME

def get_csrf_token():
    json_data = requests.get(f'{ENDPOINT}/api/open/auth/csrf').json()
    return json_data['data']['csrf_token']


def get_jwt_token():
    csrf_token = get_csrf_token()

    data = {
      "username": "admin",
      "password": ADMIN_PASSWORD,
      "csrf_token": csrf_token,
    }
    json_data = requests.post(f'{ENDPOINT}/api/open/auth/login', json=data).json()
    return json_data['data']['jwt']


def upload_cert(crt, key):
    jwt_token = get_jwt_token()
    data = {
      "manual": {
        "crt": crt,
        "key": key,
      },
      "type": 2,
      "id": CERT_ID,
    }
    headers = {
      "Authorization": f'Bearer {jwt_token}',
    }
    requests.post(f'{ENDPOINT}/api/open/cert', json=data, headers=headers)


if __name__ == "__main__":
    with open(CRT_FILE, 'r') as crt, open(KEY_FILE, 'r') as key:
        upload_cert(crt.read(), key.read())

@clion007
Copy link

clion007 commented Sep 25, 2024

建议参考1Panel这种方式去实现, 这个体验下来最丝滑 1

这个我倒是觉得无所谓的,1panel就支持这个,我的解决方案是用1panel申请和自动更新,然后执行脚本命令,将更新后的证书同步给雷池所用的证书,感觉也还好,这个容易解决,我就是一直头疼API调用不知道怎么用,官方也不提供相关的文档,简单的几个字介绍,完全找不到方向

@clion007
Copy link

可以自动续签

1panel又不能往WAF写证书,签了还得手工换

可以的,1panel的自动更新后支持执行一个脚本,可以在脚本里面将更新后的证书同步给WAF

@junyuyuan
Copy link

请问一下,DNS验证有计划进行功能开发么?

@yurividal
Copy link

+1 for DNS challenge.
DNS challenge is much more secure than HTTPS-01 and also allows for wildcard certificates.
Please add it

@okatu-loli
Copy link

同样需要DNS challenge支持

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests