E pili ana i ka automating i ka hoʻopuka ʻana o SSL

Pono pinepine mākou e hana me nā palapala SSL. E hoʻomanaʻo kākou i ke kaʻina hana o ka hana ʻana a me ka hoʻokomo ʻana i kahi palapala hōʻoia (ma ka hihia maʻamau no ka hapa nui).

  • E huli i kahi mea hoʻolako (kahi pūnaewele kahi e kūʻai ai mākou i SSL).
  • Hana CSR.
  • E hoʻouna i ka mea hoʻolako.
  • E hōʻoia i ke kuleana o ka waihona.
  • E kiʻi i palapala.
  • E hoʻohuli i ka palapala hōʻoia i ke ʻano makemake (koho). No ka laʻana, mai pem a PKCS #12.
  • E hoʻouka i ka palapala hōʻoia ma ka pūnaewele pūnaewele.

ʻAno wikiwiki, maʻalahi a maopopo. He kūpono kēia koho inā loaʻa iā mākou ka nui o nā papahana he ʻumi. He aha inā ʻoi aku ka nui o lākou, a ʻekolu mau kaiapuni? Kūlana hoʻomohala - hana - hana. I kēia hihia, pono e noʻonoʻo e pili ana i ka automating i kēia kaʻina hana. Manaʻo wau e hele hohonu i ka pilikia a loaʻa kahi hopena e hōʻemi hou ai i ka manawa i hoʻohana ʻia ma ka hana ʻana a me ka mālama ʻana i nā palapala hōʻoia. Aia i loko o ka ʻatikala kahi loiloi o ka pilikia a me kahi alakaʻi liʻiliʻi no ka hana hou ʻana.

E hana au i kahi hoʻopaʻa ma mua: ʻo ka ʻoihana nui o kā mākou hui ʻo .net, a, no laila, IIS a me nā mea pili i ka screw. No laila, e wehewehe pū ʻia ka mea kūʻai aku ACME a me nā hana a pau e pili ana i ka hoʻohana ʻana i nā puka makani.

No wai ka mea pili a me kekahi mau ʻikepili hope

ʻO ka hui K i pani ʻia e ka mea kākau. HKH (no ka laʻana): company.tld

ʻO Project X kekahi o kā mākou papahana, kahi aʻu i hiki ai i ka hopena e pono mākou e neʻe i ka nui o ka mālama manawa i ka wā e hana ai me nā palapala hōʻoia. ʻEhā kaiapuni o kēia papahana: dev, hoʻāʻo, hoʻokūkū a hana. Aia ʻo Dev a me ka hoʻāʻo ma kā mākou ʻaoʻao, ʻo ke kahua a me ka hana ʻana ma ka ʻaoʻao o ka mea kūʻai aku.

ʻO kahi hiʻohiʻona o ka papahana ʻo ia ka nui o nā modula i loaʻa ma ke ʻano he subdomains.

ʻO ia, loaʻa iā mākou ke kiʻi penei:

Dev
hōʻike
Ke hoʻonohonoho
iecaianoaaiiuo

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

No ka hana ʻana, hoʻohana ʻia kahi palapala wildcard i kūʻai ʻia, ʻaʻohe nīnau ma aneʻi. Akā, uhi wale ia i ka pae mua o ka subdomain. No laila, inā he palapala hōʻoia no *.projectX.tld, a laila e hana ia no staging.projectX.tld, akā ʻaʻole no ka module1.staging.projectX.tld. ʻAʻole au makemake e kūʻai i kahi kaʻawale.

A aia kēia ma ka laʻana o hoʻokahi papahana o hoʻokahi hui. A ʻo ka papahana, ʻoiaʻiʻo, ʻaʻole wale ia.

