แฎแจแแ แแ แแแแฌแแแก แแฃแจแแแแ SSL แกแแ แแแคแแแแขแแแแแ. แแแแแฎแกแแแแ แกแแ แขแแคแแแแขแแก แจแแฅแแแแกแ แแ แแแกแขแแแแชแแแก แแ แแชแแกแ (แแแแแ แจแแแแฎแแแแแจแ แฃแแแขแแกแแแแกแแแแก).
- แแแแแแแ แแ แแแแแแแ แ (แกแแแขแ, แกแแแแช แจแแแแแซแแแ แแแงแแแแ SSL).
- CSR-แแก แแแแแ แแ แแแ.
- แแแฃแแแแแแแ แแฅแแแแก แแ แแแแแแแ แก.
- แแแแแแกแขแฃแ แแ แแแแแแแก แกแแแฃแแ แแแ.
- แแแแฆแแ แกแแ แแแคแแแแขแ.
- แแแแแแงแแแแแ แกแแ แแแคแแแแขแ แกแแญแแ แ แคแแ แแแจแ (แกแฃแ แแแแแกแแแแแ ). แแแแแแแแแ, แแแแแแแ PKCS #12-แแแ.
- แแแแแแกแขแแแแ แแ แกแแ แแแคแแแแขแ แแแ แกแแ แแแ แแ.
แจแแแแ แแแแ แกแฌแ แแคแ, แแ แแ แแก แ แแฃแแ แแ แแแกแแแแแ. แแก แแแ แแแแขแ แกแแแแแแ แจแแกแแคแแ แแกแแ, แแฃ แแแฅแกแแแฃแ แแแ แแ แแแฅแขแ แแแแฅแแก. แ แ แแแฎแแแแ, แแฃ แแกแแแ แฃแคแ แ แแแขแแ แแ แแแ แแฅแแ แแแแแแฃแ แกแแแ แแแ แแแ? แแแแกแแแฃแ แ แแแ - แแแแแแ - แฌแแ แแแแแ. แแ แจแแแแฎแแแแแจแ, แฆแแ แก แแ แแ แแชแแกแแก แแแขแแแแขแแแแชแแแแ แคแแฅแ แ. แแ แแแแแแแแ แชแแขแ แฆแ แแแ แฉแแแฃแฆแ แแแแแแ แแ แแแแแแแก แแ แแแแแแ แแแแแกแแแแแ, แ แแแแแแช แแแแแ แฃแคแ แ แจแแแแชแแ แแแก แกแแ แแแคแแแแขแแแแก แจแแฅแแแแกแ แแ แจแแแแ แฉแฃแแแแแแ แแแฎแแ แฏแฃแ แแ แแก. แกแขแแขแแ แจแแแชแแแก แแ แแแแแแแก แแแแแแแก แแ แแชแแ แ แกแแฎแแแแซแฆแแแแแแแก แแแแแแแ แแแแก แจแแกแแฎแแ.
แแแแ แแแแแชแแ แฌแแแแกแฌแแ แแแแแแแแ แแแฏแแแจแแ: แฉแแแแ แแแแแแแแแก แแแแแแ แ แกแแแชแแแแแแแ .net แแ, แจแแกแแแแแแกแแ, IIS แแ Windows-แแแ แแแแแแจแแ แแแฃแแ แกแฎแแ แแ แแแฃแฅแขแแแ. แแแจแแกแแแแแ, ACME แแแแแแขแ แแ แแแกแแแแก แงแแแแ แแแฅแแแแแแ แแกแแแ แแฆแฌแแ แแแ แแฅแแแแ Windows-แแก แแแแแงแแแแแแก แแแแแกแแแ แแกแแ.
แแแกแแแแก แแ แแก แแก แ แแแแแแแขแฃแ แ แแ แแแ แแแแฃแแ แกแแฌแงแแกแ แแแแแชแแแแแ
แแแขแแ แแก แแแแ แฌแแ แแแแแแแแแ แแแแแแแแ K. URL (แแแแแแแแแ): company.tld
แแ แแแฅแขแ X แแ แแก แฉแแแแ แแ แ-แแ แแ แแ แแแฅแขแ, แ แแแแแแแช แแฃแจแแแแแกแแก แแแแแแ แแแกแแแแแแแ, แ แแ แฏแแ แแแแแ แแแญแแ แแแแ แแ แแแก แแแฅแกแแแแแฃแ แ แแแแแแแแกแแแ แกแแแ แกแแ แขแแคแแแแขแแแแแ แแฃแจแแแแแกแแก. แแ แแ แแแฅแขแก แแฅแแก แแแฎแ แแแ แแแ: แแแแแแแแแแแขแ, แขแแกแขแ, แแแแแแ แแ แฌแแ แแแแแ. Dev แแ แขแแกแขแ แฉแแแแก แแฎแแ แแกแแ, แแแแแแ แแ แฌแแ แแแแแ แแแแแแขแแก แแฎแแ แแกแแ.
แแ แแแฅแขแแก แแแแกแแแฃแแ แแแฃแแ แแแฎแแกแแแแแแแแแ แแก, แ แแ แแแก แแฅแแก แแแแฃแแแแแก แแแแ แ แแแแแแแแ, แ แแแแแแแช แฎแแแแแกแแฌแแแแแแ แฅแแแแแแแแแแแก แกแแฎแแ.
แแแฃ แแแแฅแแก แจแแแแแแ แกแฃแ แแแ:
dev
แขแแกแขแ
แฒแแแแแ
แฌแแ แแแแแ
projectX.dev.company.tld
projectX.test.company.tld
staging.projectX.tld
projectX.tld
module1.projectX.dev.company.tld
module1.projectX.test.company.tld
module1.staging.projectX.tld
module1.projectX.tld
module2.projectX.dev.company.tld
module2.projectX.test.company.tld
module2.staging.projectX.tld
module2.projectX.tld
...
...
...
...
moduleN.projectX.dev.company.tld
moduleN.projectX.test.company.tld
moduleN.staging.projectX.tld
moduleN.projectX.tld
แฌแแ แแแแแแกแแแแก แแแแแแงแแแแแ แจแแซแแแแแ แแฃแแแแแก แกแแ แแแคแแแแขแ, แแฅ แแแแฎแแแแ แแ แฉแแแแแ. แแแแ แแ แแก แแแแชแแแก แแฎแแแแ แฅแแแแแแแแแก แแแ แแแ แแแแแก. แจแแกแแแแแแกแแ, แแฃ แแ แกแแแแแก แกแแ แแแคแแแแขแ *.projectX.tld-แแกแแแแก, แแแจแแ แแก แแแฃแจแแแแแก staging.projectX.tld-แแ, แแแแ แแ แแ แ module1.staging.projectX.tld-แแ. แแแแ แแ แ แแขแแแฆแแช แแ แแแแแ แชแแแแ แแแงแแแ.
แแ แแก แแฎแแแแ แแ แแ แแแแแแแแแก แแ แแ แแ แแแฅแขแแก แแแแแแแแแแ แแแคแฃแซแแแแฃแแ. แแ, แ แ แแฅแแ แฃแแแ, แแ แแก แแ แแแ แแแขแ แแ แแแฅแขแ.
แกแแแ แแ แแแแแแแแ, แ แแกแแแแกแแช แงแแแแแก แแแแแ แแแแก แแ แกแแแแแฎแก, แแกแ แแแแแแงแฃแ แแแ:
- แชแแขแ แฎแแแก แฌแแ
Google-แแ แจแแกแแแแแแ SSL แกแแ แแแคแแแแขแแแแก แแแฅแกแแแแแฃแ แ แแแฅแแแแแแแก แแแ แแแแแก แจแแแชแแ แแแ . แงแแแแ แจแแแแแแ. - SSL-แแก แแแชแแแแก แแ แจแแแแ แฉแฃแแแแแก แแ แแชแแกแแก แฎแแแจแแฌแงแแแ แแ แแแฅแขแแแแกแ แแ แแแแแแแแ แแแแแแแแแก แจแแแ แกแแญแแ แแแแแแแกแแแแก.
- แกแแ แขแแคแแแแขแแก แฉแแแแฌแแ แแแแก แชแแแขแ แแแแแแแฃแแ แจแแแแฎแแ, แ แแแแแแช แแแฌแแแแแ แแ แฌแงแแแขแก แแแแแแแก แแแแแแแฌแแแแแก แแ แแแแแแแก DNS-แแก แแแแแงแแแแแแ แแ แจแแแแแแแ แแแขแแแแขแฃแ แ แแแแแฎแแแแแ, แแกแแแ แฌแงแแแขแก แแแแแแขแแก แแแแแแก แกแแแแแฎแก. แแแฃแฎแแแแแแ แแแแกแ, CNAME แแแ แขแแแแ แ/แจแแแกแ แฃแแแแแแ แแแแแแแแแก แกแแ แแแ แแ แฃแคแ แ แกแแแแแ, แแแแ แ แแแกแแแ แแฎแแ แแก แ แแกแฃแ แกแแ.
- แแแแแก แแ แแแแแก, แแ แจแแแแฎแแแแแจแ แคแ แแแ โแฏแแแแ แแฅแแแแแก, แแแแ แ แแ แแฅแแแแแกโ แแแแแแฃแ แแ แฏแแแแ.
SSL แแ แแแแแแแ แแก แแ แฉแแแ แแ แแแกแแแแแแแแแแ แแแแแฏแแแ
แฃแคแแกแ SSL แกแแ แแแคแแแแขแแแแก แฎแแแแแกแแฌแแแแ แแแ แแแแขแแแก แจแแ แแก แแแแแฎแแแแแแแ cloudflare แแ letsencrypt. แแ (แแ แแแแแแ แแ แกแฎแแ แแ แแแฅแขแแก) DNS แแแกแแแแซแแแแก cloudflare-แก, แแแแ แแ แแ แแ แแแ แแแแ แกแแ แแแคแแแแขแแแแก แแแแแงแแแแแแก แคแแแ. แแแแขแแ, แแแแแฌแงแแ letsencrypt-แแก แแแแแงแแแแแ.
wildcard SSL แกแแ แแแคแแแแขแแก แจแแกแแฅแแแแแแ, แแฅแแแ แฃแแแ แแแแแแกแขแฃแ แแ แแแแแแแก แกแแแฃแแ แแแ. แแก แแ แแชแแแฃแ แ แแแแชแแแก แแแ แแแแฃแแ DNS แฉแแแแฌแแ แแก แจแแฅแแแแก (TXT แแ CNAME) แแ แจแแแแแ แแแแแแแฌแแแแแก แกแแ แขแแคแแแแขแแก แแแชแแแแกแแก. Linux-แก แแฅแแก แแแแฃแแแแฃแ แ แแ แแแ แแแ -
แแ แแแแแแแก แฉแแแแฌแแ แ แจแแแฅแแแ, แแแแแ แแแแแแแแแ แกแแ แขแแคแแแแขแแก แจแแฅแแแแแ:
แฉแแแ แแแแแแขแแ แแกแแแก แแแแ แแแกแแแแ, แแแ แซแแ, แแแแแแแก แกแแแฃแแ แแแแก แแแแแกแขแฃแ แแแแก แฎแแแแแกแแฌแแแแแ แแแ แแแแขแแแ wildcard แกแแ แขแแคแแแแขแแก แแแชแแแแกแแแแก:
- แจแแฅแแแแแ DNS แฉแแแแฌแแ แแแ แฎแแแแ (แแแขแแแแขแฃแ แ แแแแแฎแแแแ แแ แแ แแก แแฎแแ แแแญแแ แแแ)
- DNS แฉแแแแฌแแ แแแแก แจแแฅแแแ acme-dns แกแแ แแแ แแก แแแแแงแแแแแแ (แจแแแแซแแแแ แแแขแ แฌแแแแแแฎแแ
แแฅ . - DNS แฉแแแแฌแแ แแแแก แจแแฅแแแ แกแแแฃแแแ แ แกแแ แแแขแแก แแแแแงแแแแแแ (แแกแแแแกแ cloudflare แแแแฃแแ certbot-แแกแแแแก).
แแ แแ แจแแฎแแแแแ, แแแกแแแ แแฃแแฅแขแ แกแแแแแแ แจแแกแแคแแ แแกแแ, แแแแ แแ แ แ แแแฎแแแแ, แแฃ DNS แแ แแแแแแแ แ แแ แฃแญแแ แก แแฎแแ แก แแ แคแฃแแฅแชแแแแแ แแแแก? แแแแ แแ แฉแแแ แแแญแแ แแแแ แแแแแแ แจแแแแฎแแแแ. แแ แแแแแแ แจแแแแฎแแแแ แแ แแก CNAME แฉแแแแฌแแ แแแ, แ แแแแแ แงแแแแ แแฎแแ แก แฃแญแแ แก แแแ. แแแแขแแ, แฉแแแ แแฉแแ แแแแแ แแ-2 แฌแแ แขแแแแ แแ แแแแแแแแแแ แ แฉแแแแ ACME-DNS แกแแ แแแ แแก แแแแคแแแฃแ แแชแแแแ.
ACME-DNS แกแแ แแแ แแก แแแงแแแแแ แแ แกแแ แแแคแแแแขแแก แแแชแแแแก แแ แแชแแกแ
แแแแแแแแแ, แแ แจแแแฅแแแแ แแแแแแ 2nd.pp.ua แแ แแแแแแแงแแแแ แแแก แแแแแแแแจแ.
acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.
แแ แแขแแแแ แฉแแแแแ แแแกแแแแซแแแแ แฃแแแ แแแแแฌแงแแแขแแก acmens.2nd.pp.ua
.
$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data
แแแแ แแ acme.2nd.pp.ua
แแก แแ แแแแแฌแงแแแแ, แ แแแแแ DNS แกแแ แแแ แ, แ แแแแแแช แแแก แแแกแแฎแฃแ แแแ, แฏแแ แแ แแฃแจแแแแก.
แฉแแแแฌแแ แแแ แจแแแฅแแแ, แฉแแแ แแแแ แซแแแแแ ACME-DNS แกแแ แแแ แแก แแแงแแแแแแก แแ แแแจแแแแแก. แแก แแชแฎแแแ แแแก แฉแแแก ubuntu แกแแ แแแ แแ
แจแแฅแแแแแ แกแแญแแ แ แแแ แแฅแขแแ แแแแ แแ แคแแแแแแ:
$ mkdir config
$ mkdir data
$ touch config/config.cfg
แแแแแ แแแแแแแงแแแแ vim แแฅแแแแก แกแแงแแแ แแ แขแแฅแกแขแฃแ แ แแแแฅแขแแ แแแ แแ แฉแแกแแแ แแแแฃแจแ config.cfg-แจแ
แฌแแ แแแขแแแฃแแ แแฃแจแแแแแกแแแแก แกแแแแแ แแกแแ แแแแแแ แแ api แกแแฅแชแแแแแก แแแ แแฅแขแแ แแแ:
[general]
listen = "0.0.0.0:53"
protocol = "both"
domain = "acme.2nd.pp.ua"
nsname = "acmens.2nd.pp.ua"
nsadmin = "admin.2nd.pp.ua"
records =
"acme.2nd.pp.ua. A 35.237.128.147",
"acme.2nd.pp.ua. NS acmens.2nd.pp.ua.", ]
...
[api]
...
tls = "letsencrypt"
โฆ
แแกแแแ, แแฃ แกแแกแฃแ แแแแแ, แฉแแแ แจแแแฅแแแแ docker-compose แคแแแแก แกแแ แแแกแแก แแแแแแ แแแ แแฅแขแแ แแแจแ:
version: '3.7'
services:
acmedns:
image: joohoi/acme-dns:latest
ports:
- "443:443"
- "53:53"
- "53:53/udp"
- "80:80"
volumes:
- ./config:/etc/acme-dns:ro
- ./data:/var/lib/acme-dns
แแแแแแ. แจแแแแซแแแแ แแแฃแจแแแ.
$ docker-compose up -d
แแ แแขแแแแ แแแกแแแแซแแแแ แฃแแแ แแแแฌแงแแก แแแแแแ แแแ acme.2nd.pp.ua
แแ 404 แแแแแฉแแแแแ https://acme.2nd.pp.ua
$ ping acme.2nd.pp.ua
PING acme.2nd.pp.ua (35.237.128.147) 56(84) bytes of data.
$ curl https://acme.2nd.pp.ua
404 page not found
แแฃ แแก แแ แแแแแฉแแแแแ - docker logs -f <container_name>
แแแกแแฎแแแ แแแแแ, แกแแแแแแแแ แแ, แแฃแ แแแแแแ แกแแแแแแ แแแแแฎแแแ.
แฉแแแ แจแแแแแซแแแ แแแแแฌแงแแ แกแแ แแแคแแแแขแแก แจแแฅแแแ. แแแฎแกแแแแ powershell แ แแแแ แช แแแแแแแกแขแ แแขแแ แ แแ แแแฃแจแแแ winacme. แฉแแแ แแแแแขแแ แแกแแแฃแแ แแแ แ แแ แฉแแแแแแแ:
- M: แจแแฅแแแแแ แแฎแแแ แกแแ แขแแคแแแแขแ (แกแ แฃแแ แแแ แแแแขแ แแแ)
- 2: แฎแแแแ แจแแงแแแแ
- 2: [dns-01] แจแแฅแแแแแ แแแแแแแกแขแฃแ แแแแแ แฉแแแแฌแแ แแแ acme-dns-แแ (
https://github.com/joohoi/acme-dns ) - ACME-DNS แกแแ แแแ แแก แแแฃแแแก แจแแกแแฎแแ แแแแฎแแแแ, แแแกแฃแฎแจแ แจแแแงแแแแแ แจแแฅแแแแแ แกแแ แแแ แแก URL (https). Acme-dns แกแแ แแแ แแก URL:
https://acme.2nd.pp.ua
แแแฎแกแแแกแแก แแแแแแขแ แแแกแชแแแก แฉแแแแฌแแ แก, แ แแแแแแช แฃแแแ แแแแแแขแแก แแ แกแแแฃแ DNS แกแแ แแแ แก (แแ แแฏแแ แแแ แแ แแชแแแฃแ แ):
[INFO] Creating new acme-dns registration for domain 1nd.pp.ua
Domain: 1nd.pp.ua
Record: _acme-challenge.1nd.pp.ua
Type: CNAME
Content: c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.
Note: Some DNS control panels add the final dot automatically.
Only one is required.
แฉแแแ แแฅแแแแ แกแแญแแ แ แฉแแแแฌแแ แก แแ แแ แฌแแฃแแแแแแ, แ แแ แแก แกแฌแแ แแ แจแแแฅแแแ:
$ dig CNAME _acme-challenge.1nd.pp.ua +short
c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.
แแแแแกแขแฃแ แแแ, แ แแ แจแแแฅแแแแแ แกแแญแแ แ แฉแแแแฌแแ แ winacme-แจแ แแ แแแแ แซแแแแแ แกแแ แขแแคแแแแขแแก แจแแฅแแแแก แแ แแชแแกแก:
แ แแแแ แแแแแแแงแแแแ certbot แ แแแแ แช แแแแแแขแ แแฆแฌแแ แแแแ
แแก แแกแ แฃแแแแก แกแแ แแแคแแแแขแแก แจแแฅแแแแก แแ แแชแแกแก, แจแแแแซแแแแ แแแแแแกแขแแแแ แแ แแแ แแแ แกแแ แแแ แแ แแ แแแแแแงแแแแ แแแ. แแฃ แกแแ แแแคแแแแขแแก แจแแฅแแแแกแแก แแฅแแแ แแกแแแ แจแแฅแแแแ แแแแแแแแแก แแแแ แแแจแ, แแแจแแ แแแแแแแแจแ แกแแ แขแแคแแแแขแแก แแแแแฎแแแแแก แแ แแชแแกแ แแแขแแแแขแฃแ แแ แแแฎแแแแ.
แฌแงแแ แ: www.habr.com