
11notes/certbot!Banner
!size !version !pulls
With this image you can create certificates from Let’s Encrypt via different modules. This image will start a Nginx webserver listening for the HTTP challenge. It will produce all different kind of certificates that can then be used in other systems. It will also call an optional webhook on each certificate renewal (success or fail). As a bonus, it will redirect all HTTP calls (not from Certbot) permanent to HTTPS.
Simply configure your desired certificates via yaml (/certbot/etc/config.yaml). Configure each module with the information it needs. After that you can periodically run docker exec certbot renew. Certbot will then automatically renew or create all certificates defined in config.yaml, it will clean up expired certificates and create additional certificate types (*.pfx, *.pk8) as well as a tar with all files. You can call a webhook or script on each certificate renewal.
Why use this image at all and not simply use Certbot with Traefik? Simple answer: All though most systems can be proxies via Traefik or other reverse proxies that can auto update their certificates themselves, a lot of systems that can’t be proxied still need valid SSL certificates (like database authentication, MQTT, SMTP, RDP and so on). Since this image will create valid SSL certificates and call a possible webhook on each success or fail, that webhook can be used to update the certificates on these non-proxy systems.
/certbot/etc/config.yaml
yamlcertificates: # name must be unique and is used for the file names # up to 100 FQDN or wildcard allowed - name: "com.domain" *** "***" fqdn: - "*.domain.com" - "*.[***]" # define module to use - name: "com.domain.dns" *** "***" module: rfc2136: server: 10.255.255.53 port: 53 name: "certbot." secret: "*****************************************************" algorithm: "HMAC-SHA512" propagation_seconds: 30 fqdn: - "*.domain.com" - name: "com.domain.dns.credentials" *** "***" module: rfc2136: credentials: "/certbot/etc/com.domain.ini" fqdn: - "*.domain.com" # use RSA instead of ECDSA - name: "com.domain.rsa" *** "***" key: rsa fqdn: - "*.domain.com" # call webhook - name: "com.domain.webhook" *** "***" webhook: [***] fqdn: - "*.domain.com" # call script - name: "com.domain.script" *** "***" script: /certbot/scripts/vmware.horizon.uag.sh key: rsa fqdn: - "*.domain.com"
Traefik redirect HTTP:80 to certbot container:
(HostRegexp(`{host:.+}`) && PathPrefix(`/.well-known/acme-challenge`))
| Parameter | Value | Description |
|---|---|---|
user | docker | user docker |
uid | 1000 | user id 1000 |
gid | 1000 | group id 1000 |
home | /certbot | home directory of user docker |
| Parameter | Value | Default |
|---|---|---|
TZ | Time Zone | |
DEBUG | Show debug information | |
CERTBOT_CONFIG | environment variable containing the entire config as yaml | |
CERTBOT_KEY_TYPE | set global key type (RSA or ECDSA) | ECDSA |
CERTBOT_TRAEFIK_DIRECTORY | directory to create certificate structure for Traefik (ie /certbot/traefik) | |
CERTBOT_TRAEFIK_RELATIVE_PATH | realtive path to use in certbot.yaml (ie /traefik/var/ssl) |
| Module | Parameter | Description | Default |
|---|---|---|---|
rfc2136 | CERTBOT_RFC2136_PROPAGATION_SECONDS | time in seconds to wait for global DNS propagation | 60 |
rfc2136 | CERTBOT_RFC2136_CREDENTIALS | path to global dns.ini | /certbot/etc/rfc2136.ini |
This image is provided to you at your own risk. Always make backups before updating an image to a new version. Check the changelog for breaking changes. You can find all my repositories on github.






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务