SafeLine
SafeLine copied to clipboard
[Suggestion] DNS-01 challenge in 'Get free cert' / 申请泛域名免费证书 / 用 dns 验证方式申请免费证书
背景与遇到的问题
希望可以增加泛解析域名证书功能和dns验证方式,不然太不方便,在被的地方签完在上传,这有点多余,希望可以支持
建议的解决方案
No response
“在被的地方”是啥意思
是指申请免费证书这个功能,还是上传证书,证书管理模块下含多个功能,不太清楚指的是那个
是指申请免费证书这个功能,还是上传证书,证书管理模块下含多个功能,不太清楚指的是那个
他应该是打的错别字,在主机上签完再上传是挺麻烦的,let's encrypt支持泛解析,但只能通过DNS认证获得
我真的很需要dns-01认证,可以看看https://nginxproxymanager.com,其中就有dns验证,可以借鉴一下。Certbot的插件也很丰富,并且很容易添加支持
希望增加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都是成熟的
强烈支持增加!http01的方式申请证书成功率太低了,用dns的方式成功率高
同样有 DNS 申请证书的需求,家庭宽带封锁了 80 端口无法通过 HTTP 文件验证的方式申请证书,虽然不是付费用户但还是厚脸皮请求支持😊😊😊
有需求+1,多个站点没用80/443端口,需要dns-01校验
强烈需要DNS验证模式
强烈需要DNS验证模式
+++++1
同样的需求,无论是dns验证还是云服务商api验证都可以,只要可以实现泛域名申请就可以,挨个申请真的很麻烦
dns验证的话很必须,毕竟http验证对于一些环境很不方便,例如国内拦截http流量或者强制https等环境。
如果可以的话可以支持更多的申请平台,如zerossl等。
一直在使用Nginx Proxy Manager的SSL证书,用Tencent Cloud的DNS认证,自动续签,希望加上这功能
由于 issue 列表无法判断评论内容,回复 “+1” 其实并不能体现 issue 的受欢迎程度,反而容易把讨论内容刷掉,变成单纯的水内容。建议大家点击 issue 的 👍 来表示支持,感谢。
对于我这边的情况,是单独有个实例去使用acme.sh申请证书并使用一些脚本自动部署到相应服务上的。希望雷池能开一个这个接口能支持脚本自动上传和更新证书
希望能加入
这个功能非常需要,希望官方能支持,感谢各位大佬
建议参考1Panel这种方式去实现, 这个体验下来最丝滑
可以自动续签
可以自动续签
1panel又不能往WAF写证书,签了还得手工换
可以自动续签
1panel又不能往WAF写证书,签了还得手工换
我指的是建议雷池参考1panel这种去实现, 比较方便,
那你们现在都是怎么续签ssl, 雷池前面再加个反向代理吗?
那你们现在都是怎么续签ssl,雷池前面再加个反向代理吗?
不用,直接换其他反代工具
确实需要这个功能,现在才发现证书厂商的免费证书就都只有3个月了。
什么时候有啊
在官方不提供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())
建议参考1Panel这种方式去实现, 这个体验下来最丝滑
这个我倒是觉得无所谓的,1panel就支持这个,我的解决方案是用1panel申请和自动更新,然后执行脚本命令,将更新后的证书同步给雷池所用的证书,感觉也还好,这个容易解决,我就是一直头疼API调用不知道怎么用,官方也不提供相关的文档,简单的几个字介绍,完全找不到方向
可以自动续签
1panel又不能往WAF写证书,签了还得手工换
可以的,1panel的自动更新后支持执行一个脚本,可以在脚本里面将更新后的证书同步给WAF