ʻO nā kumu maʻamau no ka hoʻoponopono ʻana i kēia pilikia e like me kēia:

  • I kēia mau lā Manaʻo ʻo Google e hōʻemi i ka manawa kūpono o nā palapala SSL. Me nā hopena a pau.
  • E hoʻomaʻamaʻa i ke kaʻina hana o ka hoʻopuka a mālama ʻana i ka SSL no nā pono kūloko o nā papahana a me ka hui holoʻokoʻa.
  • Ke kikowaena kikowaena o nā moʻolelo palapala, e hoʻopau i ka pilikia o ka hōʻoia ʻana i ka domain me ka hoʻohana ʻana i ka DNS a me ka hoʻololi hou ʻana, a hoʻoponopono pū i ka pilikia o ka hilinaʻi o ka mea kūʻai aku. Eia nō naʻe, ʻoi aku ka hilinaʻi o CNAME ma ke kikowaena o ka hui hoa / hoʻokō ma mua o kahi kumuwaiwai ʻekolu.
  • ʻAe, i ka hopena, i kēia hihia, ʻoi aku ka maikaʻi o ka ʻōlelo "ʻoi aku ka maikaʻi ma mua o ka loaʻa ʻole".

Ke koho ʻana i kahi mea hoʻolako SSL a me nā ʻanuʻu hoʻomākaukau

No nā koho i loaʻa no nā palapala SSL manuahi, ua noʻonoʻo ʻia ka cloudflare a me ka letsencrypt. Hoʻokipa ʻia ka DNS no kēia (a me kekahi mau papahana ʻē aʻe) e cloudflare, akā ʻaʻole wau makemake i ka hoʻohana ʻana i kā lākou palapala hōʻoia. No laila, ua hoʻoholo ʻia e hoʻohana i ka letsencrypt.
No ka hana ʻana i kahi palapala SSL wildcard, pono ʻoe e hōʻoia i ke kuleana o ka domain. Aia kēia kaʻina hana i ka hana ʻana i kekahi moʻolelo DNS (TXT a i ʻole CNAME), me kāna hōʻoia hope i ka wā e hoʻopuka ai i kahi palapala. Loaʻa iā Linux kahi mea hoʻohana − kelepona, hiki iā ʻoe ke hoʻokaʻawale i kēia kaʻina hana (a i ʻole no kekahi mau mea hoʻolako DNS). No ka Windows like mai loaa a hoao nā koho no nā mea kūʻai aku ʻo ACME aʻu i noho ai WinACME.

A ua hana ʻia ka moʻolelo no ka domain, e neʻe kākou i ka hana ʻana i kahi palapala:

E pili ana i ka automating i ka hoʻopuka ʻana o SSL

Makemake mākou i ka hopena hope loa, ʻo ia hoʻi, nā koho i loaʻa no ka hōʻoia ʻana i ka kuleana o ka domain no ka hoʻopuka ʻana i kahi palapala wildcard:

  1. Ke hana lima ʻana i nā moʻolelo DNS (ʻaʻole kākoʻo ʻia ka hoʻonui ʻokoʻa)
  2. Ke hana nei i nā moʻolelo DNS me ka hoʻohana ʻana i ka server acme-dns (no nā kikoʻī hou aku, ʻike maanei.
  3. Ke hana nei i nā moʻolelo DNS me ka hoʻohana ʻana i kāu palapala ponoʻī (e like me ka plugin cloudflare no certbot).

I ka nānā mua ʻana, kūpono ke kolu o ka helu, akā inā ʻaʻole kākoʻo ka mea hoʻolako DNS i kēia hana? A pono mākou i kahi hihia maʻamau. A ʻo ka hihia maʻamau ʻo CNAME moʻolelo, kākoʻo nā mea a pau iā lākou. No laila, kū mākou ma ka helu 2, a hele e hoʻonohonoho i kā mākou kikowaena ACME-DNS.

ʻO ka hoʻonohonoho kikowaena ACME-DNS a me ke kaʻina hana hoʻopuka palapala

No ka laʻana, ua hana au i ka domain 2nd.pp.ua, a e hoʻohana wau ia i ka wā e hiki mai ana.

Koi koi ʻO ka hana kūpono o ka kikowaena ka hana ʻana i nā moʻolelo NS a me A no kāna kikowaena. A ʻo ka manawa leʻaleʻa mua aʻu i hālāwai ai, ʻo ia ka cloudflare (ma ka liʻiliʻi ma ke ʻano manuahi) ʻaʻole ʻae iā ʻoe e hana i kahi moʻolelo NS a me A no ka mea hoʻokipa like. ʻAʻole kēia he pilikia, akā hiki ke hoʻopaʻa ʻia. Ua pane mai ke kākoʻo ʻaʻole ʻae kā lākou papa e hana i kēia. ʻAʻohe mea nui, e hana kāua i ʻelua mau helu:

acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.

I kēia pae, pono mākou e hoʻoholo i ka mea hoʻokipa acmens.2nd.pp.ua.

$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data

Akā acme.2nd.pp.ua ʻaʻole e hoʻoholo, ʻoiai ʻaʻole e holo ana ka server DNS e lawelawe nei.

Ua hana ʻia nā moʻolelo, e neʻe kākou i ka hoʻonohonoho ʻana a hoʻomaka i ka server ACME-DNS. E ola wau ma ka ubuntu server ma ka loea ipu, akā hiki iā ʻoe ke holo i kēlā me kēia wahi he golang. Maikaʻi nō hoʻi ʻo Windows, akā makemake au i kahi kikowaena Linux.

E hana i nā papa kuhikuhi pono a me nā faila:

$ mkdir config
$ mkdir data
$ touch config/config.cfg

E hoʻohana i ka vim me kāu mea hoʻoponopono kikokikona punahele a hoʻopili i ka laʻana i loko o config.cfg eaiaeoaooo.

No ka hana kūleʻa, lawa ia e hoʻoponopono i nā ʻāpana ākea a me nā 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"
…

Eia kekahi, koho, hana i kahi faila docker-compose i ka papa kuhikuhi nui o ka lawelawe:

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

Mākaukau. Hiki iā ʻoe ke holo.

$ docker-compose up -d

I kēia pae, pono e hoʻomaka ka mea hoʻokipa e hoʻoholo acme.2nd.pp.ua, a ʻike ʻia 404 ma 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

Inā ʻaʻole ʻike ʻia kēia - docker logs -f <container_name> e kōkua, maikaʻi, hiki ke heluhelu ʻia nā lāʻau.

Hiki iā mākou ke hoʻomaka e hana i kahi palapala hōʻoia. E wehe i ka powershell ma ke ʻano he luna hoʻomalu a holo i ka winacme. Makemake mākou i ke koho balota:

  • M: Hana i ka palapala hōʻoia hou (nā koho piha)
  • 2: Hoʻokomo lima
  • 2: [dns-01] E hana i nā moʻolelo hōʻoia me acme-dns (https://github.com/joohoi/acme-dns)
  • Ke nīnau ʻia e pili ana i kahi loulou i ka server ACME-DNS, e hoʻokomo i ka URL o ka server i hana ʻia (https) ma ka pane. HKH o ke kikowaena acme-dns: https://acme.2nd.pp.ua

I ka pane ʻana, hoʻopuka ka mea kūʻai aku i kahi moʻolelo e pono e hoʻohui ʻia i ka server DNS i loaʻa (hoʻokahi kaʻina hana):

[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.

E pili ana i ka automating i ka hoʻopuka ʻana o SSL

Hana mākou i ke komo pono, a e hōʻoia i ka hana pono ʻia:

E pili ana i ka automating i ka hoʻopuka ʻana o SSL

$ dig CNAME _acme-challenge.1nd.pp.ua +short
c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.

Ua hōʻoia mākou ua hana mākou i ke komo ʻana i ka winacme, a hoʻomau i ke kaʻina hana o ka hana ʻana i kahi palapala:

E pili ana i ka automating i ka hoʻopuka ʻana o SSL

Pehea e hoʻohana ai i ka certbot ma ke ʻano he mea kūʻai aku i wehewehe ʻia maanei.

Hoʻopau kēia i ke kaʻina hana o ka hana ʻana i kahi palapala, hiki iā ʻoe ke hoʻokomo iā ia ma kahi kikowaena pūnaewele a hoʻohana. Inā, i ka wā e hana ai i kahi palapala hōʻoia, hana pū ʻoe i kahi hana i ka mea hoʻonohonoho, a laila i ka wā e hiki mai ana ke kaʻina hana o ka hoʻonui ʻana i ka palapala hōʻoia e hele maʻalahi.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka