Cukup asring kita kudu nggarap sertifikat SSL. Ayo elinga proses nggawe lan nginstal sertifikat (ing kasus umum kanggo umume).
- Temokake panyedhiya (situs sing bisa tuku SSL).
- Nggawe CSR.
- Kirim menyang panyedhiya sampeyan.
- Verifikasi kepemilikan domain.
- Entuk sertifikat.
- Ngonversi sertifikat menyang formulir sing dibutuhake (opsional). Contone, saka pem kanggo PKCS #12.
- Instal sertifikat ing server web.
Relatif cepet, ora rumit lan bisa dingerteni. Opsi iki cukup cocok yen kita duwe maksimal sepuluh proyek. Apa yen ana luwih akeh, lan duwe paling ora telung lingkungan? Pengembang klasik - pementasan - produksi. Ing kasus iki, iku worth mikir bab ngotomatisasi proses iki. Aku propose kanggo delve sethitik tuwa menyang masalah lan golek solusi sing bakal luwih nyilikake wektu ngginakaken ing nggawe lan njaga sertifikat. Artikel kasebut bakal ngemot analisis masalah lan pandhuan cilik kanggo pengulangan.
Ayo kula nggawe reservasi luwih dhisik: spesialisasi utama perusahaan kita yaiku .net, lan, kanthi mangkono, IIS lan produk Windows liyane sing gegandhengan. Mulane, klien ACME lan kabeh tumindak kanggo iku uga bakal diterangake saka sudut pandang nggunakake Windows.
Kanggo sapa iki relevan lan sawetara data awal
Perusahaan K diwakili dening penulis. URL (contone): company.tld
Project X minangka salah sawijining proyek kita, nalika nggarap aku nggawe kesimpulan yen kita isih kudu ngirit wektu maksimal nalika nggarap sertifikat. Proyek iki nduweni papat lingkungan: dev, test, pementasan lan produksi. Dev lan tes ana ing sisih kita, pementasan lan produksi ana ing sisih klien.
Fitur khusus proyek kasebut yaiku duwe akeh modul sing kasedhiya minangka subdomain.
Sing, kita duwe gambar ing ngisor iki:
Dev
test
Staging
Produksi
projectX.dev.company.tld
projectX.test.company.tld
pementasan.projectX.tld
projectX.tld
module1.projectX.dev.company.tld
module1.projectX.test.company.tld
modul1.staging.projectX.tld
modul1.projectX.tld
module2.projectX.dev.company.tld
module2.projectX.test.company.tld
modul2.staging.projectX.tld
modul2.projectX.tld
...
...
...
...
moduleN.projectX.dev.company.tld
moduleN.projectX.test.company.tld
modulN.staging.projectX.tld
modulN.projectX.tld
Kanggo produksi, sertifikat wildcard sing dituku digunakake, ora ana pitakonan sing muncul ing kene. Nanging mung nyakup tingkat pisanan saka subdomain. Patut, yen ana certificate kanggo *.projectX.tld, banjur bakal bisa kanggo staging.projectX.tld, nanging ora kanggo module1.staging.projectX.tld. Nanging piye wae aku ora pengin tuku sing kapisah.
Lan iki mung adhedhasar conto siji proyek siji perusahaan. Lan, mesthi, ana luwih saka siji proyek.
Alasan umum kanggo saben wong kanggo ngatasi masalah iki katon kaya iki:
- bubar . Kanthi kabeh akibat.
- Nggampangake proses nerbitake lan njaga SSL kanggo kabutuhan internal proyek lan perusahaan kanthi sakabehe.
- Panyimpenan terpusat saka cathetan sertifikat, sing sebagian ngatasi masalah verifikasi domain nggunakake DNS lan nganyari otomatis sabanjure, lan uga ngrampungake masalah kepercayaan klien. Isih, CNAME ing server perusahaan partner / performer luwih dipercaya tinimbang ing sumber daya pihak katelu.
- Inggih, pungkasanipun, ing kasus iki tembung "luwih becik duwe tinimbang ora duwe" pas banget.
Milih Panyedhiya SSL lan Langkah-langkah Persiapan
Antarane pilihan sing kasedhiya kanggo sertifikat SSL gratis, cloudflare lan letsencrypt dianggep. DNS kanggo iki (lan sawetara proyek liyane) di-host dening cloudflare, nanging aku ora seneng nggunakake sertifikat kasebut. Mulane, diputusake nggunakake letsencrypt.
Kanggo nggawe sertifikat SSL wildcard, sampeyan kudu verifikasi kepemilikan domain. Prosedur iki kalebu nggawe rekaman DNS (TXT utawa CNAME) banjur verifikasi nalika ngetokake sertifikat. Linux ana gunane - , sing ngidini sampeyan sebagian (utawa lengkap kanggo sawetara panyedhiya DNS) ngotomatisasi proses iki. Kanggo Windows padha saka opsi klien ACME aku dienggoni ing .
Lan rekaman kanggo domain wis digawe, ayo pindhah menyang nggawe sertifikat:

Kita kasengsem ing kesimpulan pungkasan, yaiku, pilihan sing kasedhiya kanggo konfirmasi kepemilikan domain kanggo nerbitake sertifikat wildcard:
- Gawe cathetan DNS kanthi manual (nganyari otomatis ora didhukung)
- Nggawe cathetan DNS nggunakake server acme-dns (sampeyan bisa maca liyane babagan .
- Nggawe cathetan DNS nggunakake skrip sampeyan dhewe (padha karo plugin cloudflare kanggo certbot).
Sepisanan, titik katelu cukup cocok, nanging apa yen panyedhiya DNS ora ndhukung fungsi iki? Nanging kita butuh kasus umum. Nanging kasus umum yaiku cathetan CNAME, amarga kabeh wong ndhukung. Mulane, kita mandheg ing titik 2 lan pindhah menyang konfigurasi server ACME-DNS.
Nggawe server ACME-DNS lan proses penerbitan sertifikat
Contone, aku nggawe domain 2nd.pp.ua, lan bakal digunakake ing mangsa ngarep.
Supaya server bisa mlaku kanthi bener, perlu nggawe cathetan NS lan A kanggo domain kasebut. Lan wayahe karu pisanan sing aku ketemu iku cloudflare (paling ora ing mode free nggunakake) ora ngijini sampeyan kanggo bebarengan nggawe rekaman NS lan A kanggo host padha. Ora iki masalah, nanging ing ikatan iku bisa. Dhukungan kasebut mangsuli manawa panele ora ngidini nindakake iki. Ora masalah, ayo nggawe rong rekaman:
acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.Ing tahap iki, host kita kudu mutusake masalah acmens.2nd.pp.ua.
$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of dataNanging acme.2nd.pp.ua ora bakal mutusake masalah, amarga server DNS sing nglayani durung mlaku.
Cathetan wis digawe, ayo pindhah menyang nyetel lan ngluncurake server ACME-DNS. Aku bakal nge-host ing ubuntu server ing wadhah, nanging sampeyan bisa mbukak ing ngendi wae golang kasedhiya. Windows Iki uga cukup cocog, nanging aku isih luwih seneng Linux server.
Gawe direktori lan file sing dibutuhake:
$ mkdir config
$ mkdir data
$ touch config/config.cfgAyo nggunakake vim karo editor teks favorit lan paste conto menyang config.cfg .
Kanggo operasi sing sukses, cukup kanggo mbenerake bagean umum lan 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"
…Uga, yen dikarepake, kita bakal nggawe file docker-compose ing direktori layanan utama:
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-dnssiyap. Sampeyan bisa mbukak.
$ docker-compose up -dIng tataran iki tuan rumah kudu miwiti kanggo mutusake masalah acme.2nd.pp.ua, lan 404 katon ing 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 foundYen iki ora katon - docker logs -f <container_name> kanggo bantuan, Begjanipun, log cukup diwaca.
Kita bisa miwiti nggawe sertifikat. Bukak powershell minangka administrator lan mbukak winacme. Kita kasengsem ing pemilihan:
- M: Gawe sertifikat anyar (pilihan lengkap)
- 2: Input manual
- 2: [dns-01] Gawe cathetan verifikasi nganggo acme-dns ()
- Nalika takon babagan link menyang server ACME-DNS, ketik URL server digawe (https) ing jawaban. URL server acme-dns:
Ing bukaan, klien ngetokake rekaman sing kudu ditambahake menyang server DNS sing ana (prosedur siji-wektu):
[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.
Kita nggawe rekaman sing dibutuhake lan priksa manawa digawe kanthi bener:
![]()
$ dig CNAME _acme-challenge.1nd.pp.ua +short
c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.Kita konfirmasi manawa kita wis nggawe entri sing dibutuhake ing winacme, lan nerusake proses nggawe sertifikat:

Cara nggunakake certbot minangka klien diterangake .
Iki ngrampungake proses nggawe sertifikat; sampeyan bisa nginstal ing server web lan nggunakake. Yen, nalika nggawe sertifikat, sampeyan uga nggawe tugas ing panjadwal, banjur proses nganyari maneh sertifikat bakal kedadeyan kanthi otomatis.
Source: www.habr.com
